View Diff on GitHub
# Highlights
この更新では、Azure OpenAIサービスをより効果的に活用するための複数の新機能と改善が行われました。特に、MongoDB Atlasとの統合をサポートし、さまざまなプログラミング言語のサポートが追加されたこと、そして.NET, Java, Python, JavaScript, Goのサポートが強化されたことは大きなポイントです。また、ユーザーエクスペリエンスの向上を目的とした文書や画像ファイルの修正も多数あります。
New features
- Azure OpenAIとMongoDB Atlasとの接続機能が追加され、データの操作が可能になりました。
- プログラミング言語サポートにC#, Java, JavaScript, Python, Goの各種ガイドが追加されました。
- コンテンツフィルターや出力フィルターに関する画像が追加され、設定手順の視覚的な理解が助けられます。
Breaking changes
- “bring-your-data-card-new.png”というデータカード関連の画像が削除され、ユーザーインターフェースの情報に影響があります。
Other updates
- リアルタイムオーディオクイックスタートやAPIバージョンのドキュメント、様々なクイックスタートガイドの形式修正とアップデートが行われました。
- AIスタジオやチャットプレイグラウンドの画像が最新の内容に更新されました。
Insights
この度の更新は、Azure OpenAIの機能とユーザー体験を強化するためのものです。新たに加わったMongoDB Atlasとの統合は、データベースを利用したAIモデルのトレーニングや推論プロセスをスムーズにします。この統合により、ビッグデータを活用したAIプロジェクトがより容易に構築でき、機械学習市場でのAzure OpenAIの競争力が高まります。
また、新たにサポートされるプログラミング言語の追加は、多様な開発者が容易にAzure OpenAIを利用できるようにするための戦略的な拡張と考えられます。プログラミング言語に関する詳細なガイドが追加されたことにより、開発者は迅速に技術を把握し、プロジェクトを効率的に進めることが可能となります。
さらに、コンテンツフィルターや評価基準に関する新しい画像の追加は機能の理解を助け、特に操作慣れしていないユーザーでもシステムを活用しやすくなるため、全体のユーザー体験は大幅に改善されることが予想されます。
一方で、“bring-your-data-card-new.png”の削除は、特定のユーザーにとって情報ギャップを生む可能性があるため、類似する視覚的なガイドや補完的な詳細が追加されることが望まれます。このような変更は、文書と視覚的資料の一貫性を保ちつつ、最新の製品情報を提供するための重要なステップといえます。
この更新は、特に開発者とデータアナリストが各プロジェクトでAzure OpenAIの新しい機能をフル活用し、効率と生産性を向上させるためのものであるといえます。今後の技術開発の方向性として、さらなるインテグレーションとユーザビリティの向上が継続することが期待されます。
Summary Table
Modified Contents
articles/ai-services/openai/concepts/abuse-monitoring.md
Diff
@@ -13,19 +13,26 @@ manager: nitinme
# Abuse Monitoring
-Azure OpenAI Service detects and mitigates instances of recurring content and/or behaviors that suggest use of the service in a manner that may violate the [Code of Conduct](/legal/cognitive-services/openai/code-of-conduct?context=/azure/ai-services/openai/context/context) or other applicable product terms. Details on how data is handled can be found on the [Data, Privacy and Security page](/legal/cognitive-services/openai/data-privacy?context=/azure/ai-services/openai/context/context). Apply for modified abuse monitoring using this form: [Azure OpenAI Limited Access Review: Modified Abuse Monitoring](https://ncv.microsoft.com/3a140V2W0l).
+Azure OpenAI Service detects and mitigates instances of recurring content and/or behaviors that suggest use of the service in a manner that might violate the [Code of Conduct](/legal/cognitive-services/openai/code-of-conduct?context=/azure/ai-services/openai/context/context) or other applicable product terms. Details on how data is handled can be found on the [Data, Privacy, and Security](/legal/cognitive-services/openai/data-privacy?context=/azure/ai-services/openai/context/context) page.
## Components of abuse monitoring
There are several components to abuse monitoring:
-- **Content Classification**: Classifier models detect harmful language and/or images in user prompts (inputs) and completions (outputs). The system looks for categories of harms as defined in the [Content Requirements](/legal/cognitive-services/openai/code-of-conduct?context=/azure/ai-services/openai/context/context), and assigns severity levels as described in more detail on the [Content Filtering page](content-filter.md).
+- **Content Classification**: Classifier models detect harmful text and/or images in user prompts (inputs) and completions (outputs). The system looks for categories of harms as defined in the [Content Requirements](/legal/cognitive-services/openai/code-of-conduct?context=/azure/ai-services/openai/context/context), and assigns severity levels as described in more detail on the [Content Filtering](/azure/ai-services/openai/concepts/content-filter) page. The content classification signals contribute to pattern detection as described below.
+- **Abuse Pattern Capture**: Azure OpenAI Service’s abuse monitoring system looks at customer usage patterns and employs algorithms and heuristics to detect and score indicators of potential abuse. Detected patterns consider, for example, the frequency and severity at which harmful content is detected (as indicated in content classifier signals) in a customer’s prompts and completions, as well as the intentionality of the behavior. The trends and urgency of the detected pattern will also affect scoring of potential abuse severity.
+ For example, a higher volume of harmful content classified as higher severity, or recurring conduct indicating intentionality (such as recurring jailbreak attempts) are both more likely to receive a high score indicating potential abuse.
+- **Review and Decision**: Prompts and completions that are flagged through content classification and/or identified as part of a potentially abusive pattern of use are subjected to another review process to help confirm the system’s analysis and inform actioning decisions. Such review is conducted through two methods: human review & AI review.
+ - By default, if prompts and completions are flagged through content classification as harmful and/or identified to be part of a potentially abusive pattern of use, they may be sampled for automated, eyes-off review by using an LLM instead of a human reviewer. The LLM used for this purpose processes prompts and completions only to confirm the system’s analysis and inform actioning decisions; prompts and completions that undergo such LLM review are not stored by the system or used to train the LLM or other systems.
+ - In some cases, when automated review does not meet applicable confidence thresholds in complex contexts or if LLM review systems are not available, human eyes-on review may be introduced to make an extra judgment. This can help improve the overall abuse analysis accuracy. Authorized Microsoft employees may assess flagged content, and either confirm or correct the classification or determination based on predefined guidelines and policies. Prompts and completions can be accessed for human review only by authorized Microsoft employees via Secure Access Workstations (SAWs) with Just-In-Time (JIT) request approval granted by team managers. For Azure OpenAI Service resources deployed in the European Economic Area, the authorized Microsoft employees are located in the European Economic Area. This human review process will not take place if the customer has been approved for modified abuse monitoring.
+- **Notification and Action**: When a threshold of abusive behavior has been confirmed based on the preceding steps, the customer is informed of the determination by email. Except in cases of severe or recurring abuse, customers typically are given an opportunity to explain or remediate—and implement mechanisms to prevent recurrence of—the abusive behavior. Failure to address the behavior—or recurring or severe abuse—may result in suspension or termination of the customer’s access to Azure OpenAI resources and/or capabilities.
-- **Abuse Pattern Capture**: Azure OpenAI Service’s abuse monitoring looks at customer usage patterns and employs algorithms and heuristics to detect indicators of potential abuse. Detected patterns consider, for example, the frequency and severity at which harmful content is detected in a customer’s prompts and completions.
+## Modified abuse monitoring
-- **Human Review and Decision**: When prompts and/or completions are flagged through content classification and abuse pattern capture as described above, authorized Microsoft employees may assess the flagged content, and either confirm or correct the classification or determination based on predefined guidelines and policies. Data can be accessed for human review <u>only</u> by authorized Microsoft employees via Secure Access Workstations (SAWs) with Just-In-Time (JIT) request approval granted by team managers. For Azure OpenAI Service resources deployed in the European Economic Area, the authorized Microsoft employees are located in the European Economic Area.
+Some customers may want to use the Azure OpenAI Service for a use case that involves the processing of highly sensitive or highly confidential data, or otherwise may conclude that they do not want or do not have the right to permit Microsoft to store and conduct human review on their prompts and completions for abuse detection. To address these concerns, Microsoft allows customers who meet additional Limited Access eligibility criteria to apply to modify abuse monitoring by completing [this ](https://customervoice.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7en2Ais5pxKtso_Pz4b1_xUOE9MUTFMUlpBNk5IQlZWWkcyUEpWWEhGOCQlQCN0PWcu)form. Learn more about applying for modified abuse monitoring at [Limited access to Azure OpenAI Service](/legal/cognitive-services/openai/limited-access?context=%2Fazure%2Fai-services%2Fopenai%2Fcontext%2Fcontext), and about the impact of modified abuse monitoring on data processing at [Data, privacy, and security for Azure OpenAI Service](/legal/cognitive-services/openai/data-privacy?context=%2Fazure%2Fai-services%2Fopenai%2Fcontext%2Fcontext&tabs=azure-portal).
-- **Notification and Action**: When a threshold of abusive behavior has been confirmed based on the preceding three steps, the customer is informed of the determination by email. Except in cases of severe or recurring abuse, customers typically are given an opportunity to explain or remediate—and implement mechanisms to prevent recurrence of—the abusive behavior. Failure to address the behavior—or recurring or severe abuse—may result in suspension or termination of the customer’s access to Azure OpenAI resources and/or capabilities.
+> [!NOTE]
+> When abuse monitoring is modified and human review is not performed, detection of potential abuse may be less accurate. Customers will be notified of potential abuse detection as described above, and should be prepared to respond to such notification to avoid service interruption if possible.
## Next steps
Summary
{
"modification_type": "minor update",
"modification_title": "虐待監視に関する内容の更新"
}
Explanation
この変更は、Azure OpenAI Service の虐待監視に関する文書の更新を含んでいます。具体的には、いくつかのセクションにわたって内容が追加され、既存の文が改善されています。主な変更点としては、虐待のパターンキャプチャーや人間によるレビューのプロセスに関する詳細な説明が含まれており、システムがどのように潜在的な虐待を検出し、評価するかが示されています。また、修正された虐待監視の申請手続きについても記載されています。これにより、敏感なデータを扱う顧客が必要な場合に、Microsoft によるデータの保存や人間によるレビューを制限できるオプションが提供されます。全体的に、文書はより詳細で、利用者がサービスの利用に際して注意すべき点を理解しやすくなっています。
articles/ai-services/openai/concepts/provisioned-migration.md
Diff
@@ -6,7 +6,7 @@ manager: nitinme
ms.service: azure-ai-openai
ms.custom:
ms.topic: how-to
-ms.date: 08/23/2024
+ms.date: 11/11/2024
author: mrbullwinkle
ms.author: mbullwin
recommendations: false
@@ -250,7 +250,7 @@ With your commitment plan ready, the next step is to create the commitments. Com
For each new commitment you need to create, follow these steps:
-1. Launch the Provisioned Throughput purchase dialog by selecting **Quotas** > **Provisioned** > **Manage Commitments**.
+1. Launch the Provisioned Throughput purchase dialog by selecting **Quota** > **Azure OpenAI Provisioned** > **Manage Commitment plans**.
:::image type="content" source="../media/how-to/provisioned-onboarding/quota.png" alt-text="Screenshot of the purchase dialog." lightbox="../media/how-to/provisioned-onboarding/quota.png":::
@@ -301,7 +301,7 @@ Commitment renewal settings can be changed at any time before the expiration dat
## Monitor commitments and prevent unexpected billings
-The manage commitments pane provides a subscription wide overview of all resources with commitments and PTU usage within a given Azure Subscription. Of particular importance interest are:
+The manage commitments pane provides a subscription wide overview of all resources with commitments and PTU usage within a given Azure Subscription. Of particular importance are:
- **PTUs Committed, Deployed and Usage** – These figures provide the sizes of your commitments, and how much is in use by deployments. Maximize your investment by using all of your committed PTUs.
- **Expiration policy and date** - The expiration date and policy tell you when a commitment will expire and what will happen when it does. A commitment set to autorenew will generate a billing event on the renewal date. For commitments that are expiring, be sure you delete deployments from these resources prior to the expiration date to prevent hourly overage billingThe current renewal settings for a commitment.
Summary
{
"modification_type": "minor update",
"modification_title": "プロビジョンド マイグレーションに関する内容の更新"
}
Explanation
この変更は、「プロビジョンド マイグレーション」に関する文書の更新を含んでいます。具体的には、日付の更新や段階的手順の表現の改善が行われました。主な変更点としては、日付が2024年8月23日から2024年11月11日に変更され、プロビジョンド スループット購入ダイアログを起動する手順が具体的に「Quota > Azure OpenAI Provisioned > Manage Commitment plans」に修正されました。また、コミットメントの管理画面についての説明も微調整され、重要な情報がより明確に表現されています。これらの変更により、ユーザーはプロビジョニングに関連する最新の手順やポリシーについて、より正確に理解できるようになります。
articles/ai-services/openai/concepts/use-your-data.md
Diff
@@ -8,7 +8,7 @@ ms.service: azure-ai-openai
ms.topic: quickstart
author: aahill
ms.author: aahi
-ms.date: 04/08/2024
+ms.date: 10/25/2024
recommendations: false
ms.custom: references_regions
---
@@ -26,14 +26,14 @@ Azure OpenAI On Your Data enables you to run advanced AI models such as GPT-35-T
:::image type="content" source="../media/use-your-data/workflow-diagram.png" alt-text="A diagram showing an example workflow.":::
Typically, the development process you'd use with Azure OpenAI On Your Data is:
-1. **Ingest**: Upload files using either Azure OpenAI Studio or the ingestion API. This enables your data to be cracked, chunked and embedded into an Azure AI Search instance that can be used by Azure Open AI models. If you have an existing [supported data source](#supported-data-sources), you can also connect it directly.
+1. **Ingest**: Upload files using either Azure OpenAI Studio or the ingestion API. This enables your data to be cracked, chunked and embedded into an Azure AI Search instance that can be used by Azure OpenAI models. If you have an existing [supported data source](#supported-data-sources), you can also connect it directly.
1. **Develop**: After trying Azure OpenAI On Your Data, begin developing your application using the available REST API and SDKs, which are available in several languages. It will create prompts and search intents to pass to the Azure OpenAI service.
1. **Inference**: After your application is deployed in your preferred environment, it will send prompts to Azure OpenAI, which will perform several steps before returning a response:
1. **Intent generation**: The service will determine the intent of the user's prompt to determine a proper response.
- 1. **Retrieval**: The service retrieves relevant chunks of available data from the connected data source by querying it. For example by using a semantic or vector search. [Parameters](#runtime-parameters) such as strictness and number of documents to retreive are utilized to influence the retrieval.
+ 1. **Retrieval**: The service retrieves relevant chunks of available data from the connected data source by querying it. For example by using a semantic or vector search. [Parameters](#runtime-parameters) such as strictness and number of documents to retrieve are utilized to influence the retrieval.
1. **Filtration and reranking**: Search results from the retrieval step are improved by ranking and filtering data to refine relevance.
@@ -307,6 +307,55 @@ Mapping these fields correctly helps ensure the model has better response and ci
Along with using Elasticsearch databases in Azure OpenAI Studio, you can also use your Elasticsearch database using the [API](../references/elasticsearch.md).
+# [MongoDB Atlas (preview)](#tab/mongo-db-atlas)
+
+You can connect your MongoDB Atlas vector index with Azure OpenAI On Your Data for inferencing. You can use it through the Azure AI Studio, API and SDK.
+
+### Prerequisites
+
+* A [MongoDB Atlas account](https://account.mongodb.com/account/register)
+* An [Azure OpenAI ada002 embedding model](./models.md#embeddings)
+ * To achieve good retrieval quality, make sure your vector index is created with Azure OpenAI ada002 embedding model.
+
+We recommend using one of the following models for MongoDB Atlas
+* gpt-4 (0613)
+* gpt-4 (turbo-2024-04-09)
+* gpt-4o (2024-05-13)
+* gpt-35-turbo (1106)
+
+### Configuration
+
+Only public network access is supported. Please make sure the database allows public access
+:::image type="content" source="../media/use-your-data/mongo-db-network-access.png" alt-text="A screenshot showing the network access screen for Mongo DB.":::
+
+### Data preparation
+
+If you want to create a new vector search index with your documents, you can use the [available script on GitHub](https://github.com/microsoft/sample-app-aoai-chatGPT/blob/rawan/mongodbdataprep/scripts/mongo_vector_db_data_preparation.py) to prepare your data for use with Azure OpenAI On Your Data.
+
+### Connection to MongoDB account
+
+To add your data source, you first need to create a connection to MongoDB Atlas. This connection includes information such as authentication (username and password). Enter the endpoint of your MongoDB Atlas connection string using the following format: `mongodb+srv://{user_name}:{password}@{endpoint}/?appName={application_name}`. See the [MongoDB documentation](https://aka.ms/mongodb-connection-string) for more information about connection string methods.
+
+:::image type="content" source="../media/use-your-data/mongo-db-atlas-connection.png" alt-text="A screenshot showing the connection screen for Mongo DB." lightbox="../media/use-your-data/mongo-db-atlas-connection.png":::
+
+### Source index
+
+Once you have created a connection or chosen an existing connection, you can enter the information to connect to a specific vector index within this connected account. You need to input the name of your database, collection and vector index. Make sure you have entered the information correctly to successfully build the connection.
+
+:::image type="content" source="../media/use-your-data/mongo-db-atlas-source-index.png" alt-text="A screenshot showing the field required information for Mongo DB Atlas." lightbox="../media/use-your-data/mongo-db-atlas-source-index.png":::
+
+To use MongoDB Atlas, you'll need an Azure OpenAI ada002 embedding model. This model will be created for you if you don't already have one, which will incur [usage](https://go.microsoft.com/fwlink/?linkid=2264246) on your account.
+
+### Index field mapping
+
+When you add your MongoDB Atlas data source, you can specify data fields to properly map your data for retrieval.
+
+* Content data (required): This is the main text content of each document. For multiple fields, separate the values with commas, with no spaces.
+* Vector field (required): The field name in your MongoDB Atlas search index that contains the vectors.
+* File name/title/URL: Used to display more information when a document is referenced in the chat.
+
+:::image type="content" source="../media/use-your-data/mongo-db-atlas-field-mapping.png" alt-text="A screenshot showing the field mapping options for Mongo DB Atlas." lightbox="../media/use-your-data/mongo-db-atlas-field-mapping.png":::
+
---
## Deploy to a copilot (preview), Teams app (preview), or web app
Summary
{
"modification_type": "new feature",
"modification_title": "MongoDB Atlasとの接続機能の追加"
}
Explanation
この変更は、「自分のデータを使用する」ための Azure OpenAI サービスに MongoDB Atlas との接続機能が追加されることを含んでいます。文書は大幅に更新され、ポイントとしては、MongoDB Atlas とのインターフェースを通じて推論を行うための詳細な手順が追加されました。新セクションには、MongoDB Atlas アカウントの取得、必要な認証情報の設定、データ準備に関するスクリプト、および接続の構成方法が含まれています。
また、推奨されるモデルや接続情報の具体的なフォーマットが示され、ユーザーが新しいベクトル検索インデックスを作成する際に必要な情報や手順が提供されています。この改訂により、ユーザーは Azure OpenAI と MongoDB を統合することで、より強力なデータ処理とAIモデルの利用が可能になります。全体として、この変更はユーザーにとって価値のある新機能を提供し、データの活用方法を拡充します。
articles/ai-services/openai/how-to/content-filters.md
Diff
@@ -36,49 +36,56 @@ Content filters can be configured at the resource level. Once a new configuratio
You can configure the following filter categories in addition to the default harm category filters.
|Filter category |Status |Default setting |Applied to prompt or completion? |Description |
-|---------|---------|---------|---------|
+|---------|---------|---------|---------|---|
|Prompt Shields for direct attacks (jailbreak) |GA| On | User prompt | Filters / annotates user prompts that might present a Jailbreak Risk. For more information about annotations, visit [Azure OpenAI Service content filtering](/azure/ai-services/openai/concepts/content-filter?tabs=python#annotations-preview). |
|Prompt Shields for indirect attacks | GA| On| User prompt | Filter / annotate Indirect Attacks, also referred to as Indirect Prompt Attacks or Cross-Domain Prompt Injection Attacks, a potential vulnerability where third parties place malicious instructions inside of documents that the generative AI system can access and process. Required: [Document ](/azure/ai-services/openai/concepts/content-filter?tabs=warning%2Cuser-prompt%2Cpython-new#embedding-documents-in-your-prompt)formatting. |
| Protected material - code |GA| On | Completion | Filters protected code or gets the example citation and license information in annotations for code snippets that match any public code sources, powered by GitHub Copilot. For more information about consuming annotations, see the [content filtering concepts guide](/azure/ai-services/openai/concepts/content-filter#annotations-preview) |
| Protected material - text | GA| On | Completion | Identifies and blocks known text content from being displayed in the model output (for example, song lyrics, recipes, and selected web content). |
+| Groundedness* | Preview |Off | Completion |Detects whether the text responses of large language models (LLMs) are grounded in the source materials provided by the users. Ungroundedness refers to instances where the LLMs produce information that is non-factual or inaccurate from what was present in the source materials. |
+*Requires embedding documents in your prompt. [Read more](/azure/ai-services/openai/concepts/content-filter?tabs=warning%2Cuser-prompt%2Cpython-new#embedding-documents-in-your-prompt).
-## Configure content filters via Azure AI Studio
-The following steps show how to set up a customized content filtering configuration for your resource.
+## Configure content filters with Azure AI Studio
-1. Go to Azure AI Studio and navigate to the Content Filters tab (in the bottom left navigation, as designated by the red box below).
+The following steps show how to set up a customized content filtering configuration for your Azure OpenAI resource within AI Studio. For guidance with content filters in your Azure AI Studio project, you can read more at [Azure AI Studio content filtering](/azure/ai-studio/concepts/content-filtering).
- :::image type="content" source="../media/content-filters/studio.png" alt-text="Screenshot of the AI Studio UI with Content Filters highlighted." lightbox="../media/content-filters/studio.png":::
+1. Go to Azure AI Studio and navigate to the **Safety + security** page on the left menu.
+1. Proceed to the **Content filters** tab and create a new customized content filtering configuration.
-1. Create a new customized content filtering configuration.
+ This leads to the following configuration view, where you can choose a name for the custom content filtering configuration. After entering a name, you can configure the **input filters** (for user prompts) and **output filters** (for model completion).
- :::image type="content" source="../media/content-filters/create-filter.png" alt-text="Screenshot of the content filtering configuration UI with create selected." lightbox="../media/content-filters/create-filter.png":::
+ :::image type="content" source="../media/content-filters/input-filter.png" alt-text="Screenshot of input filter screen.":::
- This leads to the following configuration view, where you can choose a name for the custom content filtering configuration. After entering a name, you can configure the **input filters** (user prompts) and **output filters** (model response). For the first four content categories there are three severity levels that are configurable: Low, medium, and high. You can use the sliders to set the severity threshold if you determine that your application or usage scenario requires different filtering than the default values. Some filters enable you to determine if the model should annotate and/or block. Selecting **Annotate** runs the respective model and return annotations via API response, but it will not filter content. In addition to annotations, you can also choose to filter content by switching the **Filter** toggle to on.
+ :::image type="content" source="../media/content-filters/output-filter.png" alt-text="Screenshot of output filter screen.":::
- If your use case was approved for modified content filters as outlined above, you receive full control over content filtering configurations and can choose to turn filtering partially or fully off.
+ For the first four content categories there are three severity levels that are configurable: Low, medium, and high. You can use the sliders to set the severity threshold if you determine that your application or usage scenario requires different filtering than the default values.
- :::image type="content" source="../media/content-filters/filter-view.png" alt-text="Screenshot of the content filtering configuration UI." lightbox="../media/content-filters/filter-view.png":::
+ Some filters, such as Prompt Shields and Protected material detection, enable you to determine if the model should annotate and/or block content. Selecting **Annotate only** runs the respective model and return annotations via API response, but it will not filter content. In addition to annotate, you can also choose to block content.
-1. You can create multiple content filtering configurations as per your requirements.
+ If your use case was approved for modified content filters, you receive full control over content filtering configurations and can choose to turn filtering partially or fully off, or enable annotate only for the content harms categories (violence, hate, sexual and self-harm).
- :::image type="content" source="../media/content-filters/multiple.png" alt-text="Screenshot of multiple content configurations in the Azure portal." lightbox="../media/content-filters/multiple.png":::
-1. Next, to make a custom content filtering configuration operational, assign a configuration to one or more deployments in your resource. To do this, go to the **Deployments** tab and select your deployment. Then select **Edit**.
+1. You can create multiple content filtering configurations as per your requirements.
- :::image type="content" source="../media/content-filters/edit-deployment.png" alt-text="Screenshot of the content filtering configuration with edit deployment highlighted." lightbox="../media/content-filters/edit-deployment.png":::
+ :::image type="content" source="../media/content-filters/multiple.png" alt-text="Screenshot of multiple content configurations in the Azure portal." lightbox="../media/content-filters/multiple.png":::
+1. Next, to use a custom content filtering configuration, assign it to one or more deployments in your resource. To do this, go to the **Deployments** tab and select your deployment. Then select **Edit**.
1. In the **Update deployment** window that appears, select your custom filter from the **Content filter** dropdown menu. Then select **Save and close** to apply the selected configuration to the deployment.
:::image type="content" source="../media/content-filters/select-filter.png" alt-text="Screenshot of edit deployment configuration with content filter selected." lightbox="../media/content-filters/select-filter.png":::
-1. You can also edit and delete a content filter configuration if required. To do this, navigate to the content filters tab and select a configuration. Then select the desired action. You can only edit one filtering configuration at a time.
+ You can also edit and delete a content filter configuration if required.
+
+ Before you delete a content filtering configuration, you will need to unassign and replace it from any deployment in the **Deployments** tab.
+
+## Report content filtering feedback
+
+If you are encountering a content filtering issue, select the **Send Feedback** button at the top of the playground. This is enabled in the **Images, Chat, and Completions** playground.
- :::image type="content" source="../media/content-filters/delete.png" alt-text="Screenshot of content filter configuration with edit and delete highlighted." lightbox="../media/content-filters/delete.png":::
+When the dialog appears, select the appropriate content filtering issue. Include as much detail as possible relating to your content filtering issue, such as the specific prompt and content filtering error you encountered. Do not include any private or sensitive information.
- > [!NOTE]
- > Before deleting a content filtering configuration, you will need to unassign it from any deployment in the Deployments tab.
+For support, please [submit a support ticket](https://ms.portal.azure.com/#view/Microsoft_Azure_Support/HelpAndSupportBlade/~/overview).
## Follow best practices
Summary
{
"modification_type": "minor update",
"modification_title": "コンテンツフィルターの設定手順の改訂"
}
Explanation
この変更は、Azure OpenAI のコンテンツフィルターに関する設定手順を改訂したものであり、追加機能とガイダンスを提供しています。具体的には、フィルターのカテゴリやその機能についての詳細を追加し、特に「Groundedness」という新しいフィルターカテゴリが登場しました。このカテゴリは、大規模言語モデルの応答が提供されたソース資料に基づいているかを検出します。
また、Azure AI Studio におけるフィルターの設定プロセスが明確に説明され、インターフェースの変更に合わせて手順が整理されました。ユーザーはフィルタのカスタマイズや、さまざまなフィルタ設定の適用方法についても詳しく案内されています。
さらに、コンテンツフィルタに関するフィードバックの報告方法が追加されており、ユーザーは遇遇した問題について詳細に報告できるようになっています。これらの変更は、ユーザーの体験を向上させるためのものであり、より精密かつ柔軟なコンテンツフィルタリングが可能になります。
articles/ai-services/openai/how-to/deployment-types.md
Diff
@@ -32,6 +32,7 @@ Data zone deployments leverage Azure's global infrastructure to dynamically rout
If the Azure OpenAI resource used in your Data Zone deployment is located in the United States, the data will be processed within the United States. If the Azure OpenAI resource used in your Data Zone deployment is located in a European Union Member Nation, the data will be processed within the European Union Member Nation geographies. For all Azure OpenAI service deployment types, any data stored at rest will continue to remain in the geography of the Azure OpenAI resource. Azure data processing and compliance commitments remain applicable.
+For any [deployment type](/azure/ai-services/openai/how-to/deployment-types) labeled 'Global,' prompts and responses may be processed in any geography where the relevant Azure OpenAI model is deployed (learn more about [region availability of models](/azure/ai-services/openai/concepts/models#model-summary-table-and-region-availability)). For any deployment type labeled as 'DataZone,' prompts and responses may be processed in any geography within the specified data zone, as defined by Microsoft. If you create a DataZone deployment in an Azure OpenAI resource located in the United States, prompts and responses may be processed anywhere within the United States. If you create a DataZone deployment in an Azure OpenAI resource located in a European Union Member Nation, prompts and responses may be processed in that or any other European Union Member Nation. For both Global and DataZone deployment types, any data stored at rest, such as uploaded data, is stored in the customer-designated geography. Only the location of processing is affected when a customer uses a Global deployment type or DataZone deployment type in Azure OpenAI Service; Azure data processing and compliance commitments remain applicable.
## Deployment types
Azure OpenAI offers three types of deployments. These provide a varied level of capabilities that provide trade-offs on: throughput, SLAs, and price. Below is a summary of the options followed by a deeper description of each.
Summary
{
"modification_type": "minor update",
"modification_title": "データゾーンデプロイメントの処理地に関する説明の更新"
}
Explanation
この変更は、Azure OpenAI サービスにおけるデプロイメントタイプに関する文書に、データゾーンデプロイメントのプロンプトと応答の処理地についての重要な情報を追加したものです。この追加により、データゾーンデプロイメントがどの地理においてプロンプトや応答が処理されるかの条件が明確にされています。
具体的には、データゾーンデプロイメントが米国またはEU加盟国にある場合、プロンプトと応答がそれぞれの地理圏内で処理されることが強調されています。また、「Global」と「DataZone」というラベルが付けられたデプロイメントタイプにおけるデータの処理や保存に関する条件が詳述されています。この変更は、ユーザーがデプロイメントの選択を行う際に、データ処理の地理的要素を理解しやすくすることを目的としています。全体として、Azure OpenAI のデプロイメントの透明性とコンプライアンスに貢献するものです。
articles/ai-services/openai/how-to/dotnet-migration.md
Diff
@@ -0,0 +1,499 @@
+---
+title: How to migrate from Azure.AI.OpenAI 1.0 Beta to 2.0
+titleSuffix: Azure OpenAI Service
+description: Learn about migrating to the latest release of the Azure OpenAI package for .NET.
+author: mrbullwinkle
+ms.author: mbullwin
+ms.service: azure-ai-openai
+ms.custom: devx-track-dotnet
+ms.topic: how-to
+ms.date: 11/19/2024
+manager: nitinme
+---
+
+# Migrate from 1.0 beta to 2.0 (`Azure.AI.OpenAI`)
+
+> [!NOTE]
+> This guide describes how to migrate an application that previously used a 1.0 beta version of the `Azure.AI.OpenAI` library to use the new 2.0 library.
+> For general guidance on using `OpenAI` and `Azure.AI.OpenAI` features, see [the OpenAI README](https://github.com/openai/openai-dotnet/blob/main/README.md) or [the Azure.AI.OpenAI README](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/openai/Azure.AI.OpenAI/README.md).
+
+## Setup
+
+Stable releases of `Azure.AI.OpenAI` are associated with a corresponding stable Azure OpenAI Service API version label, for example, `2024-10-21`.
+
+```dotnetcli
+dotnet add package Azure.AI.OpenAI
+```
+
+Beta releases of `Azure.AI.OpenAI` are associated with a corresponding preview Azure OpenAI Service API version label, for example, `2024-10-01-preview`.
+
+```dotnetcli
+dotnet add package Azure.AI.OpenAI --prerelease
+```
+
+## Client configuration
+
+Although client instantiation is similar to 1.0, 2.0 introduces a distinct, Azure-specific top-level client that individual scenario clients are retrieved from.
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE: Getting a general-purpose client ready for use in 1.0
+OpenAIClient client = new(
+ new Uri("https://your-resource.openai.azure.com/"),
+ new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"));
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW: Get a chat completions client from a top-level Azure client
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-resource.openai.azure.com/"),
+ new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"));
+ChatClient chatClient = azureClient.GetChatClient("my-gpt-4o-mini-deployment");
+```
+
+Just like in 1.0, the new `AzureOpenAIClient` supports the use of Microsoft Entra ID credentials when the [Azure.Identity](/dotnet/api/overview/azure/identity-readme?view=azure-dotnet&preserve-view=true) package is installed.
+
+```csharp
+// 2.0: Microsoft Entra ID via Azure.Identity's DefaultAzureCredential
+string endpoint = "https://myaccount.openai.azure.com/";
+AzureOpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());
+```
+
+---
+
+## Chat completion
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+OpenAIClient client = new(azureOpenAIResourceUri, azureOpenAIApiKey);
+
+var chatCompletionsOptions = new ChatCompletionsOptions()
+{
+ DeploymentName = "gpt-3.5-turbo", // Use DeploymentName for "model" with non-Azure clients
+ Messages =
+ {
+ // The system message represents instructions or other guidance about how the assistant should behave
+ new ChatRequestSystemMessage("You are a helpful assistant. You will talk like a pirate."),
+ // User messages represent current or historical input from the end user
+ new ChatRequestUserMessage("Can you help me?"),
+ // Assistant messages represent historical responses from the assistant
+ new ChatRequestAssistantMessage("Arrrr! Of course, me hearty! What can I do for ye?"),
+ new ChatRequestUserMessage("What's the best way to train a parrot?"),
+ }
+};
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW
+ChatClient chatClient = aoaiClient.GetChatClient("my-gpt-4o-mini-deployment");
+
+ChatCompletion completion = chatClient.CompleteChat(
+ [
+ // System messages represent instructions or other guidance about how the assistant should behave
+ new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
+ // User messages represent user input, whether historical or the most recent input
+ new UserChatMessage("Hi, can you help me?"),
+ // Assistant messages in a request represent conversation history for responses
+ new AssistantChatMessage("Arrr! Of course, me hearty! What can I do for ye?"),
+ new UserChatMessage("What's the best way to train a parrot?"),
+ ]);
+```
+
+---
+
+Consuming chat completions response is simplified in 2.0.
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE:
+Response<ChatCompletions> response = await client.GetChatCompletionsAsync(chatCompletionsOptions);
+ChatResponseMessage responseMessage = response.Value.Choices[0].Message;
+Console.WriteLine($"[{responseMessage.Role.ToString().ToUpperInvariant()}]: {responseMessage.Content}");
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW:
+ChatCompletion completion = await chatClient.CompleteChatAsync(messages);
+Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
+```
+
+---
+
+### Streaming
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+await foreach (StreamingChatCompletionsUpdate chatUpdate in client.GetChatCompletionsStreaming(chatCompletionsOptions))
+{
+ if (chatUpdate.Role.HasValue)
+ {
+ Console.Write($"{chatUpdate.Role.Value.ToString().ToUpperInvariant()}: ");
+ }
+ if (!string.IsNullOrEmpty(chatUpdate.ContentUpdate))
+ {
+ Console.Write(chatUpdate.ContentUpdate);
+ }
+}
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW
+AsyncCollectionResult<StreamingChatCompletionUpdate> completionUpdates
+ = await chatClient.CompleteChatStreamingAsync(messages);
+
+foreach (StreamingChatCompletionUpdate completionUpdate in completionUpdates)
+{
+ foreach (ChatMessageContentPart contentPart in completionUpdate.ContentUpdate)
+ {
+ Console.Write(contentPart.Text);
+ }
+}
+```
+
+---
+
+### Tool definitions
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+var getWeatherTool = new ChatCompletionsFunctionToolDefinition()
+{
+ Name = "get_current_weather",
+ Description = "Get the current weather in a given location",
+ Parameters = BinaryData.FromObjectAsJson(
+ new
+ {
+ Type = "object",
+ Properties = new
+ {
+ Location = new
+ {
+ Type = "string",
+ Description = "The city and state, e.g. San Francisco, CA",
+ },
+ Unit = new
+ {
+ Type = "string",
+ Enum = new[] { "celsius", "fahrenheit" },
+ }
+ },
+ Required = new[] { "location" },
+ },
+ new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }),
+};
+
+var chatCompletionsOptions = new ChatCompletionsOptions()
+{
+ DeploymentName = "gpt-35-turbo-1106",
+ Messages = { new ChatRequestUserMessage("What's the weather like in Boston?") },
+ Tools = { getWeatherTool },
+};
+
+Response<ChatCompletions> response = await client.GetChatCompletionsAsync(chatCompletionsOptions);
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW
+ChatTool getCurrentWeatherTool = ChatTool.CreateFunctionTool(
+ functionName: nameof(GetCurrentWeather),
+ functionDescription: "Get the current weather in a given location",
+ functionParameters: BinaryData.FromString("""
+ {
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The city and state, e.g. Boston, MA"
+ },
+ "unit": {
+ "type": "string",
+ "enum": [ "celsius", "fahrenheit" ],
+ "description": "The temperature unit to use. Infer this from the specified location."
+ }
+ },
+ "required": [ "location" ]
+ }
+ """)
+);
+
+ChatCompletionOptions options = new()
+{
+ Tools = { getCurrentWeatherTool },
+};
+
+ChatCompletion completion = await chatClient.CompleteChatAsync(
+ ["What's the weather like Boston?"],
+ options);
+```
+
+---
+
+### Handling tool call responses
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+var chatCompletionsOptions = new ChatCompletionsOptions()
+{
+ DeploymentName = "gpt-35-turbo-1106",
+ Messages = { new ChatRequestUserMessage("What's the weather like in Boston?") },
+ Tools = { getWeatherTool },
+};
+
+Response<ChatCompletions> response = await client.GetChatCompletionsAsync(chatCompletionsOptions);
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW
+if (completion.FinishReason == ChatFinishReason.ToolCalls)
+{
+ // Add a new assistant message to the conversation history that includes the tool calls
+ conversationMessages.Add(new AssistantChatMessage(completion));
+
+ foreach (ChatToolCall toolCall in completion.ToolCalls)
+ {
+ conversationMessages.Add(new ToolChatMessage(toolCall.Id, GetToolCallContent(toolCall)));
+ }
+
+ // Now make a new request with all the messages thus far, including the original
+}
+```
+
+---
+
+## Chat with On Your Data
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+AzureSearchChatExtensionConfiguration contosoExtensionConfig = new()
+{
+ SearchEndpoint = new Uri("https://your-contoso-search-resource.search.windows.net"),
+ Authentication = new OnYourDataApiKeyAuthenticationOptions("<your Cognitive Search resource API key>"),
+};
+
+ChatCompletionsOptions chatCompletionsOptions = new()
+{
+ DeploymentName = "gpt-35-turbo-0613",
+ Messages =
+ {
+ new ChatRequestSystemMessage(
+ "You are a helpful assistant that answers questions about the Contoso product database."),
+ new ChatRequestUserMessage("What are the best-selling Contoso products this month?")
+ },
+
+ // The addition of AzureChatExtensionsOptions enables the use of Azure OpenAI capabilities that add to
+ // the behavior of Chat Completions, here the "using your own data" feature to supplement the context
+ // with information from an Azure Cognitive Search resource with documents that have been indexed.
+ AzureExtensionsOptions = new AzureChatExtensionsOptions()
+ {
+ Extensions = { contosoExtensionConfig }
+ }
+};
+
+Response<ChatCompletions> response = await client.GetChatCompletionsAsync(chatCompletionsOptions);
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW
+// Extension methods to use data sources with options are subject to SDK surface changes. Suppress the
+// warning to acknowledge and this and use the subject-to-change AddDataSource method.
+#pragma warning disable AOAI001
+
+ChatCompletionOptions options = new();
+options.AddDataSource(new AzureSearchChatDataSource()
+{
+ Endpoint = new Uri("https://your-search-resource.search.windows.net"),
+ IndexName = "contoso-products-index",
+ Authentication = DataSourceAuthentication.FromApiKey(
+ Environment.GetEnvironmentVariable("OYD_SEARCH_KEY")),
+});
+
+ChatCompletion completion = chatClient.CompleteChat(
+ [
+ new UserChatMessage("What are the best-selling Contoso products this month?"),
+ ],
+ options);
+
+ChatMessageContext onYourDataContext = completion.GetMessageContext();
+
+if (onYourDataContext?.Intent is not null)
+{
+ Console.WriteLine($"Intent: {onYourDataContext.Intent}");
+}
+foreach (ChatCitation citation in onYourDataContext?.Citations ?? [])
+{
+ Console.WriteLine($"Citation: {citation.Content}");
+}
+```
+
+---
+
+## Embeddings
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+EmbeddingsOptions embeddingsOptions = new()
+{
+ DeploymentName = "text-embedding-ada-002",
+ Input = { "Your text string goes here" },
+};
+Response<Embeddings> response = await client.GetEmbeddingsAsync(embeddingsOptions);
+
+// The response includes the generated embedding.
+EmbeddingItem item = response.Value.Data[0];
+ReadOnlyMemory<float> embedding = item.Embedding;
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+
+```csharp
+// 2.0 - NEW
+EmbeddingClient client = aoaiClient.GetEmbeddingClient("text-embedding-3-small");
+
+string description = "Best hotel in town if you like luxury hotels. They have an amazing infinity pool, a spa,"
+ + " and a really helpful concierge. The location is perfect -- right downtown, close to all the tourist"
+ + " attractions. We highly recommend this hotel.";
+
+OpenAIEmbedding embedding = client.GenerateEmbedding(description);
+ReadOnlyMemory<float> vector = embedding.ToFloats();
+```
+
+---
+
+## Image generation
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+Response<ImageGenerations> response = await client.GetImageGenerationsAsync(
+ new ImageGenerationOptions()
+ {
+ DeploymentName = usingAzure ? "my-azure-openai-dall-e-3-deployment" : "dall-e-3",
+ Prompt = "a happy monkey eating a banana, in watercolor",
+ Size = ImageSize.Size1024x1024,
+ Quality = ImageGenerationQuality.Standard
+ });
+
+ImageGenerationData generatedImage = response.Value.Data[0];
+if (!string.IsNullOrEmpty(generatedImage.RevisedPrompt))
+{
+ Console.WriteLine($"Input prompt automatically revised to: {generatedImage.RevisedPrompt}");
+}
+Console.WriteLine($"Generated image available at: {generatedImage.Url.AbsoluteUri}");
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW
+ImageClient imageClient = aoaiClient.GetImageClient("my-dall-e-3-deployment");
+
+string prompt = "The concept for a living room that blends Scandinavian simplicity with Japanese minimalism for"
+ + " a serene and cozy atmosphere. It's a space that invites relaxation and mindfulness, with natural light"
+ + " and fresh air. Using neutral tones, including colors like white, beige, gray, and black, that create a"
+ + " sense of harmony. Featuring sleek wood furniture with clean lines and subtle curves to add warmth and"
+ + " elegance. Plants and flowers in ceramic pots adding color and life to a space. They can serve as focal"
+ + " points, creating a connection with nature. Soft textiles and cushions in organic fabrics adding comfort"
+ + " and softness to a space. They can serve as accents, adding contrast and texture.";
+
+ImageGenerationOptions options = new()
+{
+ Quality = GeneratedImageQuality.High,
+ Size = GeneratedImageSize.W1792xH1024,
+ Style = GeneratedImageStyle.Vivid,
+ ResponseFormat = GeneratedImageFormat.Bytes
+};
+
+GeneratedImage image = imageClient.GenerateImage(prompt, options);
+BinaryData bytes = image.ImageBytes;
+```
+
+---
+
+## Audio transcription
+
+# [Azure.AI.OpenAI 1.0 Beta](#tab/beta)
+
+```csharp
+// 1.0 - BEFORE
+using Stream audioStreamFromFile = File.OpenRead("myAudioFile.mp3");
+
+var transcriptionOptions = new AudioTranscriptionOptions()
+{
+ DeploymentName = "my-whisper-deployment", // whisper-1 as model name for non-Azure OpenAI
+ AudioData = BinaryData.FromStream(audioStreamFromFile),
+ Filename = "test.mp3",
+ ResponseFormat = AudioTranscriptionFormat.Verbose,
+};
+
+Response<AudioTranscription> transcriptionResponse
+ = await client.GetAudioTranscriptionAsync(transcriptionOptions);
+AudioTranscription transcription = transcriptionResponse.Value;
+
+// When using Simple, SRT, or VTT formats, only transcription.Text will be populated
+Console.WriteLine($"Transcription ({transcription.Duration.Value.TotalSeconds}s):");
+Console.WriteLine(transcription.Text);
+```
+
+# [Azure.AI.OpenAI 2.0](#tab/stable)
+
+```csharp
+// 2.0 - NEW
+AudioClient client = aoaiClient.GetAudioClient("my-whisper-1-deployment");
+
+AudioTranscriptionOptions options = new()
+{
+ ResponseFormat = AudioTranscriptionFormat.Verbose,
+ TimestampGranularities = AudioTimestampGranularities.Word | AudioTimestampGranularities.Segment,
+};
+
+AudioTranscription transcription = client.TranscribeAudio("my_audio_file.mp3", options);
+
+Console.WriteLine("Transcription:");
+Console.WriteLine($"{transcription.Text}");
+
+Console.WriteLine();
+Console.WriteLine($"Words:");
+foreach (TranscribedWord word in transcription.Words)
+{
+ Console.WriteLine($" {word.Word,15} : {word.StartTime.TotalMilliseconds,5:0} - {word.EndTime.TotalMilliseconds,5:0}");
+}
+
+Console.WriteLine();
+Console.WriteLine($"Segments:");
+foreach (TranscribedSegment segment in transcription.Segments)
+{
+ Console.WriteLine($" {segment.Text,90} : {segment.StartTime.TotalMilliseconds,5:0} - {segment.EndTime.TotalMilliseconds,5:0}");
+}
+```
+
+---
\ No newline at end of file
Summary
{
"modification_type": "new feature",
"modification_title": ".NET 用 Azure OpenAI ライブラリの移行ガイドの追加"
}
Explanation
この変更は、Azure OpenAI ライブラリの .NET バージョンの移行ガイドを新たに追加したもので、特にバージョン 1.0 ベータから 2.0 への移行方法について詳細に説明しています。追加された文書は、ユーザーが新しいバージョンのライブラリに移行するための具体的な手順とコード例を含んでおり、開発者が新機能や変更点を理解しやすいように構成されています。
ガイドは、ライブラリの設定、クライアント構成、チャットの完了、ツールの定義、画像生成および音声転写など、さまざまな機能領域を網羅しています。各機能について、1.0 ベータ版と 2.0 版のコード例を比較しながら改訂されており、ユーザーは新しいライブラリを利用する上での違いを一目で把握できます。
この移行ガイドは、開発者が最新の Azure OpenAI 機能を最大限に活用するための重要なリソースとなります。また、ライブラリのアップグレードに伴う潜在的な問題の解決を支援する内容が盛り込まれているため、開発者コミュニティにとって価値のある追加情報となるでしょう。
articles/ai-services/openai/how-to/evaluations.md
Diff
@@ -0,0 +1,324 @@
+---
+title: 'How to use Azure OpenAI Service evaluation'
+titleSuffix: Azure OpenAI
+description: Learn how to use evaluations with Azure OpenAI
+manager: nitinme
+ms.service: azure-ai-openai
+ms.topic: how-to
+ms.custom: references_regions
+ms.date: 11/10/2024
+author: mrbullwinkle
+ms.author: mbullwin
+recommendations: false
+---
+
+# Azure OpenAI Evaluation (Preview)
+
+The evaluation of large language models is a critical step in measuring their performance across various tasks and dimensions. This is especially important for fine-tuned models, where assessing the performance gains (or losses) from training is crucial. Thorough evaluations can help your understanding of how different versions of the model may impact your application or scenario.
+
+Azure OpenAI evaluation enables developers to create evaluation runs to test against expected input/output pairs, assessing the model’s performance across key metrics such as accuracy, reliability, and overall performance.
+
+## Evaluations support
+
+### Regional availability
+
+- North Central US
+- Sweden Central
+- Switzerland West
+
+### Supported deployment types
+
+- Standard
+- Provisioned
+
+## Evaluation pipeline
+
+### Test data
+
+You need to assemble a ground truth dataset that you want to test against. Dataset creation is typically an iterative process that ensures your evaluations remain relevant to your scenarios over time. This ground truth dataset is typically handcrafted and represents the expected behavior from your model. The dataset is also labeled and includes the expected answers.
+
+> [!NOTE]
+> Some evaluation tests like **Sentiment** and **valid JSON or XML** do not require ground truth data.
+
+Your data source needs to be in JSONL format. Below are two examples of the JSONL evaluation datasets:
+
+### Evaluation format
+
+# [Question & Answer Evaluation](#tab/question-eval-input)
+
+```jsonl
+{"question": "Find the degree for the given field extension Q(sqrt(2), sqrt(3), sqrt(18)) over Q.", "subject": "abstract_algebra", "A": "0", "B": "4", "C": "2", "D": "6", "answer": "B", "completion": "B"}
+{"question": "Let p = (1, 2, 5, 4)(2, 3) in S_5 . Find the index of <p> in S_5.", "subject": "abstract_algebra", "A": "8", "B": "2", "C": "24", "D": "120", "answer": "C", "completion": "C"}
+{"question": "Find all zeros in the indicated finite field of the given polynomial with coefficients in that field. x^5 + 3x^3 + x^2 + 2x in Z_5", "subject": "abstract_algebra", "A": "0", "B": "1", "C": "0,1", "D": "0,4", "answer": "D", "completion": "D"}
+```
+
+When you upload and select your evaluation file a preview of the first three lines will be returned:
+
+:::image type="content" source="../media/how-to/evaluations/question-input.png" alt-text="Screenshot that shows a preview of an uploaded evaluation training file for question and answer pairs." lightbox="../media/how-to/evaluations/question-input.png":::
+
+# [Chat Completions](#tab/summarization-input)
+
+```jsonl
+{"input": [{"role": "system", "content": "Provide a clear and concise summary of the technical content, highlighting key concepts and their relationships. Focus on the main ideas and practical implications."}, {"role": "user", "content": "Tokenization is a key step in preprocessing for natural language processing, involving the division of text into smaller components called tokens. These can be words, subwords, or characters, depending on the method chosen. Word tokenization divides text at word boundaries, while subword techniques like Byte Pair Encoding (BPE) or WordPiece can manage unknown words by breaking them into subunits. Character tokenization splits text into individual characters, useful for multiple languages and misspellings. The tokenization method chosen greatly affects model performance and its capacity to handle various languages and vocabularies."}], "output": "Tokenization divides text into smaller units (tokens) for NLP applications, using word, subword (e.g., BPE), or character methods. Each has unique benefits, impacting model performance and language processing capabilities."}
+{"input": [{"role": "system", "content": "Create a comprehensive yet concise summary that captures the essential technical details and significance of the topic."}, {"role": "user", "content": "Self-attention mechanisms are vital in modern transformer models, allowing them to evaluate the relevance of different parts of an input sequence when processing each element. In self-attention, each position in a sequence learns to focus on all other positions, forming a weighted sum of their values. Attention weights are derived using queries, keys, and values, with compatibility between a query and key determining attention to each value. This mechanism enables capturing long-range dependencies and relationships within a sequence, making it effective for tasks needing context understanding and inter-part relationships."}], "output": "Self-attention is crucial in transformers, enabling each sequence position to evaluate and collect data from all others. It uses queries, keys, and values for attention weights, effectively capturing long-range dependencies and contextual links."}
+{"input": [{"role": "system", "content": "Synthesize the technical information into a brief, accurate summary that maintains the core concepts and their significance."}, {"role": "user", "content": "The transformer architecture significantly changed natural language processing by introducing a new method for sequence processing. Unlike recurrent neural networks, transformers process whole sequences at once using self-attention. The architecture consists of an encoder and decoder, each with multiple layers of multi-head attention, feed-forward networks, and normalization layers. The encoder processes the input sequence, and the decoder produces the output sequence. Positional encodings are added to retain sequence order information since the model lacks inherent sequence position awareness. This architecture underlies many leading language models like BERT and GPT."}], "output": "Transformers are a transformative neural architecture processing sequences with self-attention instead of recurrence. Their encoder-decoder design, with multi-head attention and position encodings, is fundamental to modern language models like BERT and GPT."}
+```
+
+When you upload and select you evaluation file a preview of the first three lines will be returned:
+
+:::image type="content" source="../media/how-to/evaluations/summarization-input.png" alt-text="Screenshot that shows a preview of an uploaded evaluation training file for summarization tasks." lightbox="../media/how-to/evaluations/summarization-input.png":::
+
+---
+
+You can choose any existing previously uploaded datasets, or upload a new dataset.
+
+### Generate responses (optional)
+
+The prompt you use in your evaluation should match the prompt you plan to use in production. These prompts provide the instructions for the model to follow. Similar to the playground experiences, you can create multiple inputs to include few-shot examples in your prompt. For more information, see [prompt engineering techniques](../concepts/advanced-prompt-engineering.md) for details on some advanced techniques in prompt design and prompt engineering.
+
+You can reference your input data within the prompts by using the `{{input.column_name}}` format, where column_name corresponds to the names of the columns in your input file.
+
+Outputs generated during the evaluation will be referenced in subsequent steps using the `{{sample.output_text}}` format.
+
+> [!NOTE]
+> You need to use double curly braces to make sure you reference to your data correctly.
+
+### Model deployment
+
+As part of creating evaluations you'll pick which models to use when generating responses (optional) as well as which models to use when grading models with specific testing criteria.
+
+In Azure OpenAI you'll be assigning specific model deployments to use as part of your evaluations. You can compare multiple deployments by creating a separate evaluation configuration for each model. This enables you to define specific prompts for each evaluation, providing better control over the variations required by different models.
+
+You can evaluate either a base or a fine-tuned model deployment. The deployments available in your list depend on those you created within your Azure OpenAI resource. If you can't find the desired deployment, you can create a new one from the Azure OpenAI Evaluation page.
+
+### Testing criteria
+
+Testing criteria is used to assess the effectiveness of each output generated by the target model. These tests compare the input data with the output data to ensure consistency. You have the flexibility to configure different criteria to test and measure the quality and relevance of the output at different levels.
+
+:::image type="content" source="../media/how-to/evaluations/testing-criteria.png" alt-text="Screenshot that shows the evaluations testing criteria options." lightbox="../media/how-to/evaluations/testing-criteria.png":::
+
+## Getting started
+
+1. Select the **Azure OpenAI Evaluation (PREVIEW)** within Azure AI Studio. To see this view as an option may need to first select an existing Azure OpenAI resource in a supported region.
+2. Select **New evaluation**
+
+ :::image type="content" source="../media/how-to/evaluations/new-evaluation.png" alt-text="Screenshot of the Azure OpenAI evaluation UX with new evaluation selected." lightbox="../media/how-to/evaluations/new-evaluation.png":::
+
+3. Enter a name of your evaluation. By default a random name is automatically generated unless you edit and replace it. > select **Upload new dataset**.
+
+ :::image type="content" source="../media/how-to/evaluations/upload.png" alt-text="Screenshot of the Azure OpenAI upload UX." lightbox="../media/how-to/evaluations/upload.png":::
+
+4. Select your evaluation which will be in `.jsonl` format. If you need a sample test file you can save these 10 lines to a file called `eval-test.jsonl`:
+
+ ```jsonl
+ {"input": [{"role": "system", "content": "Provide a clear and concise summary of the technical content, highlighting key concepts and their relationships. Focus on the main ideas and practical implications."}, {"role": "user", "content": "Tokenization is a key step in preprocessing for natural language processing, involving the division of text into smaller components called tokens. These can be words, subwords, or characters, depending on the method chosen. Word tokenization divides text at word boundaries, while subword techniques like Byte Pair Encoding (BPE) or WordPiece can manage unknown words by breaking them into subunits. Character tokenization splits text into individual characters, useful for multiple languages and misspellings. The tokenization method chosen greatly affects model performance and its capacity to handle various languages and vocabularies."}], "output": "Tokenization divides text into smaller units (tokens) for NLP applications, using word, subword (e.g., BPE), or character methods. Each has unique benefits, impacting model performance and language processing capabilities."}
+ {"input": [{"role": "system", "content": "Create a comprehensive yet concise summary that captures the essential technical details and significance of the topic."}, {"role": "user", "content": "Self-attention mechanisms are vital in modern transformer models, allowing them to evaluate the relevance of different parts of an input sequence when processing each element. In self-attention, each position in a sequence learns to focus on all other positions, forming a weighted sum of their values. Attention weights are derived using queries, keys, and values, with compatibility between a query and key determining attention to each value. This mechanism enables capturing long-range dependencies and relationships within a sequence, making it effective for tasks needing context understanding and inter-part relationships."}], "output": "Self-attention is crucial in transformers, enabling each sequence position to evaluate and collect data from all others. It uses queries, keys, and values for attention weights, effectively capturing long-range dependencies and contextual links."}
+ {"input": [{"role": "system", "content": "Synthesize the technical information into a brief, accurate summary that maintains the core concepts and their significance."}, {"role": "user", "content": "The transformer architecture significantly changed natural language processing by introducing a new method for sequence processing. Unlike recurrent neural networks, transformers process whole sequences at once using self-attention. The architecture consists of an encoder and decoder, each with multiple layers of multi-head attention, feed-forward networks, and normalization layers. The encoder processes the input sequence, and the decoder produces the output sequence. Positional encodings are added to retain sequence order information since the model lacks inherent sequence position awareness. This architecture underlies many leading language models like BERT and GPT."}], "output": "Transformers are a transformative neural architecture processing sequences with self-attention instead of recurrence. Their encoder-decoder design, with multi-head attention and position encodings, is fundamental to modern language models like BERT and GPT."}
+ {"input": [{"role": "system", "content": "Distill the technical content into a clear, concise summary that preserves the most important concepts and their practical applications."}, {"role": "user", "content": "Cosine similarity is a metric for measuring similarity between vectors by calculating the cosine of the angle between them. The outcome ranges from -1 to 1, with 1 indicating identical orientation, 0 orthogonality, and -1 opposite orientation. In machine learning and NLP, cosine similarity is useful for comparing document vectors, word embeddings, or any high-dimensional representations. It's often preferred over Euclidean distance because it's invariant to vector magnitude, focusing instead on orientation. This makes it particularly useful for comparing documents or embeddings of various lengths or scales."}], "output": "Cosine similarity evaluates vector similarity by computing their angle's cosine, with values from -1 to 1. It's widely used in ML and NLP for comparing document vectors and embeddings due to its magnitude-invariant nature."}
+ {"input": [{"role": "system", "content": "Provide a succinct summary that captures the key technical concepts and their relationships while maintaining clarity and accuracy."}, {"role": "user", "content": "Neural network activation functions are crucial for introducing non-linearity to deep learning models. Commonly used activation functions include ReLU (Rectified Linear Unit), which outputs the input directly if positive and zero otherwise, sigmoid, which compresses values between 0 and 1, and tanh, which normalizes values between -1 and 1. Each function has specific benefits and applications: ReLU avoids vanishing gradients and enables sparse activation, sigmoid is useful for binary classification, and tanh is often used in hidden layers for its zero-centered output. The activation function choice greatly affects model training dynamics and ultimate performance."}], "output": "Activation functions introduce non-linearity to neural networks, with ReLU, sigmoid, and tanh being the most common. Each serves distinct purposes: ReLU prevents vanishing gradients, sigmoid is suitable for binary classification, and tanh offers zero-centered output, all affecting model performance differently."}
+ {"input": [{"role": "system", "content": "Create a focused summary that emphasizes the main technical concepts and their practical implications while maintaining accuracy."}, {"role": "user", "content": "Batch normalization is a technique that stabilizes and accelerates deep neural network training by normalizing each layer's inputs. It normalizes activations using the mean and variance computed over the current data batch. This normalization reduces internal covariate shift, where the input distribution changes during training. Batch normalization includes learnable parameters (gamma and beta) allowing the network to reverse normalization if necessary. Benefits include enabling higher learning rates, lessening the importance of precise parameter initialization, and serving as a regularizer, potentially removing the need for dropout."}], "output": "Batch normalization stabilizes neural network training by normalizing layer inputs using batch statistics. It addresses internal covariate shift with learnable parameters, allowing higher learning rates and improved training dynamics, while offering regularization benefits."}
+ {"input": [{"role": "system", "content": "Summarize the technical content while preserving the essential concepts and their interconnections, ensuring clarity and precision."}, {"role": "user", "content": "Gradient descent optimization algorithms are foundational to training machine learning models. The basic version updates parameters in the steepest descent direction of the loss function. Variants like Stochastic Gradient Descent (SGD) use random samples to estimate gradients, enhancing computational efficiency. Advanced optimizers like Adam combine momentum (helping overcome local minima) and RMSprop (adapting learning rates for each parameter). These optimizers maintain running averages of gradients and their squares, enabling adaptive learning rates and more efficient training. The optimizer choice can significantly influence model convergence speed and final performance."}], "output": "Gradient descent algorithms optimize ML models by updating parameters based on loss gradients. Variants like SGD use sampling for efficiency, while advanced optimizers like Adam combine momentum with adaptive learning rates for improved training performance."}
+ {"input": [{"role": "system", "content": "Deliver a concise yet comprehensive summary that highlights the key technical aspects and their practical significance."}, {"role": "user", "content": "Cross-validation is a resampling method used to evaluate machine learning models on limited data. The most common form, k-fold cross-validation, involves dividing the dataset into k equal parts, training the model on k-1 folds while validating on the remaining fold, and rotating through all combinations. This provides a more robust model performance assessment than a single train-test split, helping detect overfitting and estimate model generalization to unseen data. Variations include stratified k-fold (maintaining class distribution), leave-one-out (k equals dataset size), and time series cross-validation for temporal data."}], "output": "Cross-validation evaluates ML models by training and testing on different data splits, typically using k-fold methodology. This approach offers better performance assessment than single splits, with variations for different data types and requirements."}
+ {"input": [{"role": "system", "content": "Generate a clear and focused summary that captures the essential technical details while maintaining their relationships and significance."}, {"role": "user", "content": "Transfer learning is a machine learning method where a model developed for one task is reused as the starting point for a model on a second task. This approach is powerful in deep learning, where pre-trained models on large datasets (like ImageNet for computer vision or BERT for NLP) are fine-tuned on specific downstream tasks. Transfer learning reduces the need for large amounts of task-specific training data and computational resources, as the model has already learned useful features from the source domain. Common strategies include feature extraction (freezing pre-trained layers) and fine-tuning (updating all or some pre-trained weights)."}], "output": "Transfer learning reuses models trained on one task for different tasks, particularly effective in deep learning. It leverages pre-trained models through feature extraction or fine-tuning, reducing data and computational needs for new tasks."}
+ {"input": [{"role": "system", "content": "Provide a precise and informative summary that distills the key technical concepts while maintaining their relationships and practical importance."}, {"role": "user", "content": "Ensemble methods combine multiple machine learning models to create a more robust and accurate predictor. Common techniques include bagging (training models on random data subsets), boosting (sequentially training models to correct earlier errors), and stacking (using a meta-model to combine base model predictions). Random Forests, a popular bagging method, create multiple decision trees using random feature subsets. Gradient Boosting builds trees sequentially, with each tree correcting the errors of previous ones. These methods often outperform single models by reducing overfitting and variance while capturing different data aspects."}], "output": "Ensemble methods enhance prediction accuracy by combining multiple models through techniques like bagging, boosting, and stacking. Popular implementations include Random Forests (using multiple trees with random features) and Gradient Boosting (sequential error correction), offering better performance than single models."}
+ ```
+
+ You'll see the first three lines of the file as a preview:
+
+ :::image type="content" source="../media/how-to/evaluations/preview.png" alt-text="Screenshot that shows a preview of an uploaded evaluation file." lightbox="../media/how-to/evaluations/preview.png":::
+
+5. Select the toggle for **Generate responses**. Select `{{item.input}}` from the dropdown. This will inject the input fields from our evaluation file into individual prompts for a new model run that we want to able to compare against our evaluation dataset. The model will take that input and generate its own unique outputs which in this case will be stored in a variable called `{{sample.output_text}}`. We'll then use that sample output text later as part of our testing criteria. Alternatively you could provide your own custom system message and individual message examples manually.
+
+6. Select which model you want to generate responses based on your evaluation. If you don't have a model you can create one. For the purpose of this example we're using a standard deployment of `gpt-4o-mini`.
+
+ :::image type="content" source="../media/how-to/evaluations/item-input.png" alt-text="Screenshot of the UX for generating model responses with a model selected." lightbox="../media/how-to/evaluations/item-input.png":::
+
+ The settings/sprocket symbol controls the basic parameters that are passed to the model. Only the following parameters are supported at this time:
+
+- **Temperature**
+- **Maximum length**
+- **Top P**
+
+ Maximum length is currently capped at 2048 regardless of what model you select.
+
+7. Select **Add testing criteria** select **Add**.
+
+8. Select **Semantic Similarity** > Under **Compare** add `{{item.output}}` under **With** add ``{{sample.output_text}}``. This will take the original reference output from your evaluation `.jsonl` file and compare it against the output that will be generated by giving the model prompts based on your ``{{item.input}}``.
+
+ :::image type="content" source="../media/how-to/evaluations/semantic-similarity-config.png" alt-text="Screenshot of the semantic similarity UX config." lightbox="../media/how-to/evaluations/semantic-similarity-config.png":::
+
+9. Select **Add** > at this point you can either add additional testing criteria or you select Create to initiate the evaluation job run.
+
+10. Once you select **Create** you'll be taken to a status page for your evaluation job.
+
+ :::image type="content" source="../media/how-to/evaluations/status.png" alt-text="Screenshot of the evaluation status UX." lightbox="../media/how-to/evaluations/status.png":::
+
+11. Once your evaluation job has created you can select the job to view the full details of the job:
+
+ :::image type="content" source="../media/how-to/evaluations/test-complete.png" alt-text="Screenshot of a completed semantic similarity test with mix of pass and failures." lightbox="../media/how-to/evaluations/test-complete.png":::
+
+12. For semantic similarity **View output details** contains a JSON representation that you can copy/paste of your passing tests.
+
+ :::image type="content" source="../media/how-to/evaluations/output-details.png" alt-text="Screenshot of the evaluation status UX with output details." lightbox="../media/how-to/evaluations/output-details.png":::
+
+## Testing criteria details
+
+Azure OpenAI Evaluation offers multiple testing criteria options. The section below provides additional details on each option.
+
+### Factuality
+
+Assesses the factual accuracy of a submitted answer by comparing it against an expert answer.
+
+Factuality evaluates the factual accuracy of a submitted answer by comparing it to an expert answer. Utilizing a detailed chain-of-thought (CoT) prompt, the grader determines whether the submitted answer is consistent with, a subset of, a superset of, or in conflict with the expert answer. It disregards differences in style, grammar, or punctuation, focusing solely on factual content. Factuality can be useful in many scenarios including but not limited to content verification and educational tools ensuring the accuracy of answers provided by AI.
+
+:::image type="content" source="../media/how-to/evaluations/factuality.png" alt-text="Screenshot of the factuality testing criteria." lightbox="../media/how-to/evaluations/factuality.png":::
+
+You can view the prompt text that is used as part of this testing criteria by selecting the dropdown next to the prompt. The current prompt text is:
+
+```text
+Prompt
+You are comparing a submitted answer to an expert answer on a given question.
+Here is the data:
+[BEGIN DATA]
+************
+[Question]: {input}
+************
+[Expert]: {ideal}
+************
+[Submission]: {completion}
+************
+[END DATA]
+Compare the factual content of the submitted answer with the expert answer. Ignore any differences in style, grammar, or punctuation.
+The submitted answer may either be a subset or superset of the expert answer, or it may conflict with it. Determine which case applies. Answer the question by selecting one of the following options:
+(A) The submitted answer is a subset of the expert answer and is fully consistent with it.
+(B) The submitted answer is a superset of the expert answer and is fully consistent with it.
+(C) The submitted answer contains all the same details as the expert answer.
+(D) There is a disagreement between the submitted answer and the expert answer.
+(E) The answers differ, but these differences don't matter from the perspective of factuality.
+```
+
+### Semantic similarity
+
+Measures the degree of similarity between model's response and the reference. `Grades: 1 (completely different) - 5 (very similar)`.
+
+:::image type="content" source="../media/how-to/evaluations/semantic-similarity.png" alt-text="Screenshot of the semantic similarity testing criteria." lightbox="../media/how-to/evaluations/semantic-similarity.png":::
+
+### Sentiment
+
+Attempts to identify the emotional tone of the output.
+
+:::image type="content" source="../media/how-to/evaluations/sentiment.png" alt-text="Screenshot of the sentiment testing criteria." lightbox="../media/how-to/evaluations/sentiment.png":::
+
+You can view the prompt text that is used as part of this testing criteria by selecting the dropdown next to the prompt. The current prompt text is:
+
+```text
+Prompt
+You will be presented with a text generated by a large language model. Your job is to rate the sentiment of the text. Your options are:
+
+A) Positive
+B) Neutral
+C) Negative
+D) Unsure
+
+[BEGIN TEXT]
+***
+[{text}]
+***
+[END TEXT]
+
+First, write out in a step by step manner your reasoning about the answer to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character (without quotes or punctuation) on its own line corresponding to the correct answer. At the end, repeat just the letter again by itself on a new line
+```
+
+### String check
+
+Verifies if the output matches the expected string exactly.
+
+:::image type="content" source="../media/how-to/evaluations/string-check.png" alt-text="Screenshot of the string check testing criteria." lightbox="../media/how-to/evaluations/string-check.png":::
+
+String check performs various binary operations on two string variables allowing for diverse evaluation criteria. It helps with verifying various string relationships, including equality, containment, and specific patterns. This evaluator allows for case-sensitive or case-insensitive comparisons. It also provides specified grades for true or false results, allowing customized evaluation outcomes based on the comparison result. Here's the type of operations supported:
+- `equals`: Checks if the output string is exactly equal to the evaluation string.
+- `contains`: Checks if the evaluation string is a substring of output string.
+- `starts-with`: Checks if the output string starts with the evaluation string.
+- `ends-with`: Checks if the output string ends with the evaluation string.
+
+> [!NOTE]
+> When setting certain parameters in your testing criteria, you have the option to choose between the *variable* and the *template*. Select *variable* if you want to refer to a column in your input data. Choose *template* if you want to provide a fixed string.
+
+### Valid JSON or XML
+
+Verifies if the output is valid JSON or XML.
+
+:::image type="content" source="../media/how-to/evaluations/valid-json.png" alt-text="Screenshot of the valid json or XML testing criteria." lightbox="../media/how-to/evaluations/valid-json.png":::
+
+### Matches schema
+
+Ensures the output follows the specified structure.
+
+:::image type="content" source="../media/how-to/evaluations/matches-schema.png" alt-text="Screenshot of the matches schema testing criteria." lightbox="../media/how-to/evaluations/matches-schema.png":::
+
+### Criteria match
+
+Assess if model's response matches your criteria. Grade: Pass or Fail.
+
+:::image type="content" source="../media/how-to/evaluations/criteria-match.png" alt-text="Screenshot of the matches criteria test." lightbox="../media/how-to/evaluations/criteria-match.png":::
+
+You can view the prompt text that is used as part of this testing criteria by selecting the dropdown next to the prompt. The current prompt text is:
+
+```text
+Prompt
+Your job is to assess the final response of an assistant based on conversation history and provided criteria for what makes a good response from the assistant. Here is the data:
+
+[BEGIN DATA]
+***
+[Conversation]: {conversation}
+***
+[Response]: {response}
+***
+[Criteria]: {criteria}
+***
+[END DATA]
+
+Does the response meet the criteria? First, write out in a step by step manner your reasoning about the criteria to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character "Y" or "N" (without quotes or punctuation) on its own line corresponding to the correct answer. "Y" for yes if the response meets the criteria, and "N" for no if it does not. At the end, repeat just the letter again by itself on a new line.
+Reasoning:
+```
+
+### Text quality
+
+Evaluate quality of text by comparing to reference text.
+
+:::image type="content" source="../media/how-to/evaluations/text-quality-general.png" alt-text="Screenshot of the text quality testing criteria." lightbox="../media/how-to/evaluations/text-quality-general.png":::
+
+**Summary:**
+
+- BLEU Score: Evaluates the quality of generated text by comparing it against one or more high-quality reference translations using the BLEU score.
+- ROUGE Score: Evaluates the quality of generated text by comparing it to reference summaries using ROUGE scores.
+- Cosine: Also referred to as cosine similarity measures how closely two text embeddings—such as model outputs and reference texts—align in meaning, helping assess the semantic similarity between them. This is done by measuring their distance in vector space.
+
+**Details:**
+
+BLEU (BiLingual Evaluation Understudy) score is commonly used in natural language processing (NLP) and machine translation. It's widely used in text summarization and text generation use cases. It evaluates how closely the generated text matches the reference text. The BLEU score ranges from 0 to 1, with higher scores indicating better quality.
+
+ROUGE (Recall-Oriented Understudy for Gisting Evaluation) is a set of metrics used to evaluate automatic summarization and machine translation. It measures the overlap between generated text and reference summaries. ROUGE focuses on recall-oriented measures to assess how well the generated text covers the reference text.
+The ROUGE score provides various metrics, including:
+• ROUGE-1: Overlap of unigrams (single words) between generated and reference text.
+• ROUGE-2: Overlap of bigrams (two consecutive words) between generated and reference text.
+• ROUGE-3: Overlap of trigrams (three consecutive words) between generated and reference text.
+• ROUGE-4: Overlap of four-grams (four consecutive words) between generated and reference text.
+• ROUGE-5: Overlap of five-grams (five consecutive words) between generated and reference text.
+• ROUGE-L: Overlap of L-grams (L consecutive words) between generated and reference text.
+Text summarization and document comparison are among optimal use cases for ROUGE, particularly in scenarios where text coherence and relevance are critical.
+
+Cosine similarity measures how closely two text embeddings—such as model outputs and reference texts—align in meaning, helping assess the semantic similarity between them. Same as other model-based evaluators, you need to provide a model deployment using for evaluation.
+
+> [!IMPORTANT]
+> Only embedding models are supported for this evaluator:
+>
+> - `text-embedding-3-small`
+> - `text-embedding-3-large`
+> - `text-embedding-ada-002`
+
+### Custom prompt
+
+Uses the model to classify the output into a set of specified labels. This evaluator uses a custom prompt that you'll need to define.
+
+:::image type="content" source="../media/how-to/evaluations/custom-prompt.png" alt-text="Screenshot of the custom prompt testing criteria." lightbox="../media/how-to/evaluations/custom-prompt.png":::
Summary
{
"modification_type": "new feature",
"modification_title": "Azure OpenAI サービスの評価機能に関するガイドの追加"
}
Explanation
この変更は、Azure OpenAI サービスにおける評価機能の使用方法を説明する新しいガイドを追加したもので、324行にわたる詳細な内容が含まれています。このドキュメントでは、開発者が大規模言語モデルのパフォーマンスを評価するための手順と方法が紹介されており、特にファインチューニングされたモデルの性能を測定することが強調されています。
評価機能は、予想される入力/出力ペアに対してテストを行い、正確性や信頼性などの主要なメトリクスを通じてモデルの性能を評価する手段を提供します。また、評価の対象となるデータセットの構築、評価フォーマット、評価パイプライン、モデルを使用する際のプロンプトの設計、さらには出力の生成やテスト基準の設定に関する詳細情報も含まれています。
特に、ガイドは地域ごとの利用可能性やサポートされるデプロイメントタイプ、具体的なテスト基準の設定方法についても明記されており、開発者が評価プロセスを効率的に進める助けとなるでしょう。このドキュメントは、Azure OpenAI サービスを利用する開発者にとって、モデルのパフォーマンスを向上させるための重要なリソースとなります。
articles/ai-services/openai/how-to/fine-tuning.md
Diff
@@ -24,7 +24,7 @@ Azure OpenAI Service lets you tailor our models to your personal datasets by usi
In contrast to few-shot learning, fine tuning improves the model by training on many more examples than can fit in a prompt, letting you achieve better results on a wide number of tasks. Because fine tuning adjusts the base model’s weights to improve performance on the specific task, you won’t have to include as many examples or instructions in your prompt. This means less text sent and fewer tokens processed on every API call, potentially saving cost, and improving request latency.
-We use LoRA, or low rank approximation, to fine-tune models in a way that reduces their complexity without significantly affecting their performance. This method works by approximating the original high-rank matrix with a lower rank one, thus only fine-tuning a smaller subset of "important" parameters during the supervised training phase, making the model more manageable and efficient. For users, this makes training faster and more affordable than other techniques.
+We use LoRA, or low rank approximation, to fine-tune models in a way that reduces their complexity without significantly affecting their performance. This method works by approximating the original high-rank matrix with a lower rank one, thus only fine-tuning a smaller subset of *important* parameters during the supervised training phase, making the model more manageable and efficient. For users, this makes training faster and more affordable than other techniques.
> [!NOTE]
> Azure OpenAI currently only supports text-to-text fine-tuning for all supported models including GPT-4o mini.
@@ -47,9 +47,44 @@ We use LoRA, or low rank approximation, to fine-tune models in a way that reduce
::: zone-end
+## Vision fine-tuning
+
+Fine-tuning is also possible with images in your JSONL files. Just as you can send one or many image inputs to chat completions, you can include those same message types within your training data. Images can be provided either as publicly accessible URLs or data URIs containing [base64 encoded images](/azure/ai-services/openai/how-to/gpt-with-vision?tabs=rest#call-the-chat-completion-apis).
+
+### Image dataset requirements
+
+- Your training file can contain a maximum of 50,000 examples that contain images (not including text examples).
+- Each example can have at most 64 images.
+- Each image can be at most 10 MB.
+
+### Format
+
+Images must be:
+
+- JPEG
+- PNG
+- WEBP
+
+Images must be in the RGB or RGBA image mode.
+
+You cannot include images as output from messages with the assistant role.
+
+### Content moderation policy
+
+We scan your images before training to ensure that they comply with our usage policy [Transparency Note](/legal/cognitive-services/openai/transparency-note?context=%2Fazure%2Fai-services%2Fopenai%2Fcontext%2Fcontext&tabs=text). This may introduce latency in file validation before fine tuning begins.
+
+Images containing the following will be excluded from your dataset and not used for training:
+
+- People
+- Faces
+- CAPTCHAs
+
+> [!IMPORTANT]
+>For vision fine tuning face screening process: We screen for faces/people to skip those images from training the model. The screening capability leverages face detection **WITHOUT** Face identification which means we don't create facial templates or measure specific facial geometry, and the technology used to screen for faces is incapable of uniquely identifying the individuals. To know more about data and Privacy for face refer to - [Data and privacy for Face - Azure AI services | Microsoft Learn](/legal/cognitive-services/computer-vision/imageanalysis-data-privacy-security?context=%2Fazure%2Fai-services%2Fcomputer-vision%2Fcontext%2Fcontext).
+
## Troubleshooting
-### How do I enable fine-tuning? Create a custom model is greyed out in Azure OpenAI Studio?
+### How do I enable fine-tuning?
In order to successfully access fine-tuning, you need **Cognitive Services OpenAI Contributor assigned**. Even someone with high-level Service Administrator permissions would still need this account explicitly set in order to access fine-tuning. For more information, please review the [role-based access control guidance](/azure/ai-services/openai/how-to/role-based-access-control#cognitive-services-openai-contributor).
@@ -67,6 +102,55 @@ If your file upload fails in Azure OpenAI Studio, you can view the error message
- **Bad data:** A poorly curated or unrepresentative dataset will produce a low-quality model. Your model may learn inaccurate or biased patterns from your dataset. For example, if you are training a chatbot for customer service, but only provide training data for one scenario (e.g. item returns) it will not know how to respond to other scenarios. Or, if your training data is bad (contains incorrect responses), your model will learn to provide incorrect results.
+### Fine-tuning with vision
+
+**What to do if your images get skipped**
+
+Your images can get skipped for the following reasons:
+
+- contains CAPTCHAs
+- contains people
+- contains faces
+
+Remove the image. For now, we cannot fine-tune models with images containing these entities.
+
+**Common issues**
+
+|Issue| Reason/Solution|
+|:----|:-----|
+|**Images skipped**| Images can get skipped for the following reasons: contains CAPTCHAs, people, or faces.<br><br> Remove the image. For now, we cannot fine-tune models with images containing these entities.|
+|**Inaccessible URL**| Check that the image URL is publicly accessible.|
+|**Image too large**| Check that your images fall within our dataset size limits.|
+|**Invalid image format**| Check that your images fall within our dataset format.|
+
+**How to upload large files**
+
+Your training files might get quite large. You can upload files up to 8 GB in multiple parts using the [Uploads API](/rest/api/azureopenai/upload-file?view=rest-azureopenai-2024-10-21&preserve-view=true) as opposed to the Files API, which only allows file uploads of up to 512 MB.
+
+**Reducing training cost**
+
+If you set the detail parameter for an image to low, the image is resized to 512 by 512 pixels and is only represented by 85 tokens regardless of its size. This will reduce the cost of training.
+
+```json
+{
+
+ "type": "image_url",
+
+ "image_url": {
+
+ "url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png",
+
+ "detail": "low"
+
+ }
+
+}
+```
+
+**Other considerations for vision fine-tuning**
+
+To control the fidelity of image understanding, set the detail parameter of `image_url` to `low`, `high`, or `auto` for each image. This will also affect the number of tokens per image that the model sees during training time and will affect the cost of training.
+
## Next steps
- Explore the fine-tuning capabilities in the [Azure OpenAI fine-tuning tutorial](../tutorials/fine-tune.md).
Summary
{
"modification_type": "minor update",
"modification_title": "Azure OpenAI サービスのファインチューニングガイドの更新"
}
Explanation
この変更は、Azure OpenAI サービスのファインチューニングに関するガイドを更新したもので、文章内に新しい情報を追加し、一部の内容を修正しています。主な変更点は、画像を用いたファインチューニングに関するセクションの追加です。この内容では、画像が含まれるJSONLファイルの要件やフォーマット、コンテンツモデレーションポリシーが詳述されています。また、顔や人の画像をフィルタリングするプロセスについての注意事項も強調されています。
更新されたガイドには、ファインチューニングプロセスや画像データセットの要件に関する具体的な指示が追加されており、特にユーザーが使用する際の利便性を向上させるための詳細な情報が提供されています。さらに、画像ファインチューニングに関連する問題点と解決策、ファイルの大きさに関する注意点や、コスト削減のための設定方法に関する情報も含まれています。
このガイドは、Azure OpenAI サービスを活用する開発者にとって、より柔軟で効率的なファインチューニングを実施するための重要なリソースとなるでしょう。
articles/ai-services/openai/how-to/manage-costs.md
Diff
@@ -18,7 +18,7 @@ You can also review forecasted costs and identify spending trends to identify ar
## Prerequisites
-Cost analysis in Cost Management supports most Azure account types, but not all of them. To view the full list of supported account types, see [Understand Cost Management data](/azure/cost-management-billing/costs/understand-cost-mgt-data?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn). To view cost data, you need at least read access for an Azure account. For information about assigning access to Azure Cost Management data, see [Assign access to data](/azure/cost-management/assign-access-acm-data?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn).
+Cost analysis in Cost Management supports most Azure account types, but not all of them. To view the full list of supported account types, see [Understand Cost Management data](/azure/cost-management-billing/costs/understand-cost-mgt-data?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn). To view cost data, you need at least read access for an Azure account. For information about assigning access to Microsoft Cost Management data, see [Assign access to data](/azure/cost-management/assign-access-acm-data?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn).
## Estimate costs before using Azure OpenAI
@@ -28,25 +28,26 @@ Use the [Azure pricing calculator](https://azure.microsoft.com/pricing/calculato
Azure OpenAI Service runs on Azure infrastructure that accrues costs when you deploy new resources. There could be other infrastructure costs that might accrue. The following sections describe how you're charged for Azure OpenAI Service.
-### Base series and Codex series models
+### Model inference chat completions
-Azure OpenAI base series and Codex series models are charged per 1,000 tokens. Costs vary depending on which model series you choose: Ada, Babbage, Curie, Davinci, or Code-Cushman.
+Azure OpenAI chat completions model inference is [charged per 1,000 tokens with different rates](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/) depending on model and [deployment type](./deployment-types.md).
Azure OpenAI models understand and process text by breaking it down into tokens. For reference, each token is roughly four characters for typical English text.
Token costs are for both input and output. For example, suppose you have a 1,000 token JavaScript code sample that you ask an Azure OpenAI model to convert to Python. You would be charged approximately 1,000 tokens for the initial input request sent, and 1,000 more tokens for the output that is received in response for a total of 2,000 tokens.
In practice, for this type of completion call, the token input/output wouldn't be perfectly 1:1. A conversion from one programming language to another could result in a longer or shorter output depending on many factors. One such factor is the value assigned to the `max_tokens` parameter.
-### Base Series and Codex series fine-tuned models
+### Fine-tuned models
-Azure OpenAI fine-tuned models are charged based on three factors:
+Azure OpenAI fine-tuning models are charged based on the [number of tokens in your training file](https://techcommunity.microsoft.com/blog/azure-ai-services-blog/pricing-update-token-based-billing-for-fine-tuning-training-%F0%9F%8E%89/4164465). For the latest prices, see the [official pricing page](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/).
+
+Once your fine-tuned model is deployed, you're also charged based on:
-- Training hours
- Hosting hours
-- Inference per 1,000 tokens
+- Inference per 1,000 tokens (broken down by input usage and output usage)
-The hosting hours cost is important to be aware of since after a fine-tuned model is deployed, it continues to incur an hourly cost regardless of whether you're actively using it. Monitor fine-tuned model costs closely.
+The hosting hours cost is important to be aware of since after a fine-tuned model is deployed, it continues to incur an hourly cost regardless of whether you're actively using it. Monitor deployed fine-tuned model costs closely.
> [!IMPORTANT]
> After you deploy a customized model, if at any time the deployment remains inactive for greater than fifteen (15) days,
@@ -130,7 +131,7 @@ You can also [export your cost data](/azure/cost-management-billing/costs/tutori
## Next steps
-- Learn [how to optimize your cloud investment with Azure Cost Management](/azure/cost-management-billing/costs/cost-mgt-best-practices?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn).
+- Learn [how to optimize your cloud investment with Microsoft Cost Management](/azure/cost-management-billing/costs/cost-mgt-best-practices?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn).
- Learn more about managing costs with [cost analysis](/azure/cost-management-billing/costs/quick-acm-cost-analysis?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn).
- Learn about how to [prevent unexpected costs](/azure/cost-management-billing/understand/analyze-unexpected-charges?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn).
- Take the [Cost Management](/training/paths/control-spending-manage-bills?WT.mc_id=costmanagementcontent_docsacmhorizontal_-inproduct-learn) guided learning course.
Summary
{
"modification_type": "minor update",
"modification_title": "Azure OpenAI サービスのコスト管理ガイドの更新"
}
Explanation
この変更は、Azure OpenAI サービスに関連するコスト管理に関するガイドの内容を更新したもので、全体で10行の追加と9行の削除が行われました。主な変更点には、コスト管理に関する用語の統一や、モデル推論およびファインチューニングについての説明が明確にされています。
具体的には、ファインチューニングモデルに関連する料金体系が更新され、トレーニングファイル内のトークン数に基づいて料金が発生することが強調されています。また、デプロイされたファインチューニングモデルのホスティング費用、推論の料金など、コスト管理に関する重要な情報が整理され、利用者に対する注意喚起も追加されています。
さらに、「Azure Cost Management」から「Microsoft Cost Management」への名称変更が反映されており、関連するリンクも適切に修正されています。この変更により、ユーザーはAzure OpenAI サービスのコストをより正確に把握し、管理できるようになるでしょう。全体として、コスト管理の理解を助けるための重要なリソースとして役立つと思われます。
articles/ai-services/openai/how-to/weights-and-biases-integration.md
Diff
@@ -0,0 +1,99 @@
+---
+title: 'Integrate Azure OpenAI with Weights & Biases'
+titleSuffix: Azure OpenAI
+description: Learn how to integrate Weights & Biases and Azure OpenAI fine-tuning.
+manager: nitinme
+ms.service: azure-ai-openai
+ms.custom:
+ms.topic: how-to
+ms.date: 11/10/2024
+author: mrbullwinkle
+ms.author: mbullwin
+---
+
+# Integrate Azure OpenAI fine-tuning with Weights & Biases (preview)
+
+Weights & Biases (W&B) is a powerful AI developer platform that enables machine learning practitioners to train, fine-tune, and deploy models efficiently. Azure OpenAI fine-tuning integrates with W&B, allowing you to track metrics, parameters, and visualize your Azure OpenAI fine-tuning training runs within your W&B projects. In this article, we will guide you through setting up the Weights & Biases integration.
+
+:::image type="content" source="../media/how-to/weights-and-biases/dashboards.png" alt-text="Screenshot of the weights and biases dashboards." lightbox="../media/how-to/weights-and-biases/dashboards.png":::
+
+## Prerequisites
+
+- An Azure OpenAI resource. For more information, see [Create a resource and deploy a model with Azure OpenAI](../how-to/create-resource.md). The resource should be in a [region that supports fine-tuning](../concepts/models.md#fine-tuning-models).
+- All users on your team who need to fine-tune models should have **Cognitive Services OpenAI Contributor** access assigned for the new Azure OpenAI resource.
+- A [Weights & Biases](https://wandb.ai) account and API key.
+- [Azure Key Vault](https://portal.azure.com/#create/Microsoft.KeyVault). For more information on creating a key vault, see the [Azure Key Vault quickstart](/azure/key-vault/general/quick-create-portal).
+
+## Enable System Managed Identity
+
+First you will need to enable [System Managed Identity](/entra/identity/managed-identities-azure-resources/overview) for your Azure OpenAI resource.
+
+:::image type="content" source="../media/how-to/weights-and-biases/system-managed.png" alt-text="Screenshot of the system managed identity enabled user experience." lightbox="../media/how-to/weights-and-biases/system-managed.png":::
+
+## Retrieve Weights & Biases API key
+
+Sign in to [https://wandb.ai](https://wandb.ai) and go to [User Settings](https://wandb.ai/settings).
+
+Under **API Keys** select **Reveal** to access your key and copy to the clipboard.
+
+:::image type="content" source="../media/how-to/weights-and-biases/reveal-key.png" alt-text="Screenshot of API keys section of User Settings user experience." lightbox="../media/how-to/weights-and-biases/reveal-key.png":::
+
+If you would like to create a new key use [https://wandb.ai/authorize](https://wandb.ai/authorize), and copy the key to add to your integration configuration later.
+
+## Configure Azure Key Vault
+
+In order to securely, send data from Azure OpenAI to your Weights & Biases projects you'll need to use [Azure Key Vault](/azure/key-vault/general/overview).
+
+### Add your Weights & Biases API key as a Secret to your Azure Key Vault
+
+1. Navigate to the Azure Key Vault you are planning to use.
+2. To read\write secrets to your Azure Key Vault, you must explicitly assign access.
+3. Go to Settings > Access configuration, under Permission model we recommend you select Azure role-based access control if this isn't already selected. Learn more about [Azure role-based access control](/azure/role-based-access-control/overview?WT.mc_id=Portal-Microsoft_Azure_KeyVault).
+
+ :::image type="content" source="../media/how-to/weights-and-biases/role-based-access-control.png" alt-text="Screenshot of key vault access configuration user interface." lightbox="../media/how-to/weights-and-biases/role-based-access-control.png":::
+
+### Assign Key Vault Secrets Officer role
+
+Now that you set your permission model to Azure role-based access control, you can give yourself the **Key Vault Secrets Officer** role.
+
+1. Go to **Access control (IAM)** and then **Add role assignment**
+
+ :::image type="content" source="../media/how-to/weights-and-biases/access-control.png" alt-text="Screenshot of the access control add role assignment user experience." lightbox="../media/how-to/weights-and-biases/access-control.png":::
+
+2. Choose **Key Vault Secrets Officer** and add your account as a member and select **review & assign**.
+
+ :::image type="content" source="../media/how-to/weights-and-biases/key-vault-secret-officer.png" alt-text="Screenshot of the key vault secret officer role assignment." lightbox="../media/how-to/weights-and-biases/key-vault-secret-officer.png":::
+
+### Create secrets
+
+1. From within your key vault resource under **Objects** and select **Secrets** > **Generate/Import**.
+
+ :::image type="content" source="../media/how-to/weights-and-biases/secrets.png" alt-text="Screenshot of the key vault secrets user interface." lightbox="../media/how-to/weights-and-biases/secrets.png":::
+
+2. Provide a name to your secret and save the generated API key from Weights & Biases to the **secret value**.
+
+ :::image type="content" source="../media/how-to/weights-and-biases/create-secret.png" alt-text="Screenshot of the key vault secrets creation user interface." lightbox="../media/how-to/weights-and-biases/create-secret.png":::
+
+3. Make sure to capture the secret name and key vault url. Key vault URL can be retrieved from **Overview** section of your key-vault.
+
+### Give your Key Vault permission on your Azure OpenAI account
+
+If you used vault access policy earlier to read/write secrets to your Azure Key Vault, you should use that again. Otherwise, continue to use Azure role-based access control. **We recommend Azure role-based access control, though if it does not work for you, please try Vault Access policy.**
+
+Give your Azure OpenAI resource the **Key Vault Secrets Officer** role.
+
+:::image type="content" source="../media/how-to/weights-and-biases/assign.png" alt-text="Screenshot of the assign managed identity user interface." lightbox="../media/how-to/weights-and-biases/assign.png":::
+
+## Link Weights & Biases with Azure OpenAI
+
+1. Navigate to [AI Studio](https://ai.azure.com) and select your Azure OpenAI fine-tuning resource.
+
+ :::image type="content" source="../media/how-to/weights-and-biases/manage-integrations.png" alt-text="Screenshot of the manage integrations button." lightbox="../media/how-to/weights-and-biases/manage-integrations.png":::
+
+2. Add your key vault URL and secret > then select **Update**.
+
+ :::image type="content" source="../media/how-to/weights-and-biases/integration.png" alt-text="Screenshot of the manage integrations for Weights and Biases user experience." lightbox="../media/how-to/weights-and-biases/integration.png":::
+
+3. Now when you create new fine-tuning jobs you'll have the option to log data from the job to your Weights & Biases account.
+
+ :::image type="content" source="../media/how-to/weights-and-biases/dashboards.png" alt-text="Screenshot of the weights and biases dashboards." lightbox="../media/how-to/weights-and-biases/dashboards.png":::
\ No newline at end of file
Summary
{
"modification_type": "new feature",
"modification_title": "Azure OpenAI と Weights & Biases の統合ガイドの追加"
}
Explanation
この変更は、Azure OpenAI サービスと Weights & Biases(W&B)を統合する方法に関する新しいガイドを追加したものです。このガイドでは、Azure OpenAI のファインチューニングと W&B の連携を設定し、トレーニングのメトリクスやパラメータを追跡し、視覚化するための手順が詳述されています。
ガイドは以下のセクションで構成されています:
- 前提条件: Azure OpenAI リソース、W&B アカウント、API キー、Azure Key Vault が必要であることを説明しています。
- システム管理されたアイデンティティの有効化: Azure OpenAI リソースにシステム管理されたアイデンティティを有効にする手順を示しています。
- Weights & Biases API キーの取得: W&B アカウントから API キーを取得する方法を詳細に説明しています。
- Azure Key Vault の設定: W&B プロジェクトへ安全にデータを送信するために Azure Key Vault を使用する方法について述べています。
- 統合のリンク: Azure OpenAI リソースで W&B をリンクする具体的なステップが提供されています。
各セクションには図やスクリーンショットが含まれており、ユーザーが手順を視覚的に理解しやすくなっています。このガイドは、開発者が Azure OpenAI のトレーニングプロセスをより効率的に管理し、W&B の機能を活用する助けとなるでしょう。
articles/ai-services/openai/includes/api-versions/latest-inference-preview.md
Diff
@@ -4638,7 +4638,7 @@ Represents a completion response from the API. Note: both the streamed and non-s
|------|------|-------------|----------|---------|
| description | string | A description of what the function does, used by the model to choose when and how to call the function. | No | |
| name | string | The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. | Yes | |
-| parameters | [FunctionParameters](#functionparameters) | The parameters the functions accepts, described as a JSON Schema object. See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. <br><br>Omitting `parameters` defines a function with an empty parameter list. | No | |
+| parameters | [FunctionParameters](#functionparameters) | The parameters the functions accepts, described as a JSON Schema object. [See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. <br><br>Omitting `parameters` defines a function with an empty parameter list. | No | |
### chatCompletionFunctionCallOption
@@ -5296,7 +5296,7 @@ on an Azure OpenAI endpoint call for embeddings.
| Name | Type | Description | Required | Default |
|------|------|-------------|----------|---------|
| type | [onYourDataVectorizationSourceType](#onyourdatavectorizationsourcetype) | Represents the available sources Azure OpenAI On Your Data can use to configure vectorization of data for use with<br>vector search. | Yes | |
-| endpoint | string | Specifies the resource endpoint URL from which embeddings should be retrieved. It should be in the format of https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. The api-version query parameter isn't allowed. | No | |
+| endpoint | string | Specifies the resource endpoint URL from which embeddings should be retrieved. It should be in the format of `https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings`. The api-version query parameter isn't allowed. | No | |
| authentication | [onYourDataApiKeyAuthenticationOptions](#onyourdataapikeyauthenticationoptions) or [onYourDataAccessTokenAuthenticationOptions](#onyourdataaccesstokenauthenticationoptions) | | No | |
| dimensions | integer | The number of dimensions the embeddings should have. Only supported in `text-embedding-3` and later models. | No | |
Summary
{
"modification_type": "minor update",
"modification_title": "API バージョンの最新情報の更新"
}
Explanation
この変更は、Azure OpenAI の API バージョンに関するドキュメントの一部を更新したもので、全体で4つの変更が行われました。具体的には、ドキュメント内の「parameters」フィールドや「endpoint」フィールドにおける説明が一部修正されました。
主な変更点は以下の通りです:
- parameters フィールドの説明修正: 「guides」へのリンクの記述形式が改善され、ユーザーにとって見やすくなりました。
- endpoint フィールドの説明修正: URL のフォーマット指定にコードブロックが使用され、より明確に表現されています。
これらの修正は主に文書の可読性を向上させるもので、開発者が API を利用する際の理解を助けることを目的としています。全体的に、ユーザーが求める情報にアクセスしやすくなることが期待されます。
articles/ai-services/openai/includes/api-versions/latest-inference.md
Diff
@@ -1263,7 +1263,7 @@ Represents a completion response from the API. Note: both the streamed and nonst
|------|------|-------------|----------|---------|
| description | string | A description of what the function does, used by the model to choose when and how to call the function. | No | |
| name | string | The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. | Yes | |
-| parameters | [FunctionParameters](#functionparameters) | The parameters the functions accepts, described as a JSON Schema object. See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. <br><br>Omitting `parameters` defines a function with an empty parameter list. | No | |
+| parameters | [FunctionParameters](#functionparameters) | The parameters the functions accepts, described as a JSON Schema object. [See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. <br><br>Omitting `parameters` defines a function with an empty parameter list. | No | |
### chatCompletionFunctionCallOption
@@ -2017,7 +2017,7 @@ Usage statistics for the completion request.
### FunctionParameters
-The parameters the functions accepts, described as a JSON Schema object. See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
+The parameters the functions accepts, described as a JSON Schema object. [See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.
Omitting `parameters` defines a function with an empty parameter list.
@@ -2032,7 +2032,7 @@ No properties defined for this component.
|------|------|-------------|----------|---------|
| description | string | A description of what the function does, used by the model to choose when and how to call the function. | No | |
| name | string | The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64. | Yes | |
-| parameters | [FunctionParameters](#functionparameters) | The parameters the functions accepts, described as a JSON Schema object. See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. <br><br>Omitting `parameters` defines a function with an empty parameter list. | No | |
+| parameters | [FunctionParameters](#functionparameters) | The parameters the functions accepts, described as a JSON Schema object. [See the guide](/azure/ai-services/openai/how-to/function-calling) for examples, and the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. <br><br>Omitting `parameters` defines a function with an empty parameter list. | No | |
| strict | boolean | Whether to enable strict schema adherence when generating the function call. If set to true, the model will follow the exact schema defined in the `parameters` field. Only a subset of JSON Schema is supported when `strict` is `true`. | No | False |
Summary
{
"modification_type": "minor update",
"modification_title": "API 情報の更新"
}
Explanation
この変更は、Azure OpenAI サービスの API 情報を更新したもので、全体で6つの変更が行われました。主に、関数のパラメータに関する説明文の整形と一部リンクの修正が含まれています。
具体的な改定内容は以下の通りです:
- parameters フィールドの説明修正:
parameters
に関する説明が改善され、関連ガイドへのリンクの書式が統一されました。この変更により、ユーザーがAPIの利用方法を理解しやすくなります。
- FunctionParameters セクションの修正文: 同様に、
FunctionParameters
セクションでも説明文の書式が調整されています。これにより、APIの使用に関する情報が明確になっています。
この変更は、特に開発者が API を利用する際に必要な情報をすばやく見つけやすくすることを目的としています。また、ドキュメント全体の整合性を高め、閲覧時の可読性を向上させることに寄与しています。
articles/ai-services/openai/includes/assistants-ai-studio.md
Diff
@@ -26,11 +26,11 @@ author: mrbullwinkle
1. Sign in to [Azure AI Studio](https://ai.azure.com).
1. Go to your project or [create a new project](../../../ai-studio//how-to/create-projects.md) in Azure AI Studio.
-1. From your project overview, select **Assistants**, located under **Project playground**.
+1. From your project overview, select **Assistants**, located under **playgrounds**.
The Assistants playground allows you to explore, prototype, and test AI Assistants without needing to run any code. From this page, you can quickly iterate and experiment with new ideas.
- The playground provides several options to configure your Assistant. In the following steps, you will use the **Assistant setup** pane to create a new AI assistant.
+ The playground provides several options to configure your Assistant. In the following steps, you will use the **setup** pane to create a new AI assistant.
| **Name** | **Description** |
|:---|:---|
@@ -46,7 +46,7 @@ author: mrbullwinkle
## Create your first Assistant
1. Select your deployment from the **Deployments** dropdown.
-1. From the Assistant setup drop-down, select **New**.
+1. From the Assistant setup drop-down, select **New assistant**.
1. Give your Assistant a name.
1. Enter the following instructions "You are an AI assistant that can write code to help answer math questions"
1. Select a model deployment. We recommend testing with one of the latest gpt-4 models.
Summary
{
"modification_type": "minor update",
"modification_title": "AI スタジオの設定手順の更新"
}
Explanation
この変更は、Azure AI Studio に関するドキュメントの設定手順を更新したもので、全体で6つの変更が行われています。主に手順の表現や用語の一貫性を向上させることを目的とした修正です。
具体的な修正内容は以下の通りです:
セクション名の修正: 「Project playground」の下にある「Assistants」を「playgrounds」に変更しました。これにより、ナビゲーションの説明がより明確になります。
設定手順の表現修正: 「Assistant setup」パンから「setup」パンに変更され、ユーザーにとって必要な情報がより簡潔に伝わるようになっています。
新しいアシスタントの作成手順の修正: 「New」から「New assistant」に表現が修正され、ユーザーが具体的に何を選択すべきかが明確になりました。
これらの変更は、Azure AI Studio を使用する際のユーザーエクスペリエンスを向上させ、手順を理解しやすくするために行われました。全体として、読者が左右されることなく、指示に従いやすくなることが期待されています。
articles/ai-services/openai/includes/connect-your-data-studio.md
Diff
@@ -6,7 +6,7 @@ ms.service: azure-ai-openai
ms.topic: include
author: aahill
ms.author: aahi
-ms.date: 02/15/2024
+ms.date: 11/06/2024
recommendations: false
---
@@ -15,15 +15,17 @@ recommendations: false
> [!TIP]
> You can [use the Azure Developer CLI](../how-to/azure-developer-cli.md) to programmatically create the resources needed for Azure OpenAI On Your Data
-Navigate to [Azure OpenAI Studio](https://oai.azure.com/) and sign-in with credentials that have access to your Azure OpenAI resource. During or after the sign-in workflow, select the appropriate directory, Azure subscription, and Azure OpenAI resource.
+Navigate to [Azure AI Studio](https://ai.azure.com/) and sign-in with credentials that have access to your Azure OpenAI resource.
-1. Select the **Bring your own data** tile
+1. You can either [create an AI studio project](../../../ai-studio/how-to/create-projects.md) by clicking **Create project**, or continue directly by clicking the button on the **Focused on Azure OpenAI Service** tile.
- :::image type="content" source="../media/use-your-data/bring-your-data-card-new.png" alt-text="A screenshot of the Azure OpenAI Studio landing page." lightbox="../media/use-your-data/bring-your-data-card-new.png":::
+ :::image type="content" source="../media/use-your-data/ai-studio-homepage.png" alt-text="A screenshot of the Azure AI Studio landing page." lightbox="../media/use-your-data/ai-studio-homepage.png":::
+
+1. Select **Chat** under **Playgrounds** in the left navigation menu, and select your model deployment.
1. In the **Chat playground**, Select **Add your data** and then **Add a data source**
- :::image type="content" source="../media/use-your-data/chat-playground.png" alt-text="A screenshot of the chat playground in OpenAI Studio." lightbox="../media/use-your-data/chat-playground.png":::
+ :::image type="content" source="../media/use-your-data/chat-playground.png" alt-text="A screenshot of the chat playground in AI Studio." lightbox="../media/use-your-data/chat-playground.png":::
1. In the pane that appears, select **Upload files (preview)** under **Select data source**. Azure OpenAI needs both a storage resource and a search resource to access and index your data.
Summary
{
"modification_type": "minor update",
"modification_title": "データスタジオ接続手順の更新"
}
Explanation
この変更は、Azure OpenAI にデータスタジオを接続する手順に関するドキュメントを更新したもので、全体で12の変更が行われています。主に手順の明確化と最新の情報の反映が目的です。
具体的な修正内容は以下の通りです:
日付の更新: 文書の日付が2024年2月15日から2024年11月6日に変更され、最新の情報が反映されています。
Azure Studioの名称変更:「Azure OpenAI Studio」から「Azure AI Studio」に名称変更され、最新の製品名称が使用されています。
手順の明確化: 「Bring your own data」タイルを選択する手順が、「AIスタジオプロジェクトを作成する」オプションを含むよう修正されました。この変更により、ユーザーがプロジェクトを作成する方法を明確に理解できるようになります。
画像の更新: スクリーンショットが最新のAzure AI Studioのホームページを示すものに変更され、視覚的な情報も最新のものになりました。
追加手順の挿入: 左側のナビゲーションメニューで「Playgrounds」の下にある「Chat」を選択する手順が追加され、ユーザーがデータを追加するプロセスを理解しやすくしています。
これらの変更により、ドキュメントは最新の機能とインターフェースに対応し、ユーザーが必要な手順を明確に理解できるようになります。全体として、使用者の利便性と操作性を向上させることが目指されています。
articles/ai-services/openai/includes/fine-tune-models.md
Diff
@@ -23,7 +23,7 @@ manager: nitinme
| `gpt-35-turbo` (1106) | East US2 <br> North Central US <br> Sweden Central <br> Switzerland West | Input: 16,385<br> Output: 4,096 | Sep 2021|
| `gpt-35-turbo` (0125) | East US2 <br> North Central US <br> Sweden Central <br> Switzerland West | 16,385 | Sep 2021 |
| `gpt-4` (0613) <sup>**1**</sup> | North Central US <br> Sweden Central | 8192 | Sep 2021 |
-| `gpt-4o-mini` <sup>**1**</sup> (2024-07-18) | North Central US <br> Sweden Central | Input: 128,000 <br> Output: 16,384 <br> Training example context length: 64,536 | Oct 2023 |
-| `gpt-4o` <sup>**1**</sup> (2024-08-06) | East US2 <br> North Central US <br> Sweden Central | Input: 128,000 <br> Output: 16,384 <br> Training example context length: 64,536 | Oct 2023 |
+| `gpt-4o-mini` (2024-07-18) | North Central US <br> Sweden Central | Input: 128,000 <br> Output: 16,384 <br> Training example context length: 64,536 | Oct 2023 |
+| `gpt-4o` (2024-08-06) | East US2 <br> North Central US <br> Sweden Central | Input: 128,000 <br> Output: 16,384 <br> Training example context length: 64,536 | Oct 2023 |
**<sup>1</sup>** GPT-4 is currently in public preview.
Summary
{
"modification_type": "minor update",
"modification_title": "モデル情報の更新"
}
Explanation
この変更は、ファインチューニングモデルに関するドキュメントを更新したもので、全体で4つの変更が行われています。主にモデルのバージョンに関する情報の明確化が目的です。
具体的な修正内容は以下の通りです:
表の形式の変更: 表内のモデル情報において、gpt-4o-mini
と gpt-4o
の情報から注釈(1)が削除され、情報がよりシンプルになりました。
記述の効率化: モデル情報の記載方式が簡潔に整理され、視覚的に理解しやすくなっています。これにより、ユーザーはモデルの詳細を迅速に把握できるようになります。
公開プレビューの更新: 最後の注記において、GPT-4が現在公開プレビュー中であることが強調されていますが、注釈はそのままの形式で維持されています。
これらの修正によって、ドキュメントは最新のモデル情報とその特性に合わせて整理され、利用者が必要とする情報にアクセスしやすくなっています。全体として、正確性と明瞭性の向上を目指した更新といえます。
articles/ai-services/openai/includes/fine-tune.md
Diff
@@ -22,4 +22,4 @@ keywords: ChatGPT
> As described in [Azure OpenAI Service pricing](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/),
> each customized (fine-tuned) model that's deployed incurs an hourly hosting cost regardless of whether completions
> or chat completions calls are being made to the model. To learn more about planning and managing costs with Azure OpenAI,
-> refer to the guidance in [Plan to manage costs for Azure OpenAI Service](../how-to/manage-costs.md#base-series-and-codex-series-fine-tuned-models).
\ No newline at end of file
+> refer to the guidance in [Plan to manage costs for Azure OpenAI Service](../how-to/manage-costs.md#fine-tuned-models).
\ No newline at end of file
Summary
{
"modification_type": "minor update",
"modification_title": "コスト管理ガイドへのリンクの更新"
}
Explanation
この変更は、ファインチューニングモデルに関するドキュメント内のコスト管理のリファレンスを更新したもので、全体で2つの変更が行われています。主に、リンク先のセクションに関する表示を修正し、情報の正確性を向上させることが目的です。
具体的な修正内容は以下の通りです:
- リンクの修正: Azure OpenAI サービスのコスト管理に関するガイダンスへのリンクが更新され、詳細なセクションに基づいて正確な情報が反映されています。具体的には、以下の変更が行われています。
- 変更前:
#base-series-and-codex-series-fine-tuned-models
- 変更後:
#fine-tuned-models
- 文書の整頓: リンクが修正されることにより、読者がより適切な情報にアクセスできるようになり、ガイダンスの精度が向上しました。この変更により、関連知識をより効果的に得ることが可能になります。
この小さな更新によって、ユーザーはファインチューニングモデルに関連するコスト管理についての最新情報に直接アクセスすることができるため、導入や運用の際に役立つ内容が提供されています。
articles/ai-services/openai/includes/fine-tuning-openai-in-ai-studio.md
Diff
@@ -80,7 +80,7 @@ If you would like a step-by-step walk-through of fine-tuning a `gpt-35-turbo-061
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
```
-## Multi-turn chat file format
+### Multi-turn chat file format
Multiple turns of a conversation in a single line of your jsonl training file is also supported. To skip fine-tuning on specific assistant messages add the optional `weight` key value pair. Currently `weight` can be set to 0 or 1.
@@ -90,6 +90,12 @@ Multiple turns of a conversation in a single line of your jsonl training file is
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}
```
+### Chat completions with vision
+
+```json
+{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
+```
+
In addition to the JSONL format, training and validation data files must be encoded in UTF-8 and include a byte-order mark (BOM). The file must be less than 512 MB in size.
### Create your training and validation datasets
Summary
{
"modification_type": "minor update",
"modification_title": "マルチターンチャットとビジョン対応の追加"
}
Explanation
この変更は、OpenAIのファインチューニングに関するドキュメントを更新し、マルチターンチャットファイル形式と新しいチャット完了機能に関する情報を追加したものです。全体で8つの変更が行われています。
具体的な修正点は以下の通りです:
見出しの変更: 「Multi-turn chat file format」というタイトルが「###」の形式に変更され、セクションの重要性を強調しました。
マルチターンチャット形式の説明: JSONL形式のファイルで複数の会話を単一行でサポートすることについての詳しい説明が維持されています。また、オプションとしてweight
キーを使用して特定のアシスタントメッセージのファインチューニングをスキップする方法が説明されています。
新しいセクションの追加: 「Chat completions with vision」のセクションが新たに追加され、画像を使用したチャットの例が提供されています。この新しい機能は、視覚的な情報をチャットコンテキストに統合できることを示しています。
UTF-8エンコーディングの注意点: トレーニングおよび検証データファイルに関する追加情報として、UTF-8エンコーディングとバイトオーダーマーク(BOM)の必須要件が強調されています。
これらの更新により、ユーザーはファインチューニングの手法に関する最新情報をより効率的に得ることができ、特にマルチターンの会話や視覚情報の扱いについての理解が深まります。如何にして新機能を活用できるかが具体的に示されており、利用者にとって有益な内容となっています。
articles/ai-services/openai/includes/fine-tuning-python.md
Diff
@@ -86,11 +86,17 @@ Multiple turns of a conversation in a single line of your jsonl training file is
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}
```
+### Chat completions with vision
+
+```json
+{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
+```
+
In addition to the JSONL format, training and validation data files must be encoded in UTF-8 and include a byte-order mark (BOM). The file must be less than 512 MB in size.
### Create your training and validation datasets
-The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number are not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
+The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number is not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
In general, doubling the dataset size can lead to a linear increase in model quality. But keep in mind, low quality examples can negatively impact performance. If you train the model on a large amount of internal data, without first pruning the dataset for only the highest quality examples you could end up with a model that performs much worse than expected.
@@ -110,7 +116,7 @@ In addition to the JSONL format, training and validation data files must be enco
Designing your prompts and completions for fine-tuning is different from designing your prompts for use with any of [our GPT-3 base models](../concepts/legacy-models.md#gpt-3-models). Prompts for completion calls often use either detailed instructions or few-shot learning techniques, and consist of multiple examples. For fine-tuning, each training example should consist of a single input prompt and its desired completion output. You don't need to give detailed instructions or multiple completion examples for the same prompt.
-The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number are not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
+The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number is not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
In general, doubling the dataset size can lead to a linear increase in model quality. But keep in mind, low quality examples can negatively impact performance. If you train the model on a large amount of internal data, without first pruning the dataset for only the highest quality examples you could end up with a model that performs much worse than expected.
Summary
{
"modification_type": "minor update",
"modification_title": "チャット完了機能の追加とデータ品質に関する注意"
}
Explanation
この変更は、ファインチューニングに関連するPythonドキュメントを更新し、特にチャット完了機能の新しいセクションを追加し、トレーニングデータの品質に関する注意事項を強調するものです。全体で10の変更が加えられています。
具体的な修正内容は以下の通りです:
「Chat completions with vision」の追加: 新しい機能として、視覚情報を含むチャット完了の例が追加されました。このセクションでは、ユーザーが与えた画像に基づいてアシスタントが応答する例が示されています。
データファイルの条件: JSONL形式に加え、トレーニングおよび検証データファイルがUTF-8エンコーディングである必要があり、バイトオーダーマーク(BOM)を含める必要があることが強調されています。また、ファイルサイズが512 MB未満であることも求められています。
トレーニング例の重要性: トレーニングデータの量がモデルの質に与える影響についての記述が強調されています。少なくとも10のトレーニング例が必要であり、数が少ないとモデル応答に影響を与えないことが明記されています。質の高い例を多数提供することが成功の鍵であるとの指摘があります。
データセットサイズの増加によるモデル品質向上: データセットサイズを倍増させると、モデルの品質が線形で向上する可能性があるものの、低品質の例を多く含むとパフォーマンスが悪化する可能性があるという警告が含まれています。
これらの更新によって、ユーザーは新しい機能を理解できるだけでなく、高品質のトレーニングデータを用意することの重要性についても学ぶことができます。ファインチューニングを通じて得られるモデルの性能を最適化するための実践的なアドバイスが提供されています。
articles/ai-services/openai/includes/fine-tuning-rest.md
Diff
@@ -85,12 +85,18 @@ Multiple turns of a conversation in a single line of your jsonl training file is
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}
```
+### Chat completions with vision
+
+```json
+{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
+```
+
In addition to the JSONL format, training and validation data files must be encoded in UTF-8 and include a byte-order mark (BOM). The file must be less than 512 MB in size.
### Create your training and validation datasets
-The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number are not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
+The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number is not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
In general, doubling the dataset size can lead to a linear increase in model quality. But keep in mind, low quality examples can negatively impact performance. If you train the model on a large amount of internal data without first pruning the dataset for only the highest quality examples, you could end up with a model that performs much worse than expected.
@@ -110,7 +116,7 @@ In addition to the JSONL format, training and validation data files must be enco
Designing your prompts and completions for fine-tuning is different from designing your prompts for use with any of [our GPT-3 base models](../concepts/legacy-models.md#gpt-3-models). Prompts for completion calls often use either detailed instructions or few-shot learning techniques, and consist of multiple examples. For fine-tuning, each training example should consist of a single input prompt and its desired completion output. You don't need to give detailed instructions or multiple completion examples for the same prompt.
-The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number are not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
+The more training examples you have, the better. Fine tuning jobs will not proceed without at least 10 training examples, but such a small number is not enough to noticeably influence model responses. It is best practice to provide hundreds, if not thousands, of training examples to be successful.
In general, doubling the dataset size can lead to a linear increase in model quality. But keep in mind, low quality examples can negatively impact performance. If you train the model on a large amount of internal data without first pruning the dataset for only the highest quality examples, you could end up with a model that performs much worse than expected.
Summary
{
"modification_type": "minor update",
"modification_title": "チャット完了機能の追加とデータ品質に関する情報"
}
Explanation
この変更は、REST APIによるファインチューニングに関するドキュメントを更新し、チャット完了機能に関する新しいセクションを追加し、トレーニングデータの品質に関する注意事項を強化するものです。全体で10の変更が加えられています。
具体的には以下の内容が修正されています:
「Chat completions with vision」の追加: 新しいセクションとして、視覚情報を使用したチャット完了の例が追加されました。ユーザーが画像を質問として入力し、アシスタントがその画像に基づいて応答する具体例が示されています。
データファイルの必須条件: トレーニングおよび検証データファイルはUTF-8エンコーディングである必要があり、バイトオーダーマーク(BOM)を含む必要があることが強調されています。また、ファイルサイズは512 MB未満でなければなりません。
トレーニング例の重要性: トレーニングデータの数がモデルのパフォーマンスに与える影響について、特に10のトレーニング例では不十分であり、数百または数千の高品質な例を提供することが成功に必要であるとの説明が強調されています。
データセットサイズの増加の効果: データセットのサイズを倍増させることで、モデルの品質が線形的に向上する可能性がある一方で、低品質のトレーニングデータがモデルのパフォーマンスを悪化させる可能性があると警告しています。品質の高いサンプルを選別して使用することの重要性が再確認されています。
これらの更新により、ユーザーは新機能を利用するための具体的な手助けを得られるとともに、ファインチューニングプロセスにおけるデータの重要性を理解することができるようになっています。このドキュメントの内容は、より良いモデルを構築するための実践的な指針を提供しています。
articles/ai-services/openai/includes/fine-tuning-studio.md
Diff
@@ -76,7 +76,7 @@ If you would like a step-by-step walk-through of fine-tuning a `gpt-4o-mini` (20
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
```
-## Multi-turn chat file format Azure OpenAI
+### Multi-turn chat file format Azure OpenAI
Multiple turns of a conversation in a single line of your jsonl training file is also supported. To skip fine-tuning on specific assistant messages add the optional `weight` key value pair. Currently `weight` can be set to 0 or 1.
@@ -86,6 +86,12 @@ Multiple turns of a conversation in a single line of your jsonl training file is
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}
```
+### Chat completions with vision
+
+```json
+{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
+```
+
In addition to the JSONL format, training and validation data files must be encoded in UTF-8 and include a byte-order mark (BOM). The file must be less than 512 MB in size.
### Create your training and validation datasets
Summary
{
"modification_type": "minor update",
"modification_title": "チャット完了機能の追加とデータファイルの要件"
}
Explanation
この変更は、ファインチューニングスタジオに関するドキュメントを更新し、特にチャット完了機能の新しいセクションを追加し、データファイルに関する要件を明確にしたものです。全体で8の変更が加えられています。
具体的な修正内容は以下の通りです:
見出しの変更: 「Multi-turn chat file format Azure OpenAI」の見出しが「##」から「###」に変更され、ドキュメント内での階層が調整されました。
チャット完了機能の追加: 新しいセクション「Chat completions with vision」が追加され、視覚情報を使用したチャット完了の具体的な例が示されています。ユーザーが画像を質問として提供し、その画像についてアシスタントが応答する構造のJSON例が追加されました。
データファイルの必須条件: トレーニングおよび検証データファイルはUTF-8エンコーディングであり、バイトオーダーマーク(BOM)を含め、512 MB未満でなければならないことが強調されています。
JSONL形式でのマルチターンチャット: 1行のJSONLトレーニングファイル内での複数の会話ターンのサポートについても触れられており、特定のアシスタントメッセージのファインチューニングをスキップするために「weight」キーの値を設定するオプションが説明されています。
これらの更新により、ユーザーは新しいチャット完了機能を効果的に利用でき、視覚データを含むトレーニングデータの重要性や必要な要件についても理解を深めることができます。ファインチューニングプロセスの改善に資するための実用的な情報が提供されています。
articles/ai-services/openai/includes/gpt-v-studio.md
Diff
@@ -1,7 +1,7 @@
---
title: 'Quickstart: Use GPT-4 Turbo with Vision on your images and videos with the Azure OpenAI Service'
titleSuffix: Azure OpenAI
-description: Use this article to get started using Azure OpenAI Studio to deploy and use the GPT-4 Turbo with Vision model.
+description: Use this article to get started using Azure AI Studio to deploy and use the GPT-4 Turbo with Vision model.
services: cognitive-services
manager: nitinme
ms.service: azure-ai-openai
@@ -10,7 +10,7 @@ ms.custom: references_regions
ms.date: 10/03/2024
---
-Start exploring GPT-4 Turbo with Vision capabilities with a no-code approach through Azure OpenAI Studio.
+Start exploring GPT-4 Turbo with Vision capabilities with a no-code approach through Azure AI Studio.
## Prerequisites
@@ -20,9 +20,9 @@ Start exploring GPT-4 Turbo with Vision capabilities with a no-code approach thr
> [!NOTE]
> It is currently not supported to turn off content filtering for the GPT-4 Turbo with Vision model.
-## Go to Azure OpenAI Studio
+## Go to Azure AI Studio
-Browse to [Azure OpenAI Studio](https://oai.azure.com/) and sign in with the credentials associated with your Azure OpenAI resource. During or after the sign-in workflow, select the appropriate directory, Azure subscription, and Azure OpenAI resource.
+Browse to [Azure AI Studio](https://ai.azure.com/) and sign in with the credentials associated with your Azure OpenAI resource. During or after the sign-in workflow, select the appropriate directory, Azure subscription, and Azure OpenAI resource.
Under **Management** select **Deployments** and **Create** a GPT-4 Turbo with Vision deployment by selecting model name: **"gpt-4"** and model version **"vision-preview"**. For more information about model deployment, see the [resource deployment guide](/azure/ai-services/openai/how-to/create-resource).
@@ -50,7 +50,7 @@ In this chat session, you're instructing the assistant to aid in understanding i
1. In the **Chat session** pane, enter a text prompt like "Describe this image," and upload an image with the attachment button. You can use a different text prompt for your use case. Then select **Send**.
1. Observe the output provided. Consider asking follow-up questions related to the analysis of your image to learn more.
-:::image type="content" source="../media/quickstarts/studio-vision.png" lightbox="../media/quickstarts/studio-vision.png" alt-text="Screenshot of OpenAI studio chat playground.":::
+:::image type="content" source="../media/quickstarts/studio-vision.png" lightbox="../media/quickstarts/studio-vision.png" alt-text="Screenshot of AI studio chat playground.":::
## Clean up resources
Summary
{
"modification_type": "minor update",
"modification_title": "Azure AI Studioの名称変更と説明の調整"
}
Explanation
この変更は、Azure OpenAI Studioに関するドキュメントを更新し、名称を「Azure AI Studio」に統一することを目的とした内容が含まれています。全体で10の変更が加えられています。
具体的な修正内容は以下の通りです:
タイトルの調整: ドキュメントのタイトル内にある「OpenAI」が「AI」に変更され、タイトルが「Quickstart: Use GPT-4 Turbo with Vision on your images and videos with the Azure AI Service」となりました。
説明の変更: 説明文にも同様に「Azure OpenAI Studio」が「Azure AI Studio」に修正されました。
本文内の用語統一: 文中で「Azure OpenAI Studio」という表現が登場しますが、これも「Azure AI Studio」に変更されて統一されました。
注意書きの維持: GPT-4 Turbo with Visionモデルのコンテンツフィルタリングを無効にすることができない旨の注意書きはそのまま維持されています。
リンクの更新: Azureのスタジオへのリンクも「Azure OpenAI Studio」から「Azure AI Studio」に更新されています。
イメージの説明修正: スクリーンショットのaltテキストも「OpenAI studio chat playground」から「AI studio chat playground」に変更されています。
これらの変更によって、ドキュメント全体が新しい名称に適合し、利用者がAzure AI Studioにアクセスする際の混乱が軽減され、必要な情報が一貫して提供されるようになります。また、リソースへのリンクやイメージの説明も適切に調整されており、ユーザーにとっての利便性が向上しています。
articles/ai-services/openai/includes/language-overview/dotnet.md
Diff
@@ -0,0 +1,298 @@
+---
+title: Azure OpenAI C# support
+titleSuffix: Azure OpenAI Service
+description: Azure OpenAI C# support
+manager: nitinme
+ms.service: azure-ai-openai
+ms.topic: include
+ms.date: 11/18/2024
+---
+
+
+The Azure OpenAI client library for .NET is a companion to the [official OpenAI client library for .NET](https://github.com/openai/openai-dotnet). The Azure OpenAI library configures a client for use with Azure OpenAI and provides additional strongly typed extension support for request and response models specific to Azure OpenAI scenarios.
+
+### Stable release:
+
+[Source code](https://github.com/Azure/azure-sdk-for-net/blob/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/src) | [Package (NuGet)](https://www.nuget.org/packages/Azure.AI.OpenAI) | [Package reference documentation](/dotnet/api/overview/azure/ai.openai-readme?view=azure-dotnet&preserve-view=true) [API reference documentation](../../reference.md) | [Samples](https://github.com/Azure/azure-sdk-for-net/blob/Azure.AI.OpenAI_2.0.0/sdk/openai/Azure.AI.OpenAI/tests/Samples)
+
+### Preview release:
+
+The preview release will have access to the latest features.
+
+[Source code](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.1.0-beta.2/sdk/openai/Azure.AI.OpenAI/src) | [Package (NuGet)](https://www.nuget.org/packages/Azure.AI.OpenAI/2.1.0-beta.2) | [API reference documentation](../../reference.md) | [Package reference documentation](/dotnet/api/overview/azure/ai.openai-readme?view=azure-dotnet-preview&preserve-view=true) [Samples](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.1.0-beta.2/sdk/openai/Azure.AI.OpenAI/tests/Samples)
+
+
+## Azure OpenAI API version support
+
+Unlike the Azure OpenAI client libraries for Python and JavaScript, the Azure OpenAI .NET package is limited to targeting a specific subset of the Azure OpenAI API versions. Generally each Azure OpenAI .NET package will unlock access to newer Azure OpenAI API release features. Having access to the latest API versions impacts feature availability.
+
+Version selection is controlled by the [`AzureOpenAIClientOptions.ServiceVersion`](/dotnet/api/azure.ai.openai.azureopenaiclientoptions.serviceversion?view=azure-dotnet&preserve-view=true) enum.
+
+The [stable release](/dotnet/api/azure.ai.openai.azureopenaiclientoptions.serviceversion?view=azure-dotnet&preserve-view=true) currently targets:
+
+`2024-06-01`
+
+The [preview release](/dotnet/api/azure.ai.openai.azureopenaiclientoptions.serviceversion?view=azure-dotnet-preview&preserve-view=true) can currently target:
+
+- `2024-06-01`
+- `2024-08-01-preview`
+- `2024-09-01-preview`
+- `2024-10-01-preview`
+
+## Installation
+
+```dotnetcli
+dotnet add package Azure.AI.OpenAI --prerelease
+```
+
+The `Azure.AI.OpenAI` package builds on the [official OpenAI package](https://www.nuget.org/packages/OpenAI), which is included as a dependency.
+
+## Authentication
+
+To interact with Azure OpenAI or OpenAI, create an instance of [`AzureOpenAIClient`](/dotnet/api/azure.ai.openai.azureopenaiclient?view=azure-dotnet-preview&preserve-view=true) with one of the following approaches:
+
+# [Microsoft Entra ID](#tab/dotnet-secure)
+
+A secure, keyless authentication approach is to use Microsoft Entra ID (formerly Azure Active Directory) via the [Azure Identity library](/dotnet/api/overview/azure/identity-readme?view=azure-dotnet&preserve-view=true ). To use the library:
+
+```dotnetcli
+dotnet add package Azure.Identity
+```
+
+Use the desired credential type from the library. For example, [`DefaultAzureCredential`](/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet&preserve-view=true):
+
+```csharp
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new DefaultAzureCredential());
+ChatClient chatClient = azureClient.GetChatClient("my-gpt-4o-mini-deployment");
+```
+
+# [API Key](#tab/dotnet-key)
+
+```csharp
+string keyFromEnvironment = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
+
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new ApiKeyCredential(keyFromEnvironment));
+ChatClient chatClient = azureClient.GetChatClient("my-gpt-35-turbo-deployment");
+```
+
+---
+
+## Audio
+
+[`AzureOpenAIClient.GetAudioClient`](/dotnet/api/azure.ai.openai.azureopenaiclient.getaudioclient?view=azure-dotnet-preview&preserve-view=true )
+
+### Transcription
+
+```csharp
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new DefaultAzureCredential());
+
+AudioClient client = azureClient.GetAudioClient("whisper");
+
+string audioFilePath = Path.Combine("Assets", "speech.mp3");
+
+AudioTranscriptionOptions options = new()
+{
+ ResponseFormat = AudioTranscriptionFormat.Verbose,
+ TimestampGranularities = AudioTimestampGranularities.Word | AudioTimestampGranularities.Segment,
+};
+
+AudioTranscription transcription = client.TranscribeAudio(audioFilePath, options);
+
+Console.WriteLine("Transcription:");
+Console.WriteLine($"{transcription.Text}");
+
+Console.WriteLine();
+Console.WriteLine($"Words:");
+foreach (TranscribedWord word in transcription.Words)
+{
+ Console.WriteLine($" {word.Word,15} : {word.StartTime.TotalMilliseconds,5:0} - {word.EndTime.TotalMilliseconds,5:0}");
+}
+
+Console.WriteLine();
+Console.WriteLine($"Segments:");
+foreach (TranscribedSegment segment in transcription.Segments)
+{
+ Console.WriteLine($" {segment.Text,90} : {segment.StartTime.TotalMilliseconds,5:0} - {segment.EndTime.TotalMilliseconds,5:0}");
+}
+```
+
+### Text to Speech (TTS)
+
+```csharp
+using Azure.AI.OpenAI;
+using Azure.Identity;
+using OpenAI.Audio;
+
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new DefaultAzureCredential());
+
+AudioClient client = azureClient.GetAudioClient("tts-hd"); //Replace with your Azure OpenAI model deployment
+
+string input = "Testing, testing, 1, 2, 3";
+
+BinaryData speech = client.GenerateSpeech(input, GeneratedSpeechVoice.Alloy);
+
+using FileStream stream = File.OpenWrite($"{Guid.NewGuid()}.mp3");
+speech.ToStream().CopyTo(stream);
+```
+
+## Chat
+
+[`AzureOpenAIClient.GetChatClient`](/dotnet/api/azure.ai.openai.azureopenaiclient.getchatclient?view=azure-dotnet-preview&preserve-view=true)
+
+```csharp
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new DefaultAzureCredential());
+ChatClient chatClient = azureClient.GetChatClient("my-gpt-4o-deployment");
+
+ChatCompletion completion = chatClient.CompleteChat(
+ [
+ // System messages represent instructions or other guidance about how the assistant should behave
+ new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
+ // User messages represent user input, whether historical or the most recent input
+ new UserChatMessage("Hi, can you help me?"),
+ // Assistant messages in a request represent conversation history for responses
+ new AssistantChatMessage("Arrr! Of course, me hearty! What can I do for ye?"),
+ new UserChatMessage("What's the best way to train a parrot?"),
+ ]);
+
+Console.WriteLine($"{completion.Role}: {completion.Content[0].Text}");
+```
+
+### Stream chat messages
+
+Streaming chat completions use the `CompleteChatStreaming` and `CompleteChatStreamingAsync` method, which return a `ResultCollection<StreamingChatCompletionUpdate>` or `AsyncCollectionResult<StreamingChatCompletionUpdate>` instead of a `ClientResult<ChatCompletion>`.
+
+These result collections can be iterated over using foreach or await foreach, with each update arriving as new data is available from the streamed response.
+
+```csharp
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new DefaultAzureCredential());
+ChatClient chatClient = azureClient.GetChatClient("my-gpt-4o-deployment");
+
+CollectionResult<StreamingChatCompletionUpdate> completionUpdates = chatClient.CompleteChatStreaming(
+ [
+ new SystemChatMessage("You are a helpful assistant that talks like a pirate."),
+ new UserChatMessage("Hi, can you help me?"),
+ new AssistantChatMessage("Arrr! Of course, me hearty! What can I do for ye?"),
+ new UserChatMessage("What's the best way to train a parrot?"),
+ ]);
+
+foreach (StreamingChatCompletionUpdate completionUpdate in completionUpdates)
+{
+ foreach (ChatMessageContentPart contentPart in completionUpdate.ContentUpdate)
+ {
+ Console.Write(contentPart.Text);
+ }
+}
+```
+
+## Embeddings
+
+[`AzureOpenAIClient.GetEmbeddingClient`](/dotnet/api/azure.ai.openai.azureopenaiclient.getembeddingclient?view=azure-dotnet-preview&preserve-view=true)
+
+```csharp
+using Azure.AI.OpenAI;
+using Azure.Identity;
+using OpenAI.Embeddings;
+
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new DefaultAzureCredential());
+
+EmbeddingClient client = azureClient.GetEmbeddingClient("text-embedding-3-large"); //Replace with your model deployment name
+
+string description = "This is a test embedding";
+
+OpenAIEmbedding embedding = client.GenerateEmbedding(description);
+ReadOnlyMemory<float> vector = embedding.ToFloats();
+
+Console.WriteLine(string.Join(", ", vector.ToArray()));
+```
+
+## Fine-tuning
+
+Currently not supported with the Azure OpenAI .NET packages.
+
+## Batch
+
+Currently not supported with the Azure OpenAI .NET packages.
+
+## Images
+
+[`AzureOpenAIClient.GetImageClient`](/dotnet/api/azure.ai.openai.azureopenaiclient.getimageclient?view=azure-dotnet-preview&preserve-view=true)
+
+```csharp
+using Azure.AI.OpenAI;
+using Azure.Identity;
+using OpenAI.Images;
+
+AzureOpenAIClient azureClient = new(
+ new Uri("https://your-azure-openai-resource.com"),
+ new DefaultAzureCredential());
+
+ImageClient client = azureClient.GetImageClient("dall-e-3"); // replace with your model deployment name.
+
+string prompt = "A rabbit eating pancakes.";
+
+ImageGenerationOptions options = new()
+{
+ Quality = GeneratedImageQuality.High,
+ Size = GeneratedImageSize.W1792xH1024,
+ Style = GeneratedImageStyle.Vivid,
+ ResponseFormat = GeneratedImageFormat.Bytes
+};
+
+GeneratedImage image = client.GenerateImage(prompt, options);
+BinaryData bytes = image.ImageBytes;
+
+using FileStream stream = File.OpenWrite($"{Guid.NewGuid()}.png");
+bytes.ToStream().CopyTo(stream);
+
+```
+
+- [C# DALL-E quickstart guide](/azure/ai-services/openai/dall-e-quickstart?tabs=dalle3%2Ccommand-line%2Cjavascript-keyless%2Ctypescript-keyless&pivots=programming-language-csharp)
+
+
+## Completions (legacy)
+
+Not supported with the Azure OpenAI .NET packages.
+
+
+## Error handling
+
+### Error codes
+
+| Status Code | Error Type |
+|----|---|
+| 400 | `Bad Request Error` |
+| 401 | `Authentication Error` |
+| 403 | `Permission Denied Error` |
+| 404 | `Not Found Error` |
+| 422 | `Unprocessable Entity Error` |
+| 429 | `Rate Limit Error` |
+| 500 | `Internal Server Error` |
+| 503 | `Service Unavailable` |
+| 504 | `Gateway Timeout` |
+
+### Retries
+
+The client classes will automatically retry the following errors up to three additional times using exponential backoff:
+
+- 408 Request Timeout
+- 429 Too Many Requests
+- 500 Internal Server Error
+- 502 Bad Gateway
+- 503 Service Unavailable
+- 504 Gateway Timeout
+
+
Summary
{
"modification_type": "new feature",
"modification_title": "Azure OpenAIのC#サポートを追加"
}
Explanation
この変更は、Azure OpenAIサービス向けのC#サポートに関する新しいドキュメントを追加したものであり、合計298行の新しい内容が含まれています。この新機能は、.NET開発者がAzure OpenAIを利用する際の参考になる情報を提供します。
具体的な内容は以下の通りです:
概要: Azure OpenAIのクライアントライブラリに関する説明があり、このライブラリは公式のOpenAIクライアントライブラリを基にしており、Azure OpenAI専用の要求および応答モデルのサポートを強化しています。
安定版およびプレビュー版のリンク: 安定版およびプレビュー版に関する情報が提供されており、ソースコード、パッケージ、APIリファレンスドキュメント、およびサンプルへのリンクが含まれています。
APIバージョンのサポート: このセクションでは、Azure OpenAI .NETパッケージが特定のAPIバージョンとの互換性を持つことが説明されており、特定のリリース機能へのアクセスがどのように影響するかが説明されています。
インストール手順: Azure.AI.OpenAI
パッケージのインストール方法が具体的に示されています。
認証の方法: Microsoft Entra IDやAPIキーを使用してAzure OpenAIとインタラクトする方法に関する詳細が提供されています。
音声およびチャット機能: 音声クライアントやチャットクライアントの使用方法に関する具体的なコード例が含まれており、これによりユーザーが音声認識や対話機能を実装できるようにサポートされています。
エラーハンドリング: エラーコードと自動リトライの戦略についての説明があり、これにより開発者はエラーハンドリングをより効果的に行うことができます。
この新しいドキュメントは、C#開発者に対してAzure OpenAIサービスの機能を活用するための広範なガイドを提供し、具体的なコード例を通じて実装を容易にしています。開発者はAzure OpenAIの力を最大限に引き出すための情報を手に入れることができます。
articles/ai-services/openai/includes/language-overview/go.md
Diff
@@ -0,0 +1,683 @@
+---
+title: Azure OpenAI Go support
+titleSuffix: Azure OpenAI Service
+description: Azure OpenAI Go support
+manager: nitinme
+ms.service: azure-ai-openai
+ms.topic: include
+ms.date: 11/18/2024
+---
+
+[Source code](https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/ai/azopenai) | [Package (pkg.go.dev)](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai) | [API reference documentation](../../reference.md) | [Package reference documentation](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai) [Samples](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai#pkg-examples)
+
+
+## Azure OpenAI API version support
+
+Unlike the Azure OpenAI client libraries for Python and JavaScript, the Azure OpenAI Go library is targeted to a specific Azure OpenAI API version. Having access to the latest API versions impacts feature availability.
+
+Current Azure OpenAI API version target: `2024-10-01-preview`
+
+This is defined in the [**custom_client.go**](https://github.com/Azure/azure-sdk-for-go/blob/9ebef43f64796118ae206a42821d9f541a231daa/sdk/ai/azopenai/custom_client.go#L37) file.
+
+## Installation
+
+Install the `azopenai` and `azidentity` modules with go get:
+
+```
+go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai
+
+# optional
+go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
+```
+
+## Authentication
+
+# [Microsoft Entra ID](#tab/secure)
+
+The [azidentity](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity) module is used for Azure Active Directory authentication with Azure OpenAI.
+
+```go
+package main
+
+import (
+ "log"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
+)
+
+func main() {
+ dac, err := azidentity.NewDefaultAzureCredential(nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ // NOTE: this constructor creates a client that connects to an Azure OpenAI endpoint.
+ // To connect to the public OpenAI endpoint, use azopenai.NewClientForOpenAI
+ client, err := azopenai.NewClient("https://<your-azure-openai-host>.openai.azure.com", dac, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ _ = client
+}
+```
+
+
+# [API Key](#tab/api-key)
+
+```go
+package main
+
+import (
+ "log"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+)
+
+func main() {
+ keyCredential := azcore.NewKeyCredential("<Azure-OpenAI-APIKey>")
+
+ // NOTE: this constructor creates a client that connects to an Azure OpenAI endpoint.
+ // To connect to the public OpenAI endpoint, use azopenai.NewClientForOpenAI
+ client, err := azopenai.NewClientWithKeyCredential("https://<your-azure-openai-host>.openai.azure.com", keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ _ = client
+}
+```
+
+---
+
+## Audio
+
+### Client.GenerateSpeechFromText
+
+```go
+ackage main
+
+import (
+ "context"
+ "fmt"
+ "io"
+ "log"
+ "os"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
+)
+
+func main() {
+ openAIKey := os.Getenv("OPENAI_API_KEY")
+
+ // Ex: "https://api.openai.com/v1"
+ openAIEndpoint := os.Getenv("OPENAI_ENDPOINT")
+
+ modelDeploymentID := "tts-1"
+
+ if openAIKey == "" || openAIEndpoint == "" || modelDeploymentID == "" {
+ fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
+ return
+ }
+
+ keyCredential := azcore.NewKeyCredential(openAIKey)
+
+ client, err := azopenai.NewClientForOpenAI(openAIEndpoint, keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ audioResp, err := client.GenerateSpeechFromText(context.Background(), azopenai.SpeechGenerationOptions{
+ Input: to.Ptr("i am a computer"),
+ Voice: to.Ptr(azopenai.SpeechVoiceAlloy),
+ ResponseFormat: to.Ptr(azopenai.SpeechGenerationResponseFormatFlac),
+ DeploymentName: to.Ptr("tts-1"),
+ }, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ defer audioResp.Body.Close()
+
+ audioBytes, err := io.ReadAll(audioResp.Body)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ fmt.Fprintf(os.Stderr, "Got %d bytes of FLAC audio\n", len(audioBytes))
+
+}
+
+```
+
+### Client.GetAudioTranscription
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "os"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
+)
+
+func main() {
+ azureOpenAIKey := os.Getenv("AOAI_WHISPER_API_KEY")
+
+ // Ex: "https://<your-azure-openai-host>.openai.azure.com"
+ azureOpenAIEndpoint := os.Getenv("AOAI_WHISPER_ENDPOINT")
+
+ modelDeploymentID := os.Getenv("AOAI_WHISPER_MODEL")
+
+ if azureOpenAIKey == "" || azureOpenAIEndpoint == "" || modelDeploymentID == "" {
+ fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
+ return
+ }
+
+ keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
+
+ client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ mp3Bytes, err := os.ReadFile("testdata/sampledata_audiofiles_myVoiceIsMyPassportVerifyMe01.mp3")
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ resp, err := client.GetAudioTranscription(context.TODO(), azopenai.AudioTranscriptionOptions{
+ File: mp3Bytes,
+
+ // this will return _just_ the translated text. Other formats are available, which return
+ // different or additional metadata. See [azopenai.AudioTranscriptionFormat] for more examples.
+ ResponseFormat: to.Ptr(azopenai.AudioTranscriptionFormatText),
+
+ DeploymentName: &modelDeploymentID,
+ }, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ fmt.Fprintf(os.Stderr, "Transcribed text: %s\n", *resp.Text)
+
+}
+```
+
+## Chat
+
+### Client.GetChatCompletions
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "os"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+)
+
+func main() {
+ azureOpenAIKey := os.Getenv("AOAI_CHAT_COMPLETIONS_API_KEY")
+ modelDeploymentID := os.Getenv("AOAI_CHAT_COMPLETIONS_MODEL")
+
+ // Ex: "https://<your-azure-openai-host>.openai.azure.com"
+ azureOpenAIEndpoint := os.Getenv("AOAI_CHAT_COMPLETIONS_ENDPOINT")
+
+ if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
+ fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
+ return
+ }
+
+ keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
+
+ // In Azure OpenAI you must deploy a model before you can use it in your client. For more information
+ // see here: https://learn.microsoft.com/azure/cognitive-services/openai/how-to/create-resource
+ client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ // This is a conversation in progress.
+ // NOTE: all messages, regardless of role, count against token usage for this API.
+ messages := []azopenai.ChatRequestMessageClassification{
+ // You set the tone and rules of the conversation with a prompt as the system role.
+ &azopenai.ChatRequestSystemMessage{Content: azopenai.NewChatRequestSystemMessageContent("You are a helpful assistant. You will talk like a pirate.")},
+
+ // The user asks a question
+ &azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("Can you help me?")},
+
+ // The reply would come back from the ChatGPT. You'd add it to the conversation so we can maintain context.
+ &azopenai.ChatRequestAssistantMessage{Content: azopenai.NewChatRequestAssistantMessageContent("Arrrr! Of course, me hearty! What can I do for ye?")},
+
+ // The user answers the question based on the latest reply.
+ &azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("What's the best way to train a parrot?")},
+
+ // from here you'd keep iterating, sending responses back from ChatGPT
+ }
+
+ gotReply := false
+
+ resp, err := client.GetChatCompletions(context.TODO(), azopenai.ChatCompletionsOptions{
+ // This is a conversation in progress.
+ // NOTE: all messages count against token usage for this API.
+ Messages: messages,
+ DeploymentName: &modelDeploymentID,
+ }, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ for _, choice := range resp.Choices {
+ gotReply = true
+
+ if choice.ContentFilterResults != nil {
+ fmt.Fprintf(os.Stderr, "Content filter results\n")
+
+ if choice.ContentFilterResults.Error != nil {
+ fmt.Fprintf(os.Stderr, " Error:%v\n", choice.ContentFilterResults.Error)
+ }
+
+ fmt.Fprintf(os.Stderr, " Hate: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Hate.Severity, *choice.ContentFilterResults.Hate.Filtered)
+ fmt.Fprintf(os.Stderr, " SelfHarm: sev: %v, filtered: %v\n", *choice.ContentFilterResults.SelfHarm.Severity, *choice.ContentFilterResults.SelfHarm.Filtered)
+ fmt.Fprintf(os.Stderr, " Sexual: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Sexual.Severity, *choice.ContentFilterResults.Sexual.Filtered)
+ fmt.Fprintf(os.Stderr, " Violence: sev: %v, filtered: %v\n", *choice.ContentFilterResults.Violence.Severity, *choice.ContentFilterResults.Violence.Filtered)
+ }
+
+ if choice.Message != nil && choice.Message.Content != nil {
+ fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.Message.Content)
+ }
+
+ if choice.FinishReason != nil {
+ // this choice's conversation is complete.
+ fmt.Fprintf(os.Stderr, "Finish reason[%d]: %s\n", *choice.Index, *choice.FinishReason)
+ }
+ }
+
+ if gotReply {
+ fmt.Fprintf(os.Stderr, "Got chat completions reply\n")
+ }
+
+}
+
+```
+
+### Client.GetChatCompletionsStream
+
+```go
+package main
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "io"
+ "log"
+ "os"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
+)
+
+func main() {
+ azureOpenAIKey := os.Getenv("AOAI_CHAT_COMPLETIONS_API_KEY")
+ modelDeploymentID := os.Getenv("AOAI_CHAT_COMPLETIONS_MODEL")
+
+ // Ex: "https://<your-azure-openai-host>.openai.azure.com"
+ azureOpenAIEndpoint := os.Getenv("AOAI_CHAT_COMPLETIONS_ENDPOINT")
+
+ if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
+ fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
+ return
+ }
+
+ keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
+
+ // In Azure OpenAI you must deploy a model before you can use it in your client. For more information
+ // see here: https://learn.microsoft.com/azure/cognitive-services/openai/how-to/create-resource
+ client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ // This is a conversation in progress.
+ // NOTE: all messages, regardless of role, count against token usage for this API.
+ messages := []azopenai.ChatRequestMessageClassification{
+ // You set the tone and rules of the conversation with a prompt as the system role.
+ &azopenai.ChatRequestSystemMessage{Content: azopenai.NewChatRequestSystemMessageContent("You are a helpful assistant. You will talk like a pirate and limit your responses to 20 words or less.")},
+
+ // The user asks a question
+ &azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("Can you help me?")},
+
+ // The reply would come back from the ChatGPT. You'd add it to the conversation so we can maintain context.
+ &azopenai.ChatRequestAssistantMessage{Content: azopenai.NewChatRequestAssistantMessageContent("Arrrr! Of course, me hearty! What can I do for ye?")},
+
+ // The user answers the question based on the latest reply.
+ &azopenai.ChatRequestUserMessage{Content: azopenai.NewChatRequestUserMessageContent("What's the best way to train a parrot?")},
+
+ // from here you'd keep iterating, sending responses back from ChatGPT
+ }
+
+ resp, err := client.GetChatCompletionsStream(context.TODO(), azopenai.ChatCompletionsStreamOptions{
+ // This is a conversation in progress.
+ // NOTE: all messages count against token usage for this API.
+ Messages: messages,
+ N: to.Ptr[int32](1),
+ DeploymentName: &modelDeploymentID,
+ }, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ defer resp.ChatCompletionsStream.Close()
+
+ gotReply := false
+
+ for {
+ chatCompletions, err := resp.ChatCompletionsStream.Read()
+
+ if errors.Is(err, io.EOF) {
+ break
+ }
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ for _, choice := range chatCompletions.Choices {
+ gotReply = true
+
+ text := ""
+
+ if choice.Delta.Content != nil {
+ text = *choice.Delta.Content
+ }
+
+ role := ""
+
+ if choice.Delta.Role != nil {
+ role = string(*choice.Delta.Role)
+ }
+
+ fmt.Fprintf(os.Stderr, "Content[%d], role %q: %q\n", *choice.Index, role, text)
+ }
+ }
+
+ if gotReply {
+ fmt.Fprintf(os.Stderr, "Got chat completions streaming reply\n")
+ }
+
+}
+```
+
+## Embeddings
+
+### Client.GetEmbeddings
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "os"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+)
+
+func main() {
+ azureOpenAIKey := os.Getenv("AOAI_EMBEDDINGS_API_KEY")
+ modelDeploymentID := os.Getenv("AOAI_EMBEDDINGS_MODEL")
+
+ // Ex: "https://<your-azure-openai-host>.openai.azure.com"
+ azureOpenAIEndpoint := os.Getenv("AOAI_EMBEDDINGS_ENDPOINT")
+
+ if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
+ fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
+ return
+ }
+
+ keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
+
+ // In Azure OpenAI you must deploy a model before you can use it in your client. For more information
+ // see here: https://learn.microsoft.com/azure/cognitive-services/openai/how-to/create-resource
+ client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ resp, err := client.GetEmbeddings(context.TODO(), azopenai.EmbeddingsOptions{
+ Input: []string{"Testing, testing, 1,2,3."},
+ DeploymentName: &modelDeploymentID,
+ }, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ for _, embed := range resp.Data {
+ // embed.Embedding contains the embeddings for this input index.
+ fmt.Fprintf(os.Stderr, "Got embeddings for input %d\n", *embed.Index)
+ }
+
+}
+```
+
+## Image Generation
+
+### Client.GetImageGenerations
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "net/http"
+ "os"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
+)
+
+func main() {
+ azureOpenAIKey := os.Getenv("AOAI_DALLE_API_KEY")
+
+ // Ex: "https://<your-azure-openai-host>.openai.azure.com"
+ azureOpenAIEndpoint := os.Getenv("AOAI_DALLE_ENDPOINT")
+
+ azureDeployment := os.Getenv("AOAI_DALLE_MODEL")
+
+ if azureOpenAIKey == "" || azureOpenAIEndpoint == "" || azureDeployment == "" {
+ fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
+ return
+ }
+
+ keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
+
+ client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ resp, err := client.GetImageGenerations(context.TODO(), azopenai.ImageGenerationOptions{
+ Prompt: to.Ptr("a cat"),
+ ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL),
+ DeploymentName: &azureDeployment,
+ }, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ for _, generatedImage := range resp.Data {
+ // the underlying type for the generatedImage is dictated by the value of
+ // ImageGenerationOptions.ResponseFormat. In this example we used `azopenai.ImageGenerationResponseFormatURL`,
+ // so the underlying type will be ImageLocation.
+
+ resp, err := http.Head(*generatedImage.URL)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ _ = resp.Body.Close()
+ fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\n", resp.StatusCode)
+ }
+
+}
+```
+
+
+## Completions (legacy)
+
+### Client.GetChatCompletions
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "os"
+
+ "github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore"
+ "github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
+)
+
+func main() {
+ azureOpenAIKey := os.Getenv("AOAI_COMPLETIONS_API_KEY")
+ modelDeployment := os.Getenv("AOAI_COMPLETIONS_MODEL")
+
+ // Ex: "https://<your-azure-openai-host>.openai.azure.com"
+ azureOpenAIEndpoint := os.Getenv("AOAI_COMPLETIONS_ENDPOINT")
+
+ if azureOpenAIKey == "" || modelDeployment == "" || azureOpenAIEndpoint == "" {
+ fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
+ return
+ }
+
+ keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
+
+ // In Azure OpenAI you must deploy a model before you can use it in your client. For more information
+ // see here: https://learn.microsoft.com/azure/cognitive-services/openai/how-to/create-resource
+ client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ resp, err := client.GetCompletions(context.TODO(), azopenai.CompletionsOptions{
+ Prompt: []string{"What is Azure OpenAI, in 20 words or less"},
+ MaxTokens: to.Ptr(int32(2048)),
+ Temperature: to.Ptr(float32(0.0)),
+ DeploymentName: &modelDeployment,
+ }, nil)
+
+ if err != nil {
+ // TODO: Update the following line with your application specific error handling logic
+ log.Printf("ERROR: %s", err)
+ return
+ }
+
+ for _, choice := range resp.Choices {
+ fmt.Fprintf(os.Stderr, "Result: %s\n", *choice.Text)
+ }
+
+}
+```
+
+## Error handling
+
+All methods that send HTTP requests return `*azcore.ResponseError` when these requests fail. `ResponseError` has error details and the raw response from the service.
+
+### Logging
+
+This module uses the logging implementation in azcore. To turn on logging for all Azure SDK modules, set AZURE_SDK_GO_LOGGING to all. By default, the logger writes to stderr. Use the azcore/log package to control log output. For example, logging only HTTP request and response events, and printing them to stdout:
+
+```go
+import azlog "github.com/Azure/azure-sdk-for-go/sdk/azcore/log"
+
+// Print log events to stdout
+azlog.SetListener(func(cls azlog.Event, msg string) {
+ fmt.Println(msg)
+})
+
+// Includes only requests and responses in credential logs
+azlog.SetEvents(azlog.EventRequest, azlog.EventResponse)
+```
\ No newline at end of file
Summary
{
"modification_type": "new feature",
"modification_title": "Azure OpenAIのGoサポートを追加"
}
Explanation
この変更は、Azure OpenAIサービスに対するGoプログラミング言語のサポートに関する新しいドキュメントを追加したもので、合計683行の新しい情報が含まれています。この新機能は、Go開発者がAzure OpenAIを活用するために必要な情報とコードの例を提供します。
具体的な内容は以下の通りです:
ドキュメントの概要: Azure OpenAI Goライブラリの概要と、公式のAzure SDK for Goにリンクする情報が提供されています。
APIバージョンのサポート: Azure OpenAI GoライブラリがターゲットとするAPIバージョンが明確にされており、使用可能な機能がこのバージョンに依存することが説明されています。現在のターゲットバージョンは「2024-10-01-preview」です。
インストール手順: 必要なモジュールをgo get
コマンドを使ってインストールする方法が示されています。
認証方法: Microsoft Entra IDおよびAPIキーを用いた認証手段が説明されています。それに関連する具体的なコードスニペットも提供されています。
音声生成および音声転写: 音声生成や音声転写を行うためのクライアントメソッドの使用方法が詳しく解説されており、これには関連するコードサンプルが含まれています。
チャット機能: Azure OpenAIのチャット機能を使用するための具体的な実装方法が示されており、過去の対話を維持する手法についても触れられています。
埋め込み生成および画像生成: 埋め込み生成や画像生成のAPIに関する説明や、それらを使用するためのコード例が提供されています。
エラーハンドリング: HTTPリクエストに失敗した際のエラーハンドリングについても詳しく説明されており、エラー詳細やログの出力に関する情報が含まれています。
この新しいドキュメントによって、Go開発者はAzure OpenAIサービスと効果的にインタラクトし、自身のアプリケーションにAI機能を統合する方法を明確に理解できるようになります。
articles/ai-services/openai/includes/language-overview/java.md
Diff
@@ -0,0 +1,312 @@
+---
+title: Azure OpenAI Java support
+titleSuffix: Azure OpenAI Service
+description: Azure OpenAI Java support
+manager: nitinme
+ms.service: azure-ai-openai
+ms.topic: include
+ms.date: 11/18/2024
+---
+
+
+[Source code](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/openai/azure-ai-openai) | [Artifact (Maven)](https://central.sonatype.com/artifact/com.azure/azure-ai-openai/1.0.0-beta.12) | [API reference documentation](../../reference.md) | [Package reference documentation](/java/api/overview/azure/ai-openai-readme?view=azure-java-preview&preserve-view=true) [Samples](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/openai/azure-ai-openai/src/samples)
+
+## Azure OpenAI API version support
+
+Unlike the Azure OpenAI client libraries for Python and JavaScript, to ensure compatibility the Azure OpenAI Java package is limited to targeting a specific subset of the Azure OpenAI API versions. Generally each Azure OpenAI Java package unlocks access to newer Azure OpenAI API release features. Having access to the latest API versions impacts feature availability.
+
+Version selection is controlled by the [`OpenAIServiceVersion`](/java/api/com.azure.ai.openai.openaiserviceversion?view=azure-java-preview&preserve-view=true) enum.
+
+The latest Azure OpenAI preview API supported is:
+
+-`2024-08-01-preview`
+
+The latest stable (GA) release supported is:
+
+-`2024-06-01`
+
+## Installation
+
+### Package details
+
+```XML
+<dependency>
+ <groupId>com.azure</groupId>
+ <artifactId>azure-ai-openai</artifactId>
+ <version>1.0.0-beta.12</version>
+</dependency>
+```
+
+## Authentication
+
+In order to interact with the Azure OpenAI Service you'll need to create an instance of client class, [`OpenAIAsyncClient`](https://github.com/Azure/azure-sdk-for-java/blob/azure-ai-openai_1.0.0-beta.12/sdk/openai/azure-ai-openai/src/main/java/com/azure/ai/openai/OpenAIAsyncClient.java) or [`OpenAIClient`](https://github.com/Azure/azure-sdk-for-java/blob/azure-ai-openai_1.0.0-beta.12/sdk/openai/azure-ai-openai/src/main/java/com/azure/ai/openai/OpenAIClient.java) by using [`OpenAIClientBuilder`](https://github.com/Azure/azure-sdk-for-java/blob/azure-ai-openai_1.0.0-beta.12/sdk/openai/azure-ai-openai/src/main/java/com/azure/ai/openai/OpenAIClientBuilder.java). To configure a client for use with Azure OpenAI, provide a valid endpoint URI to an Azure OpenAI resource along with a corresponding key credential, token credential, or Azure Identity credential that's authorized to use the Azure OpenAI resource.
+
+# [Microsoft Entra ID](#tab/secure)
+
+Authentication with Microsoft Entra ID requires some initial setup:
+
+Add the Azure Identity package:
+
+```xml
+<dependency>
+ <groupId>com.azure</groupId>
+ <artifactId>azure-identity</artifactId>
+ <version>1.13.3</version>
+</dependency>
+```
+
+After setup, you can choose which type of credential from `azure.identity` to use. As an example, `DefaultAzureCredential` can be used to authenticate the client: Set the values of the client ID, tenant ID, and client secret of the Microsoft Entra ID application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.
+
+Authorization is easiest using DefaultAzureCredential. It finds the best credential to use in its running environment.
+
+```java
+TokenCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
+OpenAIClient client = new OpenAIClientBuilder()
+ .credential(defaultCredential)
+ .endpoint("{endpoint}")
+ .buildClient();
+```
+
+# [API Key](#tab/api-key)
+
+```java
+OpenAIClient client = new OpenAIClientBuilder()
+ .credential(new AzureKeyCredential("{key}"))
+ .endpoint("{endpoint}")
+ .buildClient();
+```
+
+Async
+
+```java
+OpenAIAsyncClient client = new OpenAIClientBuilder()
+ .credential(new AzureKeyCredential("{key}"))
+ .endpoint("{endpoint}")
+ .buildAsyncClient();
+```
+
+---
+
+## Audio
+
+### client.getAudioTranscription
+
+```java
+String fileName = "{your-file-name}";
+Path filePath = Paths.get("{your-file-path}" + fileName);
+
+byte[] file = BinaryData.fromFile(filePath).toBytes();
+AudioTranscriptionOptions transcriptionOptions = new AudioTranscriptionOptions(file)
+ .setResponseFormat(AudioTranscriptionFormat.JSON);
+
+AudioTranscription transcription = client.getAudioTranscription("{deploymentOrModelName}", fileName, transcriptionOptions);
+
+System.out.println("Transcription: " + transcription.getText());
+```
+
+### client.generateSpeechFromText
+
+**Text to speech (TTS)**
+
+```java
+String deploymentOrModelId = "{azure-open-ai-deployment-model-id}";
+SpeechGenerationOptions options = new SpeechGenerationOptions(
+ "Today is a wonderful day to build something people love!",
+ SpeechVoice.ALLOY);
+BinaryData speech = client.generateSpeechFromText(deploymentOrModelId, options);
+// Checkout your generated speech in the file system.
+Path path = Paths.get("{your-local-file-path}/speech.wav");
+Files.write(path, speech.toBytes());
+```
+
+## Chat
+
+### client.getChatCompletions
+
+```java
+List<ChatRequestMessage> chatMessages = new ArrayList<>();
+chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant. You will talk like a pirate."));
+chatMessages.add(new ChatRequestUserMessage("Can you help me?"));
+chatMessages.add(new ChatRequestAssistantMessage("Of course, me hearty! What can I do for ye?"));
+chatMessages.add(new ChatRequestUserMessage("What's the best way to train a parrot?"));
+
+ChatCompletions chatCompletions = client.getChatCompletions("{deploymentOrModelName}",
+ new ChatCompletionsOptions(chatMessages));
+
+System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt());
+for (ChatChoice choice : chatCompletions.getChoices()) {
+ ChatResponseMessage message = choice.getMessage();
+ System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole());
+ System.out.println("Message:");
+ System.out.println(message.getContent());
+}
+```
+
+### Streaming
+
+```java
+List<ChatRequestMessage> chatMessages = new ArrayList<>();
+chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant. You will talk like a pirate."));
+chatMessages.add(new ChatRequestUserMessage("Can you help me?"));
+chatMessages.add(new ChatRequestAssistantMessage("Of course, me hearty! What can I do for ye?"));
+chatMessages.add(new ChatRequestUserMessage("What's the best way to train a parrot?"));
+
+ChatCompletions chatCompletions = client.getChatCompletions("{deploymentOrModelName}",
+ new ChatCompletionsOptions(chatMessages));
+
+System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt());
+for (ChatChoice choice : chatCompletions.getChoices()) {
+ ChatResponseMessage message = choice.getMessage();
+ System.out.printf("Index: %d, Chat Role: %s.%n", choice.getIndex(), message.getRole());
+ System.out.println("Message:");
+ System.out.println(message.getContent());
+}
+```
+
+### Chat completions with images
+
+```java
+List<ChatRequestMessage> chatMessages = new ArrayList<>();
+chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant that describes images"));
+chatMessages.add(new ChatRequestUserMessage(Arrays.asList(
+ new ChatMessageTextContentItem("Please describe this image"),
+ new ChatMessageImageContentItem(
+ new ChatMessageImageUrl("https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"))
+)));
+
+ChatCompletionsOptions chatCompletionsOptions = new ChatCompletionsOptions(chatMessages);
+ChatCompletions chatCompletions = client.getChatCompletions("{deploymentOrModelName}", chatCompletionsOptions);
+
+System.out.println("Chat completion: " + chatCompletions.getChoices().get(0).getMessage().getContent());
+```
+
+## Embeddings
+
+### client.getEmbeddings
+
+```java
+EmbeddingsOptions embeddingsOptions = new EmbeddingsOptions(
+ Arrays.asList("Your text string goes here"));
+
+Embeddings embeddings = client.getEmbeddings("{deploymentOrModelName}", embeddingsOptions);
+
+for (EmbeddingItem item : embeddings.getData()) {
+ System.out.printf("Index: %d.%n", item.getPromptIndex());
+ for (Float embedding : item.getEmbedding()) {
+ System.out.printf("%f;", embedding);
+ }
+}
+```
+
+## Image generation
+
+```java
+ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions(
+ "A drawing of the Seattle skyline in the style of Van Gogh");
+ImageGenerations images = client.getImageGenerations("{deploymentOrModelName}", imageGenerationOptions);
+
+for (ImageGenerationData imageGenerationData : images.getData()) {
+ System.out.printf(
+ "Image location URL that provides temporary access to download the generated image is %s.%n",
+ imageGenerationData.getUrl());
+}
+```
+
+## Handling errors
+
+### Enable client logging
+
+To troubleshoot issues with Azure OpenAI library, it's important to first enable logging to monitor the
+behavior of the application. The errors and warnings in the logs generally provide useful insights into what went wrong
+and sometimes include corrective actions to fix issues. The Azure client libraries for Java have two logging options:
+
+* A built-in logging framework.
+* Support for logging using the [SLF4J](https://www.slf4j.org/) interface.
+
+Refer to the instructions in this reference document on how to [configure logging in Azure SDK for Java][logging_overview].
+
+### Enable HTTP request/response logging
+
+Reviewing the HTTP request sent or response received over the wire to/from the Azure OpenAI service can be
+useful in troubleshooting issues. To enable logging the HTTP request and response payload, the [OpenAIClient][openai_client]
+can be configured as shown below. If there's no SLF4J's `Logger` on the class path, set an environment variable
+[AZURE_LOG_LEVEL][azure_log_level] in your machine to enable logging.
+
+```java readme-sample-enablehttplogging
+OpenAIClient openAIClient = new OpenAIClientBuilder()
+ .endpoint("{endpoint}")
+ .credential(new AzureKeyCredential("{key}"))
+ .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
+ .buildClient();
+// or
+DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
+OpenAIClient configurationClientAad = new OpenAIClientBuilder()
+ .credential(credential)
+ .endpoint("{endpoint}")
+ .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS))
+ .buildClient();
+```
+
+Alternatively, you can configure logging HTTP requests and responses for your entire application by setting the
+following environment variable. Note that this change will enable logging for every Azure client that supports logging
+HTTP request/response.
+
+Environment variable name: `AZURE_HTTP_LOG_DETAIL_LEVEL`
+
+| Value | Logging level |
+|------------------|----------------------------------------------------------------------|
+| none | HTTP request/response logging is disabled |
+| basic | Logs only URLs, HTTP methods, and time to finish the request. |
+| headers | Logs everything in BASIC, plus all the request and response headers. |
+| body | Logs everything in BASIC, plus all the request and response body. |
+| body_and_headers | Logs everything in HEADERS and BODY. |
+
+> [!NOTE]
+> When logging the body of request and response, ensure that they don't contain confidential
+information. When logging headers, the client library has a default set of headers that are considered safe to log
+but this set can be updated by updating the log options in the builder as shown below.
+
+```java
+clientBuilder.httpLogOptions(new HttpLogOptions().addAllowedHeaderName("safe-to-log-header-name"))
+```
+
+### Troubleshooting exceptions
+Azure OpenAI service methods throw a`[HttpResponseException` or its subclass on failure.
+The `HttpResponseException` thrown by the OpenAI client library includes detailed response error object
+that provides specific useful insights into what went wrong and includes corrective actions to fix common issues.
+This error information can be found inside the message property of the `HttpResponseException` object.
+
+Here's the example of how to catch it with synchronous client
+
+```java readme-sample-troubleshootingExceptions
+List<ChatRequestMessage> chatMessages = new ArrayList<>();
+chatMessages.add(new ChatRequestSystemMessage("You are a helpful assistant. You will talk like a pirate."));
+chatMessages.add(new ChatRequestUserMessage("Can you help me?"));
+chatMessages.add(new ChatRequestAssistantMessage("Of course, me hearty! What can I do for ye?"));
+chatMessages.add(new ChatRequestUserMessage("What's the best way to train a parrot?"));
+
+try {
+ ChatCompletions chatCompletions = client.getChatCompletions("{deploymentOrModelName}",
+ new ChatCompletionsOptions(chatMessages));
+} catch (HttpResponseException e) {
+ System.out.println(e.getMessage());
+ // Do something with the exception
+}
+```
+
+With async clients, you can catch and handle exceptions in the error callbacks:
+
+```java readme-sample-troubleshootingExceptions-async
+asyncClient.getChatCompletions("{deploymentOrModelName}", new ChatCompletionsOptions(chatMessages))
+ .doOnSuccess(ignored -> System.out.println("Success!"))
+ .doOnError(
+ error -> error instanceof ResourceNotFoundException,
+ error -> System.out.println("Exception: 'getChatCompletions' could not be performed."));
+```
+
+### Authentication errors
+
+Azure OpenAI supports Microsoft Entra ID authentication. `OpenAIClientBuilder`
+has method to set the `credential`. To provide a valid credential, you can use `azure-identity` dependency.
+
+
Summary
{
"modification_type": "new feature",
"modification_title": "Azure OpenAIのJavaサポートを追加"
}
Explanation
この変更は、Azure OpenAIサービスに対するJavaプログラミング言語のサポートに関する新しいドキュメントを追加したもので、合計312行の新しい情報が含まれています。この新機能により、Java開発者はAzure OpenAIを利用するための重要な情報と具体的なコード例を手に入れることができます。
具体的な内容は以下の通りです:
概要とリンク: Azure OpenAIのJavaサポートについての簡単な説明と、ソースコード、Mavenのアーティファクト、APIリファレンスおよびサンプルに関するリンクが提供されています。
APIバージョンのサポート: Azure OpenAI Javaパッケージが特定のAzure OpenAI APIバージョンに限定されていることが説明されており、最新のプレビューAPI 2024-08-01-preview
と安定版 2024-06-01
がサポートされていると記載されています。
インストール手順: Mavenを使用したパッケージの依存関係の追加方法が示されています。
認証方法: Azure OpenAIサービスとインタラクションするために必要なクライアントインスタンスの作成方法が説明されています。Microsoft Entra IDを使った認証方法やAPIキーを用いる方法が具体的に示されています。
音声機能: 音声の転写や音声合成(Text to Speech)のメソッド使用方法についてのコード例が提供されており、Javaでの実装方法を具体的に学ぶことができます。
チャット機能: チャットコンプリート機能に関する具体的な実装例が記載されており、ユーザーとの対話を維持しながら応答を取得する方法が示されています。
埋め込みと画像生成: 埋め込み生成や画像生成に関連するメソッドの使用法が説明され、各操作に対するコード例が提供されています。
エラーハンドリング: Azure OpenAIライブラリを利用する際のエラーハンドリングに関する情報が含まれており、HTTP要求や応答のログ記録方法、具体的な例外処理の方法が示されています。
この新しいドキュメントによって、Java開発者はAzure OpenAIサービスを効果的に利用し、自らのアプリケーションにAI機能を統合する方法を理解できるようになります。
articles/ai-services/openai/includes/language-overview/javascript.md
Diff
@@ -0,0 +1,157 @@
+---
+title: Azure OpenAI JavaScript support
+titleSuffix: Azure OpenAI Service
+description: Azure OpenAI JavaScript support
+manager: nitinme
+ms.service: azure-ai-openai
+ms.topic: include
+ms.date: 11/18/2024
+---
+
+[Source code](https://github.com/openai/openai-node) | [Package (npm)](https://www.npmjs.com/package/openai) | [Reference](../../reference.md) |
+
+
+## Azure OpenAI API version support
+
+Feature availability in Azure OpenAI is dependent on what version of the REST API you target. For the newest features, target the latest preview API.
+
+| Latest GA API | Latest Preview API|
+|:-----|:------|
+|`2024-10-21` |`2024-10-01-preview`|
+
+## Installation
+
+```cmd
+npm install openai
+```
+
+## Authentication
+
+# [Microsoft Entra ID](#tab/secure)
+
+There are several ways to authenticate with the Azure OpenAI service using Microsoft Entra ID tokens. The default way is to use the `DefaultAzureCredential` class from the `@azure/identity` package.
+
+```typescript
+import { DefaultAzureCredential } from "@azure/identity";
+const credential = new DefaultAzureCredential();
+```
+
+This object is then passed to the second argument of the `OpenAIClient` and `AssistantsClient` client constructors.
+
+In order to authenticate the `AzureOpenAI` client, however, we need to use the `getBearerTokenProvider` function from the `@azure/identity` package. This function creates a token provider that `AzureOpenAI` uses internally to obtain tokens for each request. The token provider is created as follows:
+
+```typescript
+import { AzureOpenAI } from 'openai';
+import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
+const credential = new DefaultAzureCredential();
+const endpoint = "https://your-azure-openai-resource.com";
+const apiVersion = "2024-10-21"
+const scope = "https://cognitiveservices.azure.com/.default";
+const azureADTokenProvider = getBearerTokenProvider(credential, scope);
+
+
+const client = new AzureOpenAI({
+ endpoint,
+ apiVersions,
+ azureADTokenProvider
+ });
+```
+
+# [API Key](#tab/api-key)
+
+API Key
+
+API keys are not recommended for production use because they are less secure than other authentication methods.
+
+```typescript
+import { AzureKeyCredential } from "@azure/openai";
+const apiKey = new AzureKeyCredential("your API key");
+const endpoint = "https://your-azure-openai-resource.com";0
+const apiVersion = "2024-10-21"
+
+const client = new AzureOpenAI({ apiKey, endpoint, apiVersion });
+```
+
+`AzureOpenAI` can be authenticated with an API key by setting the `AZURE_OPENAI_API_KEY` environment variable or by setting the `apiKey` string property in the options object when creating the `AzureOpenAI` client.
+
+[!INCLUDE [Azure key vault](~/reusable-content/ce-skilling/azure/includes/ai-services/security/azure-key-vault.md)]
+
+---
+
+## Audio
+
+### Transcription
+
+```typescript
+import { createReadStream } from "fs";
+
+const result = await client.audio.transcriptions.create({
+ model: '',
+ file: createReadStream(audioFilePath),
+});
+```
+
+## Chat
+
+`chat.completions.create`
+
+```typescript
+const result = await client.chat.completions.create({ messages, model: '', max_tokens: 100 });
+```
+
+### Streaming
+
+```typescript
+const stream = await client.chat.completions.create({ model: '', messages, max_tokens: 100, stream: true });
+```
+
+## Embeddings
+
+```typescript
+const embeddings = await client.embeddings.create({ input, model: '' });
+```
+
+## Image generation
+
+```typescript
+ const results = await client.images.generate({ prompt, model: '', n, size });
+```
+
+## Error handling
+
+### Error codes
+
+| Status Code | Error Type |
+|----|---|
+| 400 | `Bad Request Error` |
+| 401 | `Authentication Error` |
+| 403 | `Permission Denied Error` |
+| 404 | `Not Found Error` |
+| 422 | `Unprocessable Entity Error` |
+| 429 | `Rate Limit Error` |
+| 500 | `Internal Server Error` |
+| 503 | `Service Unavailable` |
+| 504 | `Gateway Timeout` |
+
+### Retries
+
+The following errors are automatically retired twice by default with a brief exponential backoff:
+
+- Connection Errors
+- 408 Request Timeout
+- 429 Rate Limit
+- `>=`500 Internal Errors
+
+Use `maxRetries` to set/disable the retry behavior:
+
+```typescript
+// Configure the default for all requests:
+const client = new AzureOpenAI({
+ maxRetries: 0, // default is 2
+});
+
+// Or, configure per-request:
+await client.chat.completions.create({ messages: [{ role: 'user', content: 'How can I get the name of the current day in Node.js?' }], model: '' }, {
+ maxRetries: 5,
+});
+```
\ No newline at end of file
Summary
{
"modification_type": "new feature",
"modification_title": "Azure OpenAIのJavaScriptサポートを追加"
}
Explanation
この変更は、Azure OpenAIサービスに対するJavaScriptプログラミング言語のサポートに関する新しいドキュメントを追加したもので、合計157行の新しい情報が含まれています。この新しい機能により、JavaScript開発者はAzure OpenAIを利用するための重要な情報と具体的なコード例を取得できるようになります。
具体的な内容は以下の通りです:
概要とリンク: Azure OpenAIのJavaScriptサポートについての簡単な説明と、ソースコードリポジトリ、NPMパッケージ、リファレンスへのリンクが提供されています。
APIバージョンのサポート: Azure OpenAIの機能はターゲットとするREST APIのバージョンに依存しており、最新のプレビューAPI(2024-10-01-preview
)や最近のGA API(2024-10-21
)がサポートされています。
インストール手順: npm install openai
コマンドを使用して、パッケージのインストール方法が記述されています。
認証方法: Microsoft Entra IDを使用した認証の方法が複数示されており、DefaultAzureCredential
を使った基本的な認証手順が説明されています。また、APIキーによる認証方法に関する注意事項やコード例も含まれています。
音声機能: 音声の転写機能に関連するメソッド使用方法が示されており、音声ファイルを使用して転写を行う具体的なコードサンプルが提供されています。
チャット機能: チャットコンプリート機能の使用法が記載されており、メッセージを送信し、最大トークン数を指定して応答を取得するためのコード例があります。さらに、ストリーミング機能を使用する方法についても説明されています。
埋め込み生成および画像生成: 埋め込みを生成し、画像を生成するためのメソッドとその使い方が紹介されています。
エラーハンドリング: エラーハンドリングのセクションでは、HTTPステータスコードとそれに対応するエラータイプの表が提供されており、再試行の方針や具体的なコード例も含まれています。
この新しいドキュメントにより、JavaScript開発者はAzure OpenAIサービスを効果的に活用し、自身のアプリケーションにAI機能を統合するための明確な手引きを得ることができます。
articles/ai-services/openai/includes/language-overview/python.md
Diff
@@ -0,0 +1,658 @@
+---
+title: Azure OpenAI Python support
+titleSuffix: Azure OpenAI Service
+description: Azure OpenAI Python support
+manager: nitinme
+ms.service: azure-ai-openai
+ms.topic: include
+ms.date: 11/18/2024
+---
+
+[Library source code](https://github.com/openai/openai-python?azure-portal=true) | [Package (PyPi)](https://pypi.org/project/openai?azure-portal=true) | [Reference](../../reference.md) |
+
+> [!NOTE]
+> This library is maintained by OpenAI. Refer to the [release history](https://github.com/openai/openai-python/releases) to track the latest updates to the library.
+
+## Azure OpenAI API version support
+
+Feature availability in Azure OpenAI is dependent on what version of the REST API you target. For the newest features, target the latest preview API.
+
+| Latest GA API | Latest Preview API|
+|:-----|:------|
+|`2024-10-21` |`2024-10-01-preview`|
+
+## Installation
+
+```cmd
+pip install openai
+```
+
+For the latest version:
+
+```cmd
+pip install openai --upgrade
+```
+
+## Authentication
+
+# [Microsoft Entra ID](#tab/python-secure)
+
+```python
+import os
+from openai import AzureOpenAI
+from azure.identity import DefaultAzureCredential, get_bearer_token_provider
+
+token_provider = get_bearer_token_provider(
+ DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
+)
+
+client = AzureOpenAI(
+ azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
+ azure_ad_token_provider=token_provider,
+ api_version="2024-10-21"
+)
+```
+
+# [API Key](#tab/python-key)
+
+[!INCLUDE [Azure key vault](~/reusable-content/ce-skilling/azure/includes/ai-services/security/azure-key-vault.md)]
+
+```python
+import os
+from openai import AzureOpenAI
+
+client = AzureOpenAI(
+ api_key=os.getenv("AZURE_OPENAI_API_KEY"),
+ api_version="2024-10-21",
+ azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
+ )
+
+```
+
+---
+
+## Audio
+
+### audio.speech.create()
+
+This function currently requires a preview API version.
+
+Set `api_version="2024-10-01-preview"` to use this function.
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+from pathlib import Path
+import os
+
+speech_file_path = Path("speech.mp3")
+
+response = client.audio.speech.create(
+ model="tts-hd", #Replace with model deployment name
+ voice="alloy",
+ input="Testing, testing, 1,2,3."
+)
+response.write_to_file(speech_file_path)
+```
+
+### audio.transcriptions.create()
+
+
+# [Python](#tab/command)
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+audio_file = open("speech1.mp3", "rb")
+transcript = client.audio.transcriptions.create(
+ model="whisper", # Replace with model deployment name
+ file=audio_file
+)
+
+print(transcript)
+```
+# [Response](#tab/response)
+
+```text
+Transcription(text='Testing, testing, one, two, three.')
+```
+
+---
+
+## Chat
+
+### chat.completions.create()
+
+# [Python](#tab/command)
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+completion = client.chat.completions.create(
+ model="gpt-4o", # Replace with your model dpeloyment name.
+ messages=[
+ {"role": "system", "content": "You are a helpful assistant."},
+ {"role": "user", "content": "When was Microsoft founded?"}
+ ]
+)
+
+#print(completion.choices[0].message)
+print(completion.model_dump_json(indent=2)
+```
+
+# [Response](#tab/response)
+
+```json
+{
+ "id": "chatcmpl-AUhZ11g6aNb1Nnxjp4hFUNcszw3uf",
+ "choices": [
+ {
+ "finish_reason": "stop",
+ "index": 0,
+ "logprobs": null,
+ "message": {
+ "content": "Microsoft was founded on April 4, 1975, by Bill Gates and Paul Allen in Albuquerque, New Mexico.",
+ "refusal": null,
+ "role": "assistant",
+ "function_call": null,
+ "tool_calls": null
+ },
+ "content_filter_results": {
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ }
+ }
+ ],
+ "created": 1731880663,
+ "model": "gpt-4o-2024-08-06",
+ "object": "chat.completion",
+ "service_tier": null,
+ "system_fingerprint": "fp_04751d0b65",
+ "usage": {
+ "completion_tokens": 24,
+ "prompt_tokens": 22,
+ "total_tokens": 46,
+ "completion_tokens_details": null,
+ "prompt_tokens_details": null
+ },
+ "prompt_filter_results": [
+ {
+ "prompt_index": 0,
+ "content_filter_results": {
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "jailbreak": {
+ "filtered": false,
+ "detected": false
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ }
+ }
+ ]
+}
+```
+
+---
+
+### chat.completions.create() - streaming
+
+# [Python](#tab/command)
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+completion = client.chat.completions.create(
+ model="gpt-4o", # Replace with your model dpeloyment name.
+ messages=[
+ {"role": "system", "content": "You are a helpful assistant."},
+ {"role": "user", "content": "When was Microsoft founded?"}
+ ],
+ stream=True
+)
+
+for chunk in completion:
+ if chunk.choices and chunk.choices[0].delta.content is not None:
+ print(chunk.choices[0].delta.content, end='',)
+```
+
+# [Response](#tab/response)
+
+```text
+Microsoft was founded on April 4, 1975, by Bill Gates and Paul Allen.
+```
+
+---
+
+### chat.completions.create() - image input
+
+# [Python](#tab/command)
+
+
+```python
+completion = client.chat.completions.create(
+ model="gpt-4o",
+ messages=[
+ {
+ "role": "user",
+ "content": [
+ {"type": "text", "text": "What's in this image?"},
+ {
+ "type": "image_url",
+ "image_url": {
+ "url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png",
+ }
+ },
+ ],
+ }
+ ],
+ max_tokens=300,
+)
+
+print(completion.model_dump_json(indent=2))
+```
+
+# [Response](#tab/response)
+
+```json
+{
+ "id": "chatcmpl-AUisNBsjzPisMbx3k5Uz5SOKN63KN",
+ "choices": [
+ {
+ "finish_reason": "stop",
+ "index": 0,
+ "logprobs": null,
+ "message": {
+ "content": "This image is a watercolor painting of a city skyline, featuring a prominent tower that resembles the Space Needle, which is located in Seattle. The painting uses a blend of colors to depict the cityscape and sky.",
+ "refusal": null,
+ "role": "assistant",
+ "function_call": null,
+ "tool_calls": null
+ },
+ "content_filter_results": {
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ }
+ }
+ ],
+ "created": 1731885707,
+ "model": "gpt-4o-2024-08-06",
+ "object": "chat.completion",
+ "service_tier": null,
+ "system_fingerprint": "fp_04751d0b65",
+ "usage": {
+ "completion_tokens": 42,
+ "prompt_tokens": 639,
+ "total_tokens": 681,
+ "completion_tokens_details": null,
+ "prompt_tokens_details": null
+ },
+ "prompt_filter_results": [
+ {
+ "prompt_index": 0,
+ "content_filter_result": {
+ "jailbreak": {
+ "filtered": false,
+ "detected": false
+ }
+ }
+ },
+ {
+ "prompt_index": 1,
+ "content_filter_result": {
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ }
+ }
+ ]
+}
+```
+
+---
+
+## Embeddings
+
+### embeddings.create()
+
+# [Python](#tab/command)
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+embedding = client.embeddings.create(
+ model="text-embedding-3-large", # Replace with your model deployment name
+ input="Attenion is all you need",
+ encoding_format="float"
+)
+
+print(embedding)
+```
+
+# [Response](#tab/response)
+
+The response has been truncated for brevity.
+
+```
+CreateEmbeddingResponse(data=[Embedding(embedding=[0.009098228, -0.010369237, -0.00048062875, -0.014328566, 0.019677775, 0.010049199, -0.005600668, 0.003858746, -0.007818076, 0.012554641, 0.005134327, 0.004514824, -0.020262988, -0.0039181816, 0.025475038, 0.016733425, 0.002136255, 0.0155172795, 0.0058978465, 0.012911255, -0.014273703, -0.016806576, 0.0265906, 0.037673064, 0.003909038, 0.0265906, -0.001935088, -0.014913779, 0.01781241, -0.017821554, 0.0016596265, -0.002987785, -0.014346854, -0.000962972, 0.0068671047, 0.004405097, -0.015764166, -0.007539185, -0.030394483, -0.01586475, 0.0074706054, -0.013761641, 0.010186358, 0.008805621, -0.009939471, 0.013944521, -0.010113207, -0.015745878, -0.021927187, 0.03231471, 0.0026951786, 0.004759425, 0.0065196347, 0.010927018, 0.017263774, 0.0055229445, 0.009381691, -0.042903405], index=0, object='embedding')], model='text-embedding-3-large', object='list', usage=Usage(prompt_tokens=7, total_tokens=7))
+```
+
+---
+
+## Fine-tuning
+
+[Fine-tuning with Python how-to article](../../how-to/fine-tuning.md)
+
+## Batch
+
+[Batch with Python how-to article](../../how-to/batch.md)
+
+## Images
+
+### images.generate()
+
+
+# [Python](#tab/command)
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+generate_image = client.images.generate(
+ model="dall-e-3", #replace with your model deployment name
+ prompt="A rabbit eating pancakes",
+ n=1,
+ size="1024x1024",
+ quality = "hd",
+ response_format = "url",
+ style = "vivid"
+)
+
+print(generate_image.model_dump_json(indent=2))
+```
+
+# [Response](#tab/response)
+
+```json
+{
+ "created": 1731894125,
+ "data": [
+ {
+ "b64_json": null,
+ "revised_prompt": "A fluffy rabbit contentedly munching on a stack of miniature pancakes laid out on a small plate just its size, set against the backdrop of a sunny meadow.",
+ "url": "{Secure path to generated image's Azure Blob storage image url}",
+ "content_filter_results": {
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ },
+ "prompt_filter_results": {
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "profanity": {
+ "detected": false,
+ "filtered": false
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ }
+ }
+ ]
+}
+```
+
+---
+
+## Completions (legacy)
+
+### completions.create()
+
+# [Python](#tab/command)
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+legacy_completion = client.completions.create(
+ model="gpt-35-turbo-instruct", # Replace with model deployment name
+ prompt="Hello World!",
+ max_tokens=100,
+ temperature=0
+)
+
+print(legacy_completion.model_dump_json(indent=2))
+```
+
+
+# [Response](#tab/response)
+
+```
+{
+ "id": "cmpl-AUlF8xymP0ngMlIgIEYlT7C3Igi2H",
+ "choices": [
+ {
+ "finish_reason": "stop",
+ "index": 0,
+ "logprobs": null,
+ "text": "\n\nHello World!\n\nHello World!",
+ "content_filter_results": {
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ }
+ }
+ ],
+ "created": 1731894806,
+ "model": "gpt-35-turbo-instruct",
+ "object": "text_completion",
+ "system_fingerprint": null,
+ "usage": {
+ "completion_tokens": 8,
+ "prompt_tokens": 3,
+ "total_tokens": 11,
+ "completion_tokens_details": null,
+ "prompt_tokens_details": null
+ },
+ "prompt_filter_results": [
+ {
+ "prompt_index": 0,
+ "content_filter_results": {
+ "hate": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "self_harm": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "sexual": {
+ "filtered": false,
+ "severity": "safe"
+ },
+ "violence": {
+ "filtered": false,
+ "severity": "safe"
+ }
+ }
+ }
+ ]
+}
+```
+
+---
+
+## Error handling
+
+```python
+# from openai import AzureOpenAI
+# client = AzureOpenAI()
+
+import openai
+
+try:
+ client.fine_tuning.jobs.create(
+ model="gpt-4o",
+ training_file="file-test",
+ )
+except openai.APIConnectionError as e:
+ print("The server could not be reached")
+ print(e.__cause__) # an underlying Exception, likely raised within httpx.
+except openai.RateLimitError as e:
+ print("A 429 status code was received; we should back off a bit.")
+except openai.APIStatusError as e:
+ print("Another non-200-range status code was received")
+ print(e.status_code)
+ print(e.response)
+```
+
+### Error codes
+
+| Status Code | Error Type |
+|----|---|
+| 400 | `BadRequestError` |
+| 401 | `AuthenticationError` |
+| 403 | `PermissionDeniedError` |
+| 404 | `NotFoundError` |
+| 422 | `UnprocessableEntityError` |
+| 429 | `RateLimitError` |
+| >=500 | `InternalServerError` |
+| N/A | `APIConnectionError` |
+
+### Request IDs
+
+To retrieve the ID of your request you can use the `_request_id` property which corresponds to the `x-request-id` responde header.
+
+```python
+print(completion._request_id)
+print(legacy_completion._request_id)
+```
+
+### Retries
+
+The following errors are automatically retired twice by default with a brief exponential backoff:
+
+- Connection Errors
+- 408 Request Timeout
+- 429 Rate Limit
+- `>=`500 Internal Errors
+
+Use `max_retries` to set/disable the retry behavior:
+
+```python
+# For all requests
+
+from openai import AzureOpenAI
+client = AzureOpenAI(
+ max_retries=0
+)
+```
+
+```python
+# max retires for specific requests
+
+client.with_options(max_retries=5).chat.completions.create(
+ messages=[
+ {
+ "role": "user",
+ "content": "When was Microsoft founded?",
+ }
+ ],
+ model="gpt-4o",
+)
+```
\ No newline at end of file
Summary
{
"modification_type": "new feature",
"modification_title": "Azure OpenAIのPythonサポートを追加"
}
Explanation
この変更は、Azure OpenAIサービスに対するPythonプログラミング言語のサポートに関する新しいドキュメントを追加したもので、658行の詳しいガイドラインとコード例が含まれています。これにより、Python開発者はAzure OpenAIを活用する方法を学ぶことができ、具体的な実装に必要なリソースを得ることができます。
具体的な内容は以下の通りです:
概要とリンク: Azure OpenAIのPythonサポートに関する情報が含まれており、ライブラリーのソースコードリポジトリやPyPiパッケージへのリンクが提供されています。
APIバージョンのサポート: Azure OpenAIの機能は対象とするREST APIのバージョンに依存しており、最新の安定版API(2024-10-21
)及び最新のプレビューAPI(2024-10-01-preview
)が案内されています。
インストール手順: Python用のOpenAIライブラリのインストール方法が記載されており、pip install openai
コマンドを使用することが示されています。また、パッケージのアップグレード方法も説明されています。
認証方法: Microsoft Entra IDを使用して安全にAzure OpenAIサービスに認証する方法が具体的に示されています。DefaultAzureCredential
を活用したコード例と、APIキーを利用した別の方法も提供されています。
音声機能: 音声合成や音声転写に関連するAPI利用法が具体的なコード例と共に説明されています。特に、音声ファイルのアップロードや所定のモデルの使用方法が詳細に示されています。
チャット機能: チャットコンプリートAPIにおける使用例と、その応答の形式が示されており、ストリーミング機能や画像を入力とする場合のプログラム例も含まれています。
埋め込み生成: 埋め込みを生成するための関数の使用方法とそのレスポンスについてのコード例が提供されています。
エラーハンドリング: API呼び出し中のエラー処理方法が詳しく提供されており、特定のHTTPステータスコードがどのようなエラーに対応するかの表も含まれています。
リトライの実装: エラーが発生した際の自動リトライの仕組みや、その設定方法についても詳述されています。
この新しいドキュメントは、Python開発者がAzure OpenAIサービスを効果的に利用し、AI機能をアプリケーションに統合するための強力なリソースとなります。
articles/ai-services/openai/includes/use-your-data-studio.md
Diff
@@ -18,7 +18,7 @@ Start exploring Azure OpenAI capabilities with a no-code approach through the ch
:::image type="content" source="../media/quickstarts/chat-playground-new.png" alt-text="Screenshot of the playground page of the Azure OpenAI Studio with sections highlighted." lightbox="../media/quickstarts/chat-playground-new.png":::
-The playground gives you options to tailor your chat experience. On the right, you can select **Deployment** to determine which model generates a response using the search results from your index. You choose the number of past messages to include as conversation history for future generated responses. [Conversation history](../concepts/use-your-data.md#conversation-history-for-better-results) gives context to generate related responses but also consumes [token usage](../concepts/use-your-data.md#token-usage-estimation-for-azure-openai-on-your-data). The input token progress indicator keeps track of the token count of the question you submit.
+The playground gives you options to tailor your chat experience. On the top menu, you can select **Deploy** to determine which model generates a response using the search results from your index. You choose the number of past messages to include as conversation history for future generated responses. [Conversation history](../concepts/use-your-data.md#conversation-history-for-better-results) gives context to generate related responses but also consumes [token usage](../concepts/use-your-data.md#token-usage-estimation-for-azure-openai-on-your-data). The input token progress indicator keeps track of the token count of the question you submit.
The **Advanced settings** on the left are [runtime parameters](../concepts/use-your-data.md#runtime-parameters), which give you control over retrieval and search relevant information from your data. A good use case is when you want to make sure responses are generated only based on your data or you find the model cannot generate a response based on existed information on your data.
Summary
{
"modification_type": "minor update",
"modification_title": "Azure OpenAI Studioのメニュー項目の変更"
}
Explanation
この変更は、Azure OpenAI Studioに関する文書の一部を修正したもので、具体的には「playground」の説明部分において、メニュー項目の表現が更新されました。合計で1行の追加と1行の削除があり、全体として2行の変更が行われています。
具体的な内容は以下の通りです:
- メニュー項目の変更: 元々「右側にDeploymentを選択」と記載されていた部分が「上部のメニューでDeployを選択」に変更されました。この更新により、ユーザーがインターフェースを使用する際に、正確なメニューの位置を反映した説明となっています。
この修正は、利用者に対してより正確で使いやすいインストラクションを提供するためのものであり、ユーザーは適切に機能を利用できるようになります。
articles/ai-services/openai/media/content-filters/input-filter.png
Summary
{
"modification_type": "new feature",
"modification_title": "コンテンツフィルター用の画像を追加"
}
Explanation
この変更は、Azure OpenAIに関連する資料に新しい画像ファイルを追加したもので、特に「コンテンツフィルター」に関連する内容を視覚的に補完するためのものです。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
input-filter.png
という画像が追加され、これによってユーザーはコンテンツフィルターの使用方法や設定について、視覚的な手がかりを得ることができます。
この新しいメディアファイルは、ドキュメントをより理解しやすくし、ユーザーがAzure OpenAIの機能を利用する際の手助けとなることを目的としています。画像は、関連する文脈で使用され、ユーザーが提供された情報を効果的に利用できるようするための重要な要素となります。
articles/ai-services/openai/media/content-filters/output-filter.png
Summary
{
"modification_type": "new feature",
"modification_title": "出力フィルター用の画像を追加"
}
Explanation
この変更は、Azure OpenAIに関するドキュメントに新しい画像ファイルを追加したもので、特に「出力フィルター」に関連するビジュアル資料として機能します。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
output-filter.png
という画像が追加されており、ユーザーが出力フィルターの使用方法や設定を視覚的に理解できるよう支援します。
この新しいメディアファイルの追加により、関連する文書がより直感的で理解しやすくなり、ユーザーはAzure OpenAIの機能をより効果的に活用できるようになります。画像は、説明内容を補完し、ユーザーが情報を吸収するのを助ける重要な役割を果たします。
articles/ai-services/openai/media/how-to/evaluations/criteria-match.png
Summary
{
"modification_type": "new feature",
"modification_title": "評価基準に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIの利用方法に関するドキュメントに新しい画像ファイルを追加したもので、特に「評価基準」に関連しています。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
criteria-match.png
という画像が追加されており、ユーザーが評価基準を理解するための視覚的なサポートを提供します。
この新しいメディアファイルの追加により、ユーザーは評価基準の適用方法や評価プロセスを視覚的に理解しやすくなります。画像は、文章だけでは伝わりにくい情報を補完し、Azure OpenAIの機能を効果的に利用するための貴重な資料として機能します。
articles/ai-services/openai/media/how-to/evaluations/custom-prompt.png
Summary
{
"modification_type": "new feature",
"modification_title": "カスタムプロンプトに関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、特に「カスタムプロンプト」に関連しています。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
custom-prompt.png
という画像が追加され、ユーザーがカスタムプロンプトの設定や使用方法を視覚的に理解できるよう支援します。
この新しいメディアファイルの追加により、ドキュメントがより直感的になり、ユーザーはカスタムプロンプトの活用方法を把握しやすくなります。画像は、テキストだけでは伝わりにくい情報を補完し、Azure OpenAIの機能を効果的に利用するための重要なリソースとして機能します。
articles/ai-services/openai/media/how-to/evaluations/factuality.png
Summary
{
"modification_type": "new feature",
"modification_title": "事実性に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、特に「事実性」に関連しています。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
factuality.png
という画像が追加され、ユーザーが事実性の評価方法やプロセスを視覚的に理解できるように支援します。
この新しいメディアファイルの追加によって、ドキュメントはより情報提供力が高まり、ユーザーは事実性の概念をより簡単に把握できるようになります。画像は、単なるテキストでは伝わりづらい情報を視覚的に補完し、Azure OpenAIの機能を効果的に利用するための重要な資料として機能します。
articles/ai-services/openai/media/how-to/evaluations/generate-with.png
Summary
{
"modification_type": "new feature",
"modification_title": "生成に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、特に「生成」に関連しています。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
generate-with.png
という画像が追加され、ユーザーが生成プロセスの具体的な使用例や手順を視覚的に理解できるように支援します。
この新しいメディアファイルの追加により、ドキュメントがさらに充実し、ユーザーは生成機能の使用方法をより直感的に把握できるようになります。画像は、テキストだけでは伝わりづらい情報を視覚的に補完し、Azure OpenAIの活用を促進するための重要なリソースとして役立ちます。
articles/ai-services/openai/media/how-to/evaluations/item-input.png
Summary
{
"modification_type": "new feature",
"modification_title": "アイテム入力に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、特に「アイテム入力」に関連しています。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
item-input.png
という画像が追加され、ユーザーがアイテムの入力方法について視覚的に理解できるように支援します。
この新しいメディアファイルの追加によって、ドキュメントはさらに情報価値が向上し、ユーザーはアイテム入力のプロセスをより明確に把握できるようになります。画像は、テキストだけでは理解しづらい情報を補完し、Azure OpenAIの利用をより効果的にするための貴重なリソースとして機能します。
articles/ai-services/openai/media/how-to/evaluations/matches-schema.png
Summary
{
"modification_type": "new feature",
"modification_title": "スキーマの一致に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、特に「スキーマの一致」に関連しています。
具体的には、以下のような内容が含まれています:
- 新しい画像ファイル:
matches-schema.png
という画像が追加され、ユーザーがデータスキーマの一致を視覚的に理解できるように支援します。
この新しいメディアファイルの追加により、ドキュメントの内容が豊かになり、ユーザーはスキーマの一致についての概念をより具体的に理解できるようになります。画像は、テキストだけでは容易に伝わらない技術的な情報を補完し、Azure OpenAIの実装や利用に役立つ重要な情報源となります。
articles/ai-services/openai/media/how-to/evaluations/new-evaluation.png
Summary
{
"modification_type": "new feature",
"modification_title": "新しい評価に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、特に「新しい評価」に関する内容です。
具体的には、以下のような情報が含まれています:
- 新しい画像ファイル:
new-evaluation.png
という画像が追加されており、ユーザーが新しい評価手法について視覚的に理解できるように設計されています。
この新しいメディアファイルの追加により、資料全体の情報がより豊かになり、ユーザーは新しい評価プロセスの理解を深めることができます。画像は、テキストだけでは伝わりにくい複雑な情報を補完し、Azure OpenAIの機能をより効果的に活用するための利用者にとって価値あるリソースとなります。
articles/ai-services/openai/media/how-to/evaluations/output-details.png
Summary
{
"modification_type": "new feature",
"modification_title": "出力詳細に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、「出力詳細」に関連する内容です。
具体的な内容は以下の通りです:
- 新しい画像ファイル:
output-details.png
という画像が追加され、ユーザーが生成される出力の詳細について視覚的に理解できるように支援します。
この新しいメディアファイルの追加により、ドキュメント内の情報がより豊かになり、ユーザーは出力の仕組みや特徴をより深く理解することができます。画像は、テキスト情報を補完する役割を果たし、Azure OpenAIの機能を効果的に利用するために必要な知識を提供する重要なリソースとなります。
articles/ai-services/openai/media/how-to/evaluations/preview.png
Summary
{
"modification_type": "new feature",
"modification_title": "プレビューに関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、特に「プレビュー」に関連する内容です。
具体的には、以下の情報が含まれています:
- 新しい画像ファイル:
preview.png
という画像が追加されており、ユーザーが評価プロセスのプレビューを視覚的に理解できる手助けをします。
この新しいメディアファイルの追加により、ドキュメントの内容がより視覚的になり、ユーザーが評価の各ステップを理解しやすくなります。画像は、プレビューの具体的なイメージを提供し、Azure OpenAIの機能を効果的に活用するための参考資料として重要な役割を果たします。
articles/ai-services/openai/media/how-to/evaluations/question-input.png
Summary
{
"modification_type": "new feature",
"modification_title": "質問入力に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、「質問入力」に関する内容です。
具体的には、以下のポイントが含まれています:
- 新しい画像ファイル:
question-input.png
という画像が追加されており、ユーザーが質問を入力する際のインターフェースを視覚的に示しています。
この画像の追加により、ドキュメントはよりわかりやすくなり、ユーザーは質問入力のプロセスを容易に理解できるようになります。画像は、具体的な例を提供することで、Azure OpenAIを利用する際の効果的なガイダンスを与える重要なリソースとなります。
articles/ai-services/openai/media/how-to/evaluations/semantic-similarity-config.png
Summary
{
"modification_type": "new feature",
"modification_title": "セマンティック類似性設定に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、「セマンティック類似性の設定」に関連しています。
具体的には、以下の情報が含まれています:
- 新しい画像ファイル:
semantic-similarity-config.png
という画像が追加されており、セマンティック類似性の設定方法を視覚的に示しています。
この新しいメディアファイルにより、ドキュメントはさらに充実し、ユーザーはセマンティック類似性をどのように設定するかをより容易に理解できるようになります。画像は具体的な設定例を提供することで、Azure OpenAIの機能を効果的に活用するための重要な参考資料として機能します。
articles/ai-services/openai/media/how-to/evaluations/semantic-similarity.png
Summary
{
"modification_type": "new feature",
"modification_title": "セマンティック類似性に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、「セマンティック類似性」に関連しています。
具体的な内容は次の通りです:
- 新しい画像ファイル:
semantic-similarity.png
が追加されており、セマンティック類似性の概念について視覚的な説明を提供しています。
この画像の追加により、ドキュメントはさらに理解しやすくなり、ユーザーはセマンティック類似性の重要性や使用法を直感的に grasp できるようになります。画像は、具体的な事例を通じて、Azure OpenAIの機能を効果的に活用するための貴重なリソースとなるでしょう。
articles/ai-services/openai/media/how-to/evaluations/sentiment.png
Summary
{
"modification_type": "new feature",
"modification_title": "感情分析に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新たな画像ファイルを追加したもので、「感情分析」に焦点を当てています。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
sentiment.png
というファイルが新しく追加され、感情分析のプロセスや結果に関する視覚的な情報を提供しています。
この新しいメディアファイルの追加は、ドキュメントの内容をより豊かにし、ユーザーに感情分析の機能やその応用について直感的な理解を促進します。画像は、具体的な例を通して、Azure OpenAIの能力を効果的に活用するための重要な参考資料として機能します。
articles/ai-services/openai/media/how-to/evaluations/status.png
Summary
{
"modification_type": "new feature",
"modification_title": "評価ステータスに関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに新しい画像ファイルを追加したもので、「評価ステータス」に関連したコンテンツを提供しています。
具体的な内容は次の通りです:
- 新しい画像ファイル:
status.png
というファイルが新たに追加され、評価プロセスの各ステータスに関する視覚的な情報を示しています。
この画像は、ユーザーが評価の進行状況や結果をより理解しやすくするために役立ちます。視覚的な表現を通じて、Azure OpenAIの評価機能を活用する上での重要なドキュメントとして機能し、全体的なユーザー体験を向上させるものと期待されます。
articles/ai-services/openai/media/how-to/evaluations/string-check.png
Summary
{
"modification_type": "new feature",
"modification_title": "文字列チェックに関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「文字列チェック」に関連する新しい画像ファイルを追加したものです。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
string-check.png
というファイルが追加され、文字列のチェックや評価に関する情報を視覚的に示しています。
この画像は、ユーザーが文字列チェック機能を理解する手助けをする目的で設計されています。具体的な例を通じて、Azure OpenAIの文字列評価の方法やその応用についての洞察を提供し、ユーザーがより効果的にこの機能を活用できるようサポートします。 この追加により、ドキュメントはさらに充実した内容となり、視覚的な情報がユーザーの理解を助けることでしょう。
articles/ai-services/openai/media/how-to/evaluations/summarization-input.png
Summary
{
"modification_type": "new feature",
"modification_title": "要約入力に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「要約入力」に関連する新しい画像ファイルを追加したことを示しています。
具体的には、次の内容が含まれています:
- 新しい画像ファイル:
summarization-input.png
というファイルが追加され、要約入力のプロセスや方法を視覚的に示しています。
この画像は、ユーザーが要約機能の入力形式や期待されるデータを理解するのに役立ちます。適切な入力が与えられた場合にどのようにモデルが動作するかを示し、Azure OpenAIの要約機能の利用を促進する目的があります。この変更により、ドキュメントはさらに実用的になり、視覚的な情報がユーザーの理解を助けると期待されます。
articles/ai-services/openai/media/how-to/evaluations/test-complete.png
Summary
{
"modification_type": "new feature",
"modification_title": "テスト完了に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「テスト完了」に関連する新しい画像ファイルを追加したことを示しています。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
test-complete.png
というファイルが追加され、テストが完了したことを示す視覚的な情報を提供しています。
この画像は、ユーザーがテストプロセスの結果を理解しやすくするための役割を果たします。テストの評価や完了状況がどのように表示されるかを示し、Azure OpenAIの機能をより効果的に利用するための手助けとなることが目的です。この追加により、ドキュメントの内容がより豊かになり、ユーザーが視覚的な情報を通じて理解を深めることが期待されます。
articles/ai-services/openai/media/how-to/evaluations/testing-criteria.png
Summary
{
"modification_type": "new feature",
"modification_title": "テスト基準に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「テスト基準」に関連する新しい画像ファイルを追加したことを示しています。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
testing-criteria.png
というファイルが追加され、テストの基準や評価の指標を視覚的に表示しています。
この画像は、ユーザーがテストを行う際の基準や重要な評価項目を理解するのに役立ちます。テストの過程で何を考慮するべきか、どのように結果を解釈するかを示すことによって、Azure OpenAIの利用者がより効果的に評価を行えるようにサポートします。この変更により、ドキュメントが視覚的に強化され、ユーザーが必要な情報を迅速に把握できるようになることが期待されます。
articles/ai-services/openai/media/how-to/evaluations/text-quality-cosine.png
Summary
{
"modification_type": "new feature",
"modification_title": "テキスト品質に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「テキスト品質」に関連する新しい画像ファイルを追加したことを示しています。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
text-quality-cosine.png
というファイルが追加されており、テキストの品質を評価するためのコサイン類似度に関する情報を視覚的に表現しています。
この画像は、ユーザーがテキストデータの品質を評価する上で重要な指標を理解する助けとなります。コサイン類似度は、テキストデータ間の相関関係や類似性を測るためによく使用される手法であり、その結果を示すことにより、より良いデータ分析やモデルの評価が可能になります。この変更によって、ドキュメントの内容がより充実し、ユーザーがテキスト品質の評価方法を簡単に理解できるようになることが期待されます。
articles/ai-services/openai/media/how-to/evaluations/text-quality-general.png
Summary
{
"modification_type": "new feature",
"modification_title": "一般的なテキスト品質に関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「一般的なテキスト品質」に関連する新しい画像ファイルを追加したことを示しています。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
text-quality-general.png
というファイルが追加されており、テキストの一般的な品質に関する情報を視覚的に示しています。
この画像は、ユーザーがテキストデータの品質評価を行う際に考慮すべき主要な要素や指標を理解するのに役立ちます。一般的なテキスト品質の基準を示すことで、ユーザーが自らのテキストデータを評価したり、モデルのパフォーマンスを推測したりするための参考となります。この変更により、ドキュメントはより包括的になり、ユーザーがテキスト品質をより深く理解できるようになることが期待されます。
articles/ai-services/openai/media/how-to/evaluations/upload.png
Summary
{
"modification_type": "new feature",
"modification_title": "アップロードに関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「アップロード」に関連する新しい画像ファイルを追加したことを示しています。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
upload.png
というファイルが追加されており、テキストやデータをアップロードするプロセスに関する視覚的なガイドを提供しています。
この画像は、ユーザーが書類やデータを正しくアップロードする方法を理解する手助けをすることを目的としています。アップロードプロセスの重要なステップや注意事項を視覚的に示すことで、ユーザーの体験が向上し、手順をスムーズに進めることができるようになります。この変更により、ドキュメントはより実用的な情報を提供するようになり、ユーザーはアップロードの際に必要な情報をより簡単に参照できるようになります。
articles/ai-services/openai/media/how-to/evaluations/valid-json.png
Summary
{
"modification_type": "new feature",
"modification_title": "有効なJSONに関する画像を追加"
}
Explanation
この変更は、Azure OpenAIのドキュメントに「有効なJSON」に関連する新しい画像ファイルを追加したことを示しています。
具体的には、以下の内容が含まれています:
- 新しい画像ファイル:
valid-json.png
というファイルが追加されており、JSONデータが有効であることを確認するための基準や例を視覚的に示しています。
この画像は、ユーザーがJSONデータの正しさを評価し、構文エラーを避けるための参考として利用できるのが目的です。正しいJSONフォーマットや、一般的なエラーを視覚化することで、ユーザーがデータ処理やAPIの利用の際に直面する問題を軽減する助けとなります。この変更により、ドキュメントはより実用的かつ理解しやすくなり、ユーザーが有効なJSONを扱う際の手助けとなることが期待されます。
articles/ai-services/openai/media/how-to/provisioned-onboarding/notifications.png
Summary
{
"modification_type": "minor update",
"modification_title": "通知に関する画像の更新"
}
Explanation
この変更は、Azure OpenAIのドキュメントにおける「プロビジョニング・オンボーディング」に関連する画像ファイルを更新したことを示しています。
具体的には、以下の内容が含まれています:
- 画像ファイルの更新:
notifications.png
というファイルが変更されており、ユーザーへの通知の重要性やそれに関連する手順をより明確に示すために、内容が改善された可能性があります。
この更新により、ユーザーはプロビジョニング・オンボーディングプロセスにおける通知の役割をより理解しやすくなります。通知の更新は、使用中のインターフェースや手順の一部を最新の状況に合わせるために行われており、ユーザーエクスペリエンスの向上が期待されます。この変更により、関連する情報がより視覚的に伝わり、ユーザーが必要なアクションを判断しやすくなることを目的としています。
articles/ai-services/openai/media/how-to/provisioned-onboarding/quota.png
Summary
{
"modification_type": "minor update",
"modification_title": "クォータに関する画像の更新"
}
Explanation
この変更は、Azure OpenAIのドキュメントにおける「プロビジョニング・オンボーディング」に関連するクォータを示す画像ファイルが更新されたことを示しています。
具体的には、以下の内容が含まれています:
- 画像ファイルの更新:
quota.png
というファイルが変更され、クォータの概念やそれに関連する情報をより明確に視覚化するために内容が改善された可能性があります。
この更新により、ユーザーはプロビジョニング・オンボーディングプロセスにおけるリソースの制限や使用量についてより理解しやすくなるでしょう。クォータに関する情報は、特にリソース管理や料金体系の理解に不可欠であり、ユーザーが適切な計画を立てる手助けとなります。この変更により、情報がより視覚的に伝わり、ユーザーが重要なデータを簡単に把握できるようになることを目的としています。
articles/ai-services/openai/media/how-to/real-time/real-time-playground-start-listening.png
Summary
{
"modification_type": "minor update",
"modification_title": "リアルタイムプラットフォームのリスニング開始に関する画像の更新"
}
Explanation
この変更は、Azure OpenAIの「リアルタイム」関連のドキュメントにおいて、リアルタイムプラットフォームでリスニングを開始する方法を示す画像ファイルが更新されたことを示しています。
具体的には、以下の内容が含まれています:
- 画像ファイルの更新:
real-time-playground-start-listening.png
というファイルが改訂されており、ユーザーがリアルタイムプラットフォームの利用を始める際のプロセスや操作手順がより明確に提示されている可能性があります。
この更新により、ユーザーはリアルタイム機能の利用方法を把握しやすくなり、実際の操作においてもスムーズに進められることが期待されます。特に、初めて利用するユーザーにとっては、視覚的なガイダンスが重要であり、これにより使いやすさが向上します。この画像の更新は、より効率的な学習と理解を促進することを目的としています。
articles/ai-services/openai/media/how-to/real-time/real-time-playground.png
Summary
{
"modification_type": "minor update",
"modification_title": "リアルタイムプラットフォームのプレイグラウンドに関する画像の更新"
}
Explanation
この変更は、Azure OpenAIの「リアルタイム」関連のドキュメントにおいて、リアルタイムプラットフォームのプレイグラウンドを示す画像ファイルが更新されたことを示しています。
具体的には、以下の内容が含まれています:
- 画像ファイルの更新:
real-time-playground.png
というファイルが改訂されており、ユーザーがリアルタイム機能のデモやテストを行うためのインターフェースがより明確に視覚化されている可能性があります。
この更新により、ユーザーはリアルタイムプラットフォームの機能を試しやすくなり、操作方法や実際の利用シーンを把握しやすくなります。特に新規ユーザーにとって、視覚的な要素が重要であり、これまで以上に直感的に機能を理解できるようになることが期待されます。この画像の更新は、ユーザーエクスペリエンスの向上を目的としており、リアルタイムプラットフォームの導入を促進する助けとなるでしょう。
articles/ai-services/openai/media/how-to/weights-and-biases/access-control.png
Summary
{
"modification_type": "new feature",
"modification_title": "アクセス制御に関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、新しい画像ファイルが追加されたことを示しています。この画像は、アクセス制御に関する内容を視覚的に表現しています。
具体的には、以下の内容が含まれています:
- 画像ファイルの追加:
access-control.png
という新しいファイルが追加されており、ユーザーがアクセス制御の設定や管理を行う際のインターフェースや手順が示されていると考えられます。
この追加により、ユーザーはアクセス制御の概念とその実装をより直感的に理解できるようになります。特に、難解な設定やプロセスを視覚化することで、ユーザーエクスペリエンスが向上し、適切な設定を迅速に行う手助けとなるでしょう。この画像の導入は、他の関連ドキュメントや操作手順と連携して、体系的にテーマを理解するための重要なリソースとなります。
articles/ai-services/openai/media/how-to/weights-and-biases/assign-access.png
Summary
{
"modification_type": "new feature",
"modification_title": "アクセス割り当てに関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、新しい画像ファイルが追加されたことを示しています。この画像は、アクセスの割り当てに関する内容を視覚的に表現しています。
具体的には、以下の内容が含まれています:
- 画像ファイルの追加:
assign-access.png
という新しいファイルが追加されており、ユーザーがアクセス権を割り当てるプロセスを示す図版として機能します。
この画像の追加により、ユーザーはアクセスの割り当て手順やその方法をより理解しやすくなります。視覚的な情報は特に新規ユーザーにとって重要であり、これまでの文章による説明では伝わりにくかった内容が明確になることで、操作の効率が向上するでしょう。この追加は、ユーザーが具体的な手続きを迅速に把握し、正確に実施できるようサポートすることを目的としています。
articles/ai-services/openai/media/how-to/weights-and-biases/assign.png
Summary
{
"modification_type": "new feature",
"modification_title": "割り当てに関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、新しい画像ファイルが追加されたことを示しています。この画像は、リソースやアクセスを割り当てる際の手順や内容を視覚的に示しています。
具体的には、以下のポイントが含まれています:
- 画像ファイルの追加:
assign.png
という新しいファイルが追加されており、ユーザーがリソースの割り当てを行う際のインターフェースや手順について視覚的なガイダンスを提供します。
この追加により、ユーザーは割り当てプロセスをより簡単に理解できるようになります。特に画像が存在することで、テキストだけでは十分に伝わりにくい部分が明確になり、新しいユーザーでも手順を直感的に実行可能になります。この変更は、ユーザーエクスペリエンスの向上を促進する重要な要素となることを目的としています。
articles/ai-services/openai/media/how-to/weights-and-biases/create-secret.png
Summary
{
"modification_type": "new feature",
"modification_title": "シークレットの作成に関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、「シークレットの作成」に関する新しい画像ファイルが追加されたことを示しています。この画像は、シークレットを作成するプロセスを視覚的に示し、ユーザーの理解を助けるものです。
具体的には、以下の内容が含まれています:
- 画像ファイルの追加:
create-secret.png
という新しいファイルが追加されており、シークレットの作成手順を視覚的にガイドします。これにより、穴埋め手順や設定方法がユーザーにとって分かりやすくなります。
この追加によって、ユーザーはシークレット作成プロセスの各ステップをより容易に理解し、実行できるようになります。視覚的なサポートがあることで、テキストだけでは伝えきれない詳細を把握しやすくなり、新規ユーザーでもスムーズに操作することが可能になるでしょう。全体として、この変更はユーザーエクスペリエンスを向上させるための重要な要素となります。
articles/ai-services/openai/media/how-to/weights-and-biases/dashboards.png
Summary
{
"modification_type": "new feature",
"modification_title": "ダッシュボードに関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、新しい画像ファイルが追加されたことを示しています。この画像は、ダッシュボードのインターフェースや機能を視覚的に示し、ユーザーがシステムをより理解しやすくするためのものです。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
dashboards.png
という新しいファイルが追加されており、ダッシュボードの操作や特徴を視覚的に表現しています。これにより、ユーザーはダッシュボードの使い方や構成を直感的に理解できるようになります。
この追加により、ユーザーの理解が深まり、ダッシュボードを効果的に活用する助けになります。視覚的な資料が存在することで、手順やコンセプトがより明確になり、初心者でも扱いやすくなることが期待されます。この変更は、全体的なユーザーエクスペリエンスの向上に貢献する重要な要素となります。
articles/ai-services/openai/media/how-to/weights-and-biases/integration.png
Summary
{
"modification_type": "new feature",
"modification_title": "統合プロセスに関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、統合プロセスに関する新しい画像ファイルが追加されたことを示しています。この画像は、統合手順やAPIの使用方法を視覚的に表現するもので、ユーザーの理解を助けるために設計されています。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
integration.png
という新しいファイルが追加されており、ユーザーが統合の流れを確認できるようになっています。この視覚資料は、統合手続きや関連する機能の全体像を示し、使用者にとっての利便性が向上します。
この追加によって、ユーザーは統合手順を直感的に理解でき、従来のテキスト情報だけでは得られない具体性を得ることができます。新しい画像の提供は、特に初心者にとって、手順の実行を容易にし、知識を深めるうえで非常に重要です。この変更は、ユーザーエクスペリエンスの強化に寄与する重要な要素となるでしょう。
articles/ai-services/openai/media/how-to/weights-and-biases/key-vault-secret-officer.png
Summary
{
"modification_type": "new feature",
"modification_title": "Key Vaultに関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、Key Vaultに関する新しい画像ファイルが追加されたことを示しています。この画像は、Key Vaultの利用方法やセキュリティに関する情報を視覚的に示すもので、ユーザーの理解を促進するためにデザインされています。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
key-vault-secret-officer.png
という新しいファイルが追加されており、Key Vaultの設定やシークレット管理のプロセスを視覚的に表現しています。このビジュアル資料は、ユーザーが設定手順や機能を理解する際に非常に役立ちます。
この追加により、ユーザーはKey Vaultを使用する際の手順をより明確に把握でき、視覚的な支援によって理解を深めることができます。新しい画像が提供されることで、特に初心者ユーザーにとっては、Key Vaultを効果的に活用するための手助けが強化されるでしょう。この変更は、全体的なユーザーエクスペリエンスの向上に貢献する重要な要素となります。
articles/ai-services/openai/media/how-to/weights-and-biases/manage-integrations.png
Summary
{
"modification_type": "new feature",
"modification_title": "統合管理に関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関するドキュメントにおいて、統合管理に関連する新しい画像ファイルが追加されたことを示しています。この画像は、統合の管理手順や設定方法を視覚的に説明するもので、ユーザーの理解を促進するための重要なリソースとなります。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
manage-integrations.png
という新しいファイルが追加され、統合の管理に関する手続きを視覚的に補足しています。このビジュアルは、ユーザーが統合されたサービスを効果的に管理する方法を理解する手助けとなります。
新しい画像の提供により、特に初心者や新しいユーザーにとって、統合管理のプロセスがより直感的に理解しやすくなります。この変更は、全体的なユーザーエクスペリエンスを向上させるものであり、具体的な操作手順を視覚的に示すことによって、ユーザーが必要な情報を効率的に取得できるよう支援します。
articles/ai-services/openai/media/how-to/weights-and-biases/reveal-key.png
Summary
{
"modification_type": "new feature",
"modification_title": "キーの表示に関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関連するドキュメントにおいて、キーの表示に関する新しい画像ファイルが追加されたことを示しています。この画像は、ユーザーがキー情報を表示する手順を視覚的に理解するための資料です。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
reveal-key.png
という新しいファイルが追加され、キーを表示する方法の手順や注意点を視覚的に解説しています。このビジュアルは、特に初心者ユーザーが必要な情報を素早く取得し、設定を行う際の理解を助ける役割を果たします。
新しい画像は、ユーザーがキーの取り扱いや設定を正しく行うための支援材料として機能します。これにより、ユーザーエクスペリエンスが向上し、特に操作が初めてのユーザーにとっては、キーを安全かつ正確に管理できるようになることが期待されます。この変更は、全体的なドキュメントの有用性を高める重要な要素となります。
articles/ai-services/openai/media/how-to/weights-and-biases/role-based-access-control.png
Summary
{
"modification_type": "new feature",
"modification_title": "ロールベースのアクセス制御に関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関するドキュメントにおいて、ロールベースのアクセス制御(RBAC)に関する新しい画像ファイルが追加されたことを示しています。この画像は、ユーザーがアクセス制御の設定を理解しやすくするための視覚的資料です。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
role-based-access-control.png
という新しいファイルが追加され、アクセス制御の概念、特にロールベースの設定プロセスを視覚的に説明しています。このビジュアルは、ユーザーが異なる役割に基づいてアクセス権を管理するための手順を理解する助けとなるでしょう。
この画像の追加により、関連する設定や操作手順が明確に示され、特に新規ユーザーがRBACシステムを効果的に利用できるようになることが期待されます。この変更は、ドキュメントの全体的な有用性を高め、ユーザーがアクセス制御を適切に設定できるよう支援する重要な要素となります。
articles/ai-services/openai/media/how-to/weights-and-biases/secrets.png
Summary
{
"modification_type": "new feature",
"modification_title": "シークレットに関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関するドキュメントにおいて、シークレットに関する新しい画像ファイルが追加されたことを示しています。この画像は、ユーザーがシークレット情報の管理を理解しやすくするための視覚的な補助資料です。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
secrets.png
という新しいファイルが追加され、シークレット情報の取り扱いや管理方法を視覚的に説明しています。このビジュアルは、ユーザーが重要なシークレット情報をどのように適切に扱うかを理解するのに役立つでしょう。
この画像の追加により、シークレット管理の重要な概念が明確に示され、特に初心者ユーザーが安全にシークレットを管理できるようになることが期待されます。この変更は、関連するドキュメントの有用性を高め、ユーザーがシークレット情報を効果的に取り扱うための支援を提供する重要な要素となります。
articles/ai-services/openai/media/how-to/weights-and-biases/system-managed.png
Summary
{
"modification_type": "new feature",
"modification_title": "システム管理に関する新しい画像の追加"
}
Explanation
この変更は、Azure OpenAIの「Weights and Biases」に関するドキュメントにおいて、システム管理に関する新しい画像ファイルが追加されたことを示しています。この画像は、システムによって管理される機能や設定について、ユーザーが理解しやすくするための視覚的資料です。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
system-managed.png
という新しいファイルが追加され、システム管理の概念やその操作方法を視覚的に説明しています。このビジュアルは、ユーザーがどのようにシステム管理機能を利用して自分の作業を最適化できるのかを理解する手助けとなります。
この画像の追加により、システム管理に関連する重要な情報が明確に示され、特に初心者ユーザーがシステム管理機能を効果的に利用できるようになることが期待されます。この変更は、関連するドキュメントの質を向上させ、ユーザーがシステムの管理を適切に行うための支援を提供する重要な要素となります。
articles/ai-services/openai/media/provisioned/available-quota.png
Summary
{
"modification_type": "minor update",
"modification_title": "利用可能なクオータに関する画像の修正"
}
Explanation
この変更は、Azure OpenAIの「Provisioned」セクションにおける「利用可能なクオータ」に関する画像ファイルが修正されたことを示しています。この修正により、画像の内容が最新の情報を反映するようになり、ユーザーがより正確な理解を得られるようになります。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
available-quota.png
ファイルが変更され、この画像がユーザーに提供する情報の正確性と関連性が向上しました。具体的な修正内容は公開されている情報からは確認できませんが、利用可能なクオータの表示方法や関連データが最新のものに更新されていると考えられます。
このような修正は、関連するドキュメント全体の質を向上させ、特にユーザーがリソースの使用状況を正確に把握し、適切なリソース管理を行う際に重要です。ユーザーにとって有益な情報を常に反映させることで、より良い使用経験を提供することが期待されます。
articles/ai-services/openai/media/provisioned/quota-request-type.png
Summary
{
"modification_type": "minor update",
"modification_title": "クオータリクエストタイプに関する画像の修正"
}
Explanation
この変更は、Azure OpenAIの「Provisioned」セクション内の「クオータリクエストタイプ」に関する画像ファイルが修正されたことを示しています。これにより、ユーザーに提供される情報が最新で正確なものとなり、リクエストタイプの理解が向上します。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
quota-request-type.png
ファイルが更新され、ユーザーに対してクオータリクエストのさまざまなタイプについての情報をより明確に伝えるよう改良されています。具体的な修正点は公開情報からは確認できませんが、リクエストタイプの表示内容や視覚的な要素が改善されている可能性があります。
この変更は、ユーザーがクオータリクエストに関する正確な情報を把握し、適切に利用できるようにするための重要なステップです。情報の更新を行うことで、技術文書の質を向上させ、ユーザーがシステムを効果的に活用できるよう支援することが期待されています。
articles/ai-services/openai/media/quickstarts/assistant-configuration.png
Summary
{
"modification_type": "minor update",
"modification_title": "アシスタント設定に関する画像の修正"
}
Explanation
この変更は、Azure OpenAIの「クイックスタート」セクションにおける「アシスタント設定」に関する画像ファイルが修正されたことを意味します。これにより、アシスタント設定の手順や特性がより明確に伝わるようになります。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
assistant-configuration.png
ファイルが更新され、アシスタントの設定に関連する情報が最新のものに調整されています。この修正により、ユーザーがアシスタントの構成プロセスを理解しやすくなることが期待されます。具体的な修正点は公開されている情報からは確認できませんが、視覚的な要素や情報の表示方法が改善されたと考えられます。
この修正は、ユーザーがAzure OpenAIを使用する際に、アシスタントの設定を適切に行う手助けとなるため、ユーザーエクスペリエンスの向上に貢献するでしょう。正確で理解しやすい情報を提供することは、ユーザーが効果的にツールを活用するために非常に重要です。
articles/ai-services/openai/media/quickstarts/assistants-ai-studio-playground.png
Summary
{
"modification_type": "minor update",
"modification_title": "AIスタジオプレイグラウンドに関する画像の修正"
}
Explanation
この変更は、Azure OpenAIの「クイックスタート」セクションにおける「アシスタントのAIスタジオプレイグラウンド」に関連する画像ファイルが修正されたことを示しています。この修正により、AIスタジオプレイグラウンドの使用方法や機能に関する情報がより効果的に伝わるようになります。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
assistants-ai-studio-playground.png
ファイルが更新され、AIスタジオプレイグラウンドのインターフェースや操作方法に関する最新の情報を反映するように変更されています。具体的な修正内容は不明ですが、視覚的な改善や新たに追加された機能を強調するための更新が行われた可能性があります。
この修正は、ユーザーがAzure OpenAIのAIスタジオプレイグラウンドを利用する際に、より直感的に使用できるよう支援することが期待されます。正確で分かりやすい情報を提供することは、ユーザーが新しい技術を容易に扱えるようにするために重要です。
articles/ai-services/openai/media/quickstarts/chat-playground-new.png
Summary
{
"modification_type": "minor update",
"modification_title": "チャットプレイグラウンドに関する画像の修正"
}
Explanation
この変更は、Azure OpenAIの「クイックスタート」セクションにおける「チャットプレイグラウンド」に関連する画像ファイルが修正されたことを示しています。この修正により、チャットプレイグラウンドの機能や使い方の理解が深まることが期待されます。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
chat-playground-new.png
ファイルが更新され、チャットプレイグラウンドのインターフェースや機能に関する最新の情報が反映されています。具体的な修正内容については示されていませんが、新しい機能の紹介や、操作方法の改善が図られた可能性があります。
この修正は、ユーザーがAzure OpenAIのチャットプレイグラウンドを利用する際に、より直感的に理解できるよう支援するためのものです。視覚的な情報の更新は、ツールの理解を助け、ユーザーエクスペリエンスを向上させるために非常に重要です。
articles/ai-services/openai/media/use-your-data/ai-studio-homepage.png
Summary
{
"modification_type": "new feature",
"modification_title": "AIスタジオのホームページ画像の追加"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、新たに「AIスタジオのホームページ」を示す画像ファイルが追加されたことを示しています。この新しい画像は、ユーザーがAIスタジオの機能やインターフェースを視覚的に理解するのに役立つことが期待されます。
具体的な内容は以下の通りです:
- 画像ファイルの追加:
ai-studio-homepage.png
という新しい画像ファイルが追加され、AIスタジオのホームページのレイアウトや主要機能が視覚的に表現されています。この画像は、ユーザーがAIスタジオの使用を開始する際の参考資料として機能し、インターフェースの理解を深めるのに貢献するでしょう。
新しい画像を通じて、ユーザーはもしかしたら、よりスムーズにAIスタジオを利用し、データを効果的に活用するための道筋を見出すことができるかもしれません。この変更は、ユーザーエクスペリエンスの向上に寄与する重要な更新です。
articles/ai-services/openai/media/use-your-data/bring-your-data-card-new.png
Summary
{
"modification_type": "breaking change",
"modification_title": "データカード画像の削除"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、「データを持ち込むカード」を示す画像ファイルが削除されたことを示しています。この変更は、ドキュメントの内容や構成に影響を与える重要な更新です。
具体的な内容は以下の通りです:
- 画像ファイルの削除:
bring-your-data-card-new.png
という画像が削除されました。この画像は、ユーザーがデータを持ち込む際の手順やガイダンスを視覚的に示しており、この削除により、ユーザーはその関連情報にアクセスできなくなります。
この削除は、情報の整理や最新の内容への更新の一環かもしれませんが、ユーザーにとっては重要な情報源が失われることを意味します。今後、同様の情報を提供する新しいビジュアルや文書が追加されることが促されるかもしれませんが、現段階ではこの削除により理解が難しくなる可能性があります。
articles/ai-services/openai/media/use-your-data/chat-playground.png
Summary
{
"modification_type": "minor update",
"modification_title": "チャットプレイグラウンドの画像の修正"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、「チャットプレイグラウンド」を示す画像ファイルが修正されたことを示しています。この更新は、ユーザーの視覚的理解を助けるための重要な改善と見なされます。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
chat-playground.png
という画像が修正されました。この画像は、チャットプレイグラウンドのインターフェースや機能を視覚的に示しており、修正されたことで、より正確または視覚的にわかりやすい情報が提供されることが期待されます。
この修正により、ユーザーはチャットプレイグラウンドの使用方法や機能について、より効果的に理解できるようになる可能性があります。ユーザーがインタラクティブなAI体験を利用する際に、視覚的に分かりやすい情報が重要であるため、この更新はユーザーエクスペリエンスの向上を促進する一助となるでしょう。
articles/ai-services/openai/media/use-your-data/deploy-model.png
Summary
{
"modification_type": "minor update",
"modification_title": "モデル展開の画像の修正"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、「モデル展開」を示す画像ファイルが修正されたことを示しています。この更新は、ドキュメント内の視覚的な説明を改善するための重要なステップと位置付けられます。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
deploy-model.png
という画像が修正されました。この画像は、AIモデルの展開プロセスを示すものであり、修正後は、より正確かつ関連性のある情報を提供できる可能性があります。
この修正により、ユーザーはモデルの展開に関する手順やその重要性について、より深く理解することができるでしょう。視覚的にわかりやすい資料は、特に技術的な内容を扱う際に効果的であり、ユーザーがAI技術を活用するための理解を助けることに寄与します。
articles/ai-services/openai/media/use-your-data/enable-chat-history.png
Summary
{
"modification_type": "minor update",
"modification_title": "チャット履歴有効化の画像の修正"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、チャット履歴の有効化を示す画像ファイルが修正されたことを示しています。この更新は、ユーザーがチャット履歴の機能を理解するための資料を改善することを目的としています。
具体的な内容は以下の通りです:
- 画像ファイルの修正:
enable-chat-history.png
という画像が修正されました。この画像は、ユーザーがチャット履歴機能をどのように有効にするかを説明するもので、修正によってその内容がより明確に、または正確になったと考えられます。
この修正により、ユーザーはチャット履歴の有効化手順について、より理解を深めることができるでしょう。視覚的な情報は、特に技術的なプロセスにおいて、多くのユーザーにとって理解の助けとなるため、手順の明確さを向上させることが期待されます。
articles/ai-services/openai/media/use-your-data/mongo-db-atlas-connection.png
Summary
{
"modification_type": "new feature",
"modification_title": "MongoDB Atlas接続の画像の追加"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、新たにMongoDB Atlasへの接続を示す画像ファイルが追加されたことを示しています。この追加は、ユーザーがMongoDB AtlasとOpenAIをどのように連携させるかを視覚的に理解するために役立ちます。
具体的な内容は以下の通りです:
- 新しい画像ファイルの追加:
mongo-db-atlas-connection.png
という画像が新たに追加されました。この画像は、MongoDB AtlasとOpenAIの接続方法を示すもので、ユーザーがデータベースとのインターフェースを確立する際の手助けとなります。
この変更により、ユーザーはOpenAIのサービスを利用する際に、MongoDB Atlasとの接続プロセスについて視覚的な手引きを得ることができるようになります。追加されたビジュアル要素は、技術的な手順を円滑に進めるための重要なリソースとなり、ユーザーエクスペリエンスを向上させることが期待されます。
articles/ai-services/openai/media/use-your-data/mongo-db-atlas-field-mapping.png
Summary
{
"modification_type": "new feature",
"modification_title": "MongoDB Atlasフィールドマッピングの画像の追加"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、新たにMongoDB Atlasのフィールドマッピングを示す画像ファイルが追加されたことを示しています。この新しい画像は、ユーザーがデータフィールドをどのようにマッピングするかを視覚的に理解するために役立ちます。
具体的な内容は以下の通りです:
- 新しい画像ファイルの追加:
mongo-db-atlas-field-mapping.png
という画像が新たに追加されました。この画像は、MongoDB Atlasを使用する際のフィールドマッピングの手順を示しており、ユーザーがデータ構造を理解する手助けをすることを目的としています。
この変更により、ユーザーはMongoDB AtlasのデータフィールドをOpenAIと適切に連携させるための視覚的なリソースを得ることができるようになります。新しく追加されたビジュアルは、手順を容易にし、技術的な理解を深めるための重要な要素となるでしょう。
articles/ai-services/openai/media/use-your-data/mongo-db-atlas-source-index.png
Summary
{
"modification_type": "new feature",
"modification_title": "MongoDB Atlasソースインデックスの画像の追加"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、新たにMongoDB Atlasのソースインデックスを示す画像ファイルが追加されたことを示しています。この新しい画像は、ユーザーがMongoDB Atlas内のデータソースのインデックスを視覚的に理解するための助けとなります。
具体的な内容は以下の通りです:
- 新しい画像ファイルの追加:
mongo-db-atlas-source-index.png
という画像が新たに追加されました。この画像は、MongoDB Atlasを使用した際のデータソースのインデックス作成の手順やプロセスを示しており、ユーザーが効率的にデータを管理・操作するための参考資料となります。
この変更によって、ユーザーはMongoDB Atlasでのデータソースインデックスの構造と活用方法について、より直感的に理解できるようになります。追加された視覚的資料は、実務でのデータ処理を助け、技術的な作業をスムーズに進めるための重要なリソースになると考えられます。
articles/ai-services/openai/media/use-your-data/mongo-db-network-access.png
Summary
{
"modification_type": "new feature",
"modification_title": "MongoDBのネットワークアクセスの画像の追加"
}
Explanation
この変更は、Azure OpenAIの「データを使用する」セクションにおいて、新たにMongoDBのネットワークアクセスに関する画像ファイルが追加されたことを示しています。この新しい画像は、MongoDBへのネットワークアクセスの設定や手順を視覚的に示すものです。
具体的な内容は以下の通りです:
- 新しい画像ファイルの追加:
mongo-db-network-access.png
という画像が新たに追加されました。この画像は、ユーザーがMongoDBにアクセスするためのネットワーク設定を理解しやすくするために役立ちます。
この変更により、ユーザーはMongoDBへのネットワーク接続の構成方法や必要な設定を迅速に把握できるようになります。新しく追加されたビジュアルは、技術的な操作の理解を助け、データベースを安全かつ効率的に利用するための重要なリソースとなるでしょう。
articles/ai-services/openai/realtime-audio-quickstart.md
Diff
@@ -44,18 +44,14 @@ Support for the Realtime API was first added in API version `2024-10-01-preview`
Before you can use GPT-4o real-time audio, you need a deployment of the `gpt-4o-realtime-preview` model in a supported region as described in the [supported models](#supported-models) section.
-You can deploy the model from the [Azure AI Studio model catalog](../../ai-studio/how-to/model-catalog-overview.md) or from your project in AI Studio. Follow these steps to deploy a `gpt-4o-realtime-preview` model from the model catalog:
+1. Go to the [AI Studio home page](https://ai.azure.com) and make sure you're signed in with the Azure subscription that has your Azure OpenAI Service resource (with or without model deployments.)
+1. Select the **Real-time audio** playground from under **Resource playground** in the left pane.
+1. Select **+ Create a deployment** to open the deployment window.
+1. Search for and select the `gpt-4o-realtime-preview` model and then select **Confirm**.
+1. In the deployment wizard, make sure to select the `2024-10-01` model version.
+1. Follow the wizard to deploy the model.
-1. Sign in to [AI Studio](https://ai.azure.com) and go to the **Home** page.
-1. Select **Model catalog** from the left sidebar.
-1. Search for and select the `gpt-4o-realtime-preview` model from the Azure OpenAI collection.
-1. Select **Deploy** to open the deployment window.
-1. Enter a deployment name and select an Azure OpenAI resource.
-1. Select `2024-10-01` from the **Model version** dropdown.
-1. Modify other default settings depending on your requirements.
-1. Select **Deploy**. You land on the deployment details page.
-
-Now that you have a deployment of the `gpt-4o-realtime-preview` model, you can use the AI Studio **Real-time audio** playground or Realtime API to interact with it in real time.
+Now that you have a deployment of the `gpt-4o-realtime-preview` model, you can interact with it in real time in the AI Studio **Real-time audio** playground or Realtime API.
## Use the GPT-4o real-time audio
@@ -66,8 +62,8 @@ Now that you have a deployment of the `gpt-4o-realtime-preview` model, you can u
To chat with your deployed `gpt-4o-realtime-preview` model in the [Azure AI Studio](https://ai.azure.com) **Real-time audio** playground, follow these steps:
-1. Go to your project in [Azure AI Studio](https://ai.azure.com).
-1. Select **Playgrounds** > **Real-time audio** from the left pane.
+1. the [Azure OpenAI Service page](https://ai.azure.com/resource/overview) in AI Studio. Make sure you're signed in with the Azure subscription that has your Azure OpenAI Service resource and the deployed `gpt-4o-realtime-preview` model.
+1. Select the **Real-time audio** playground from under **Resource playground** in the left pane.
1. Select your deployed `gpt-4o-realtime-preview` model from the **Deployment** dropdown.
1. Select **Enable microphone** to allow the browser to access your microphone. If you already granted permission, you can skip this step.
Summary
{
"modification_type": "minor update",
"modification_title": "リアルタイムオーディオクイックスタートの手順の更新"
}
Explanation
この変更は、Azure OpenAIの「リアルタイムオーディオクイックスタート」文書内において、手順と説明の一部が更新されたことを示しています。具体的には、gpt-4o-realtime-preview
モデルのデプロイおよび使用に関する指示が明確に整理され、ユーザーにとってよりわかりやすくなっています。
具体的な更新内容は以下の通りです:
手順の整頓: モデルをデプロイするための手順が新しい形式で再構成され、番号付きリストが使用されるようになりました。これにより、各ステップが明確になり、ユーザーが順を追って行動しやすくなっています。
重要なリンクの強調: AI Studioのホームページへのリンクが追加され、ユーザーが必要なリソースにより迅速にアクセスできるようになっています。また、AI Studioのリアルタイムオーディオプレイグラウンドを利用する際の準備手順も強調されています。
言い回しの改善: 一部の文が簡潔にされ、表現が洗練されました。たとえば、モデルデプロイ後の操作に関する文が効率的になります。
この更新により、ユーザーはリアルタイムオーディオ機能をより迅速かつ効果的に利用できるようになり、検索や操作に関しての混乱を避けることが可能となります。
articles/ai-services/openai/references/mongo-db.md
Diff
@@ -0,0 +1,210 @@
+---
+title: Azure OpenAI on your Mongo DB Atlas data Python & REST API reference
+titleSuffix: Azure OpenAI
+description: Learn how to use Azure OpenAI on your Mongo DB Atlas data with Python & REST API.
+manager: nitinme
+ms.service: azure-ai-openai
+ms.topic: conceptual
+ms.date: 10/25/2024
+author: aahill
+ms.author: aahi
+recommendations: false
+ms.custom: devx-track-python
+---
+
+# Data source - Mongo DB Atlas
+
+The configurable options of Mongo DB Atlas when using Azure OpenAI On Your Data. This data source is supported starting in API version `2024-08-01`.
+
+
+|Name | Type | Required | Description |
+|--- | --- | --- | --- |
+|`parameters`| [Parameters](#parameters)| True| The parameters to use when configuring Mongo DB Atlas.|
+| `type`| string| True | Must be `mongo_db`. |
+
+## Parameters
+
+|Name | Type | Required | Description |
+|--- | --- | --- | --- |
+| `authentication` | object | True | The [authentication options](#authentication) for Azure OpenAI On Your Data when using a username and a password. |
+| `app_name` | string | True | The name of the Mongo DB Atlas Application. |
+| `collection_name` | string | True | The name of the Mongo DB Atlas Collection. |
+| `database_name` | string | True | The name of the Mongo DB Atlas database. |
+| `endpoint` | string | True | The name of the Mongo DB Atlas cluster endpoint. |
+| `embedding_dependency` | One of [DeploymentNameVectorizationSource](#deployment-name-vectorization-source), [EndpointVectorizationSource](#endpoint-vectorization-source) | True | The embedding dependency for vector search.|
+| `fields_mapping` | object | True | [Settings](#field-mapping-options) to control how fields are processed when using a configured Mongo DB Atlas resource. |
+| `index_name` | string | True | The name of the Mongo DB Atlas index.|
+| `top_n_documents` | integer | False | The configured top number of documents to feature for the configured query.|
+| `max_search_queries` | integer | False | The max number of rewritten queries should be sent to search provider for one user message. If not specified, the system will decide the number of queries to send.|
+| `allow_partial_result` | boolean | False | If specified as true, the system will allow partial search results to be used and the request fails if all the queries fail. If not specified, or specified as false, the request will fail if any search query fails.|
+| `in_scope` | boolean | False | Whether queries should be restricted to use indexed data. |
+| `strictness` | integer | False | The configured strictness of the search relevance filtering, from 1 to 5. The higher the strictness, the higher precision but lower recall of the answer. |
+| `include_contexts` | array | False | The included properties of the output context. If not specified, the default value is `citations` and `intent`. Valid properties are `all_retrieved_documents`, `citations` and `intent`. |
+
+## Authentication
+
+The authentication options for Azure OpenAI On Your Data when using a username and a password.
+
+|Name | Type | Required | Description |
+|--- | --- | --- | --- |
+| `type` | string | True | Must be `username_and_password`. |
+| `username` | string | True | The username to use for authentication. |
+| `password` | string | True | The password to use for authentication. |
+
+## Deployment name vectorization source
+
+The details of the vectorization source, used by Azure OpenAI On Your Data when applying vector search. This vectorization source is based on an internal embeddings model deployment name in the same Azure OpenAI resource. This vectorization source enables you to use vector search without Azure OpenAI api-key and without Azure OpenAI public network access.
+
+|Name | Type | Required | Description |
+|--- | --- | --- | --- |
+| `deployment_name`|string|True|The embedding model deployment name within the same Azure OpenAI resource. |
+| `type`|string|True| Must be `deployment_name`.|
+
+## Endpoint vectorization source
+
+The details of the vectorization source, used by Azure OpenAI On Your Data when applying vector search. This vectorization source is based on the Azure OpenAI embedding API endpoint.
+
+|Name | Type | Required | Description |
+|--- | --- | --- | --- |
+| `endpoint`|string|True|Specifies the resource endpoint URL from which embeddings should be retrieved. It should be in the format of `https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings`. The api-version query parameter isn't allowed.|
+| `authentication`| [ApiKeyAuthenticationOptions](#authentication)|True | Specifies the authentication options to use when retrieving embeddings from the specified endpoint.|
+| `type`|string|True| Must be `endpoint`.|
+
+## Field mapping options
+
+Optional settings to control how fields are processed when using a configured Mongo DB Atlas resource.
+
+|Name | Type | Required | Description |
+|--- | --- | --- | --- |
+| `content_fields`|string[] |True| The names of index fields that should be treated as content. |
+| `vector_fields`|string[] |True| The names of fields that represent vector data. |
+| `title_field`|string |False | The name of the index field to use as a title. |
+| `url_field`|string |False | The name of the index field to use as a URL. |
+| `filepath_field`|string |False | The name of the index field to use as a filepath. |
+| `content_fields_separator` | string | False | The separator pattern that content fields should use.|
+
+## Examples
+
+
+# [Python 1.x](#tab/python)
+
+Install the latest pip packages `openai`, `azure-identity`.
+
+```python
+import os
+from openai import AzureOpenAI
+from azure.identity import DefaultAzureCredential, get_bearer_token_provider
+
+endpoint = os.environ.get("AzureOpenAIEndpoint")
+deployment = os.environ.get("ChatCompletionsDeploymentName")
+index_name = os.environ.get("IndexName")
+key = os.environ.get("Key")
+embedding_name = os.environ.get("EmbeddingName")
+embedding_type = os.environ.get("EmbeddingType")
+
+# Additional variables for Mongo DB Atlas
+mongo_db_username = os.environ.get("MongoDBUsername")
+mongo_db_password = os.environ.get("MongoDBPassword")
+mongo_db_endpoint = os.environ.get("MongoDBEndpoint")
+mongo_db_app_name = os.environ.get("MongoDBAppName")
+mongo_db_database_name = os.environ.get("MongoDBName")
+mongo_db_collection = os.environ.get("MongoDBCollection")
+mongo_db_index = os.environ.get("MongoDBIndex")
+
+token_provider = get_bearer_token_provider(
+ DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
+
+client = AzureOpenAI(
+ azure_endpoint=endpoint,
+ azure_ad_token_provider=token_provider,
+ api_version="2024-05-01-preview",
+)
+
+completion = client.chat.completions.create(
+ model=deployment,
+ messages=[
+ {
+ "role": "user",
+ "content": "Who is DRI?",
+ },
+ ],
+ extra_body={
+ "data_sources": [
+ {
+ "type": "mongo_db",
+ "parameters": {
+ "authentication": {
+ "type": "username_and_password",
+ "username": mongo_db_username,
+ "password": mongo_db_password
+ },
+ "endpoint": mongo_db_endpoint,
+ "app_name": mongo_db_app_name,
+ "database_name": mongo_db_database_name,
+ "collection_name": mongo_db_collection,
+ "index_name": mongo_db_index,
+ "embedding_dependency": {
+ "type": embedding_type,
+ "deployment_name": embedding_name
+ },
+ "fields_mapping": {
+ "content_fields": [
+ "content"
+ ],
+ "vector_fields": [
+ "contentvector"
+ ]
+ }
+ }
+ }
+ ]
+ }
+)
+
+print(completion.model_dump_json(indent=2))
+
+```
+
+# [REST](#tab/rest)
+
+```bash
+az rest --method POST \
+ --uri $AzureOpenAIEndpoint/openai/deployments/$ChatCompletionsDeploymentName/chat/completions?api-version=2024-05-01-preview \
+ --resource https://cognitiveservices.azure.com/ \
+ --body \
+'
+{
+ "data_sources": [
+ {
+ "type": "mongo_db",
+ "parameters": {
+ "authentication": {
+ "type": "username_and_password",
+ "username": "<username>",
+ "password": "<password>"
+ },
+ "endpoint": "<endpoint_name>",
+ "app_name": "<application name>",
+ "database_name": "sampledb",
+ "collection_name": "samplecollection",
+ "index_name": "sampleindex",
+ "embedding_dependency": {
+ "type": "deployment_name",
+ "deployment_name": "{embedding deployment name}"
+ },
+ "fields_mapping": {
+ "content_fields": [
+ "content"
+ ],
+ "vector_fields": [
+ "contentvector"
+ ]
+ }
+ }
+ }
+ ]
+}
+'
+```
+
+---
Summary
{
"modification_type": "new feature",
"modification_title": "MongoDB Atlasとの統合に関するリファレンス文書の追加"
}
Explanation
この変更は、Azure OpenAIとMongoDB Atlasデータを統合するための新しいリファレンス文書を追加したことを意味します。この文書には、PythonおよびREST APIを利用してMongoDB AtlasのデータをAzure OpenAIに接続する方法について詳細な情報が含まれています。
具体的な内容は以下の通りです:
新しい文書のタイトル: 「Azure OpenAI on your Mongo DB Atlas data Python & REST API reference」というタイトルが付けられており、文書の目的が明確にされています。
基本設定: MongoDB Atlasを使用する際の構成可能なオプションや必要なパラメータが詳細に説明されています。特に、APIのバージョン2024-08-01
からMongoDB Atlasがサポートされることが記されています。
パラメータ情報: 各種パラメータに関するテーブルが提供されており、必要な情報とそれに対する型、必須かどうかなどが整理されています。これにより、ユーザーは設定時の混乱を避けることができます。
認証方法の説明: ユーザー名とパスワードを使用した認証に関する詳細情報が追加されており、安全にデータにアクセスするための手順が解説されています。
コードの例: PythonとREST APIでの実装例が具体的に示されており、ユーザーが実際にこれらのAPIをどのように利用できるかを理解しやすくなっています。セットアップ手続きから呼び出しまでの完全なフローが示されています。
この新しいリファレンス文書の追加により、ユーザーはMongoDB AtlasとAzure OpenAIを統合し、データの操作や分析を効率的に行うための具体的な手順を得ることができるようになります。
articles/ai-services/openai/supported-languages.md
Diff
@@ -7,25 +7,43 @@ manager: nitinme
ms.service: azure-ai-openai
ms.custom:
ms.topic: conceptual
-ms.date: 09/05/2024
+ms.date: 11/18/2024
ms.author: mbullwin
+zone_pivot_groups: openai-supported-languages
---
# Azure OpenAI supported programming languages
-Azure OpenAI supports the following programming languages.
+::: zone pivot="programming-language-dotnet"
-## Programming languages
+[!INCLUDE [C#](./includes/language-overview/dotnet.md)]
-| Language | Source code | Package | Examples |
-|------------|---------|-----|-------|
-| C# | [Source code](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/openai/Azure.AI.OpenAI) | [Package (NuGet)](https://www.nuget.org/packages/Azure.AI.OpenAI/) | [C# examples](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/openai/Azure.AI.OpenAI/tests/Samples) |
-| Go | [Source code](https://github.com/Azure/azure-sdk-for-go/tree/main/sdk/ai/azopenai) | [Package (Go)](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai)| [Go examples](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai#pkg-examples) |
-| Java | [Source code](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/openai/azure-ai-openai) | [Artifact (Maven)](https://central.sonatype.com/artifact/com.azure/azure-ai-openai/) | [Java examples](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/openai/azure-ai-openai/src/samples) |
-| JavaScript | [Source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/openai/openai) | [Package (npm)](https://www.npmjs.com/package/@azure/openai) | [JavaScript examples](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/openai/openai/samples/) |
-| Python | [Source code](https://github.com/openai/openai-python) | [Package (PyPi)](https://pypi.org/project/openai/) | [Python examples](./how-to/switching-endpoints.yml) |
+::: zone-end
+
+::: zone pivot="programming-language-go"
+
+[!INCLUDE [Go](./includes/language-overview/go.md)]
+
+::: zone-end
+
+::: zone pivot="programming-language-java"
+
+[!INCLUDE [Java](./includes/language-overview/java.md)]
+
+::: zone-end
+
+::: zone pivot="programming-language-javascript"
+
+[!INCLUDE [JavaScript](./includes/language-overview/javascript.md)]
+
+::: zone-end
+
+::: zone pivot="programming-language-python"
+
+[!INCLUDE [Python](./includes/language-overview/python.md)]
+
+::: zone-end
## Next steps
-- Explore each programming language in our step-by-step [quickstarts](./chatgpt-quickstart.md)
- To see what models are currently supported, check out the [Azure OpenAI models page](./concepts/models.md)
Summary
{
"modification_type": "minor update",
"modification_title": "Azure OpenAIのサポートされるプログラミング言語の更新"
}
Explanation
この変更は、Azure OpenAIのサポートされるプログラミング言語に関する文書に対する更新を示しています。具体的には、言語情報の見せ方が改善され、包括的な言語オーバービューが追加されています。
具体的な変更内容は以下の通りです:
日付の更新: 文書の日付が「09/05/2024」から「11/18/2024」に変更され、最新の情報であることを反映しています。
言語のピボットグループ化: 各プログラミング言語について、それぞれの要素を区切って表示するために、新しく「zone pivot」機能が導入されました。これにより、各言語に関する情報が視覚的に整理され、ナビゲーションが向上しています。
言語概要のインクルード: 各プログラミング言語の詳細な概要が「[!INCLUDE]」構文を使って追加され、各々の言語に関する説明や関連リンクが効果的に組み込まれています。これにより、ユーザーは必要な情報を迅速に得ることができるようになりました。
テーブル形式の整備: サポートされているプログラミング言語の情報が表形式で整理され、言語名、ソースコード、パッケージ、例が明確に表示されています。これにより、どの言語がサポートされているかが一目でわかります。
次のステップの明記: 結論部分には、クイックスタートやモデルの確認リンクが明示され、ユーザーが次に行うべきアクションを理解しやすくしています。
この更新によって、Azure OpenAIを使用する際のプログラミング言語に関する情報が一層明確かつアクセスしやすくなっています。ユーザーは特定の言語を利用する際のリソースやサポートを容易に見つけることができるようになります。
articles/ai-services/openai/toc.yml
Diff
@@ -158,6 +158,8 @@ items:
href: ./how-to/embeddings.md
- name: Getting started with embeddings
href: ./tutorials/embeddings.md
+ - name: Evaluation
+ href: ./how-to/evaluations.md
- name: Fine-tuning
items:
- name: Fine-tuning your model
@@ -166,6 +168,8 @@ items:
- name: Function calling
href: ./how-to/fine-tuning-functions.md
displayName: fine-tuning, finetuning
+ - name: Weights & Biases integration (preview)
+ href: ./how-to/weights-and-biases-integration.md
- name: Use your data
items:
- name: Text data
@@ -183,6 +187,8 @@ items:
href: ./how-to/migration.md
- name: Migrate to OpenAI JavaScript v4.x
href: ./how-to/migration-javascript.md
+ - name: Migrate to Azure OpenAI .NET v2.0
+ href: ./how-to/dotnet-migration.md
- name: Models
items:
- name: Manage models
@@ -286,6 +292,8 @@ items:
href: ./references/elasticsearch.md
- name: Data source - Pinecone (preview)
href: ./references/pinecone.md
+ - name: Data source - Mongo DB (preview)
+ href: ./references/mongo-db.md
- name: Ingestion API (preview)
href: /rest/api/azureopenai/ingestion-jobs?context=/azure/ai-services/openai/context/context
- name: Azure Resource Manager/Bicep/Terraform
Summary
{
"modification_type": "minor update",
"modification_title": "TOCの更新: 評価、Weights & Biases統合、および移行関連の項目追加"
}
Explanation
この変更は、Azure OpenAIに関連する記事の目次(TOC)を更新したものです。新たに追加されたセクションが、ユーザーにとって有用な情報へ直接アクセスできるように整理されています。
具体的な変更内容は以下の通りです:
評価に関する項目の追加: 「Evaluation」という項目が新たに追加され、評価に関連する情報が含まれるページへのリンクが提供されました。これにより、ユーザーはモデルの評価方法についてのリソースに簡単にアクセスできるようになります。
Weights & Biasesの統合情報の追加: 「Weights & Biases integration (preview)」という項目が追加され、これによりAzure OpenAIとWeights & Biasesの統合に関する情報が得られます。ユーザーはこの統合を利用したモデル管理方法について理解を深めることが可能になります。
.NETの移行ガイドの追加: 「Migrate to Azure OpenAI .NET v2.0」という項目が追加され、ユーザーがAzure OpenAIを.NET v2.0に移行する際の手順に関する情報へアクセスできるようになりました。
MongoDBに関する情報の追加: 「Data source - Mongo DB (preview)」という新しい項目が追加され、MongoDBをデータソースとして使用する際の情報に対するリンクが提供されています。これにより、ユーザーはMongoDBとの統合についての詳細を得ることができます。
これらの更新により、ユーザーはAzure OpenAIに関する最新の情報やガイドに素早くアクセスすることができ、効率よく関連リソースを活用できるようになっています。
articles/ai-services/openai/whats-new.md
Diff
@@ -10,17 +10,34 @@ ms.custom:
- ignite-2023
- references_regions
ms.topic: whats-new
-ms.date: 10/22/2024
+ms.date: 11/12/2024
recommendations: false
---
# What's new in Azure OpenAI Service
This article provides a summary of the latest releases and major documentation updates for Azure OpenAI.
+## November 2024
+
+### Vision Fine-tuning GA
+
+Vision fine-tuning with GPT-4o (2024-08-06) in now Generally Available (GA).
+
+[Vision fine-tuning](./how-to/fine-tuning.md) allows you to add images to your JSONL training data. Just as you can send one or many image inputs to chat completions, you can include those same message types within your training data. Images can be provided either as URLs or as base64 encoded images.
+
+For fine-tuning model region availability, see the [models page](./concepts/models.md#fine-tuning-models).
+
+### NEW AI abuse monitoring
+
+We are introducing new forms of abuse monitoring that leverage LLMs to improve efficiency of detection of potentially abusive use of the Azure OpenAI service and to enable abuse monitoring without the need for human review of prompts and completions. Learn more, see [Abuse monitoring](/azure/ai-services/openai/concepts/abuse-monitoring).
+
+Prompts and completions that are flagged through content classification and/or identified to be part of a potentially abusive pattern of use are subjected to an additional review process to help confirm the system’s analysis and inform actioning decisions. Our abuse monitoring systems have been expanded to enable review by LLM by default and by humans when necessary and appropriate.
+
## October 2024
### NEW data zone standard deployment type
+
Data zone standard deployments are available in the same Azure OpenAI resource as all other Azure OpenAI deployment types but allow you to leverage Azure global infrastructure to dynamically route traffic to the data center within the Microsoft defined data zone with the best availability for each request. Data zone standard provides higher default quotas than our Azure geography-based deployment types. Data zone standard deployments are supported on `gpt-4o-2024-08-06`, `gpt-4o-2024-05-13`, and `gpt-4o-mini-2024-07-18` models.
For more information, see the [deployment types guide](https://aka.ms/aoai/docs/deployment-types).
@@ -29,7 +46,7 @@ For more information, see the [deployment types guide](https://aka.ms/aoai/docs/
Azure OpenAI global batch is now generally available.
-The Azure OpenAI Batch API is designed to handle large-scale and high-volume processing tasks efficiently. Process asynchronous groups of requests with separate quota, with 24-hour target turnaround, at [50% less cost than global standard](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/). With batch processing, rather than send one request at a time you send a large number of requests in a single file. Global batch requests have a separate enqueued token quota avoiding any disruption of your online workloads.
+The Azure OpenAI Batch API is designed to handle large-scale and high-volume processing tasks efficiently. Process asynchronous groups of requests with separate quota, with 24-hour target turnaround, at [50% less cost than global standard](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/). With batch processing, rather than send one request at a time you send a large number of requests in a single file. Global batch requests have a separate enqueued token quota avoiding any disruption of your online workloads.
Key use cases include:
@@ -195,7 +212,7 @@ To test out GPT-4o `2024-08-06`, sign-in to the Azure AI early access playground
### Global batch deployments are now available
-The Azure OpenAI Batch API is designed to handle large-scale and high-volume processing tasks efficiently. Process asynchronous groups of requests with separate quota, with 24-hour target turnaround, at [50% less cost than global standard](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/). With batch processing, rather than send one request at a time you send a large number of requests in a single file. Global batch requests have a separate enqueued token quota avoiding any disruption of your online workloads.
+The Azure OpenAI Batch API is designed to handle large-scale and high-volume processing tasks efficiently. Process asynchronous groups of requests with separate quota, with 24-hour target turnaround, at [50% less cost than global standard](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/). With batch processing, rather than send one request at a time you send a large number of requests in a single file. Global batch requests have a separate enqueued token quota avoiding any disruption of your online workloads.
Key use cases include:
Summary
{
"modification_type": "minor update",
"modification_title": "Azure OpenAIサービスの新機能と更新情報"
}
Explanation
この変更は、Azure OpenAIサービスの「What’s New」記事に対する更新を示しています。最新のリリースや重要なドキュメントの変更についての情報が追加され、ユーザーが新機能を把握しやすくなっています。
具体的な変更内容は以下の通りです:
これらの更新により、Azure OpenAIサービスの利用者は最新の機能や改善点を把握しやすくなり、より効果的にサービスを利用することが可能になります。