التشغيل السريع: ابدأ باستخدام GPT-35-Turbo وGPT-4 مع خدمة Azure OpenAI

استخدم هذه المقالة للبدء في استخدام Azure OpenAI.

المتطلبات الأساسية

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.

  • الوصول الممنوح إلى Azure OpenAI في اشتراك Azure المطلوب.

    حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access. افتح مشكلة على هذا المستودع للاتصال بنا إذا كانت لديك مشكلة.

  • مورد خدمة Azure OpenAI مع النماذج gpt-35-turbo أو gpt-4 التي تم نشرها. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

تلميح

جرب Azure الذكاء الاصطناعي Studio الموحد الجديد (معاينة) الذي يجمع القدرات من خلال خدمات Azure الذكاء الاصطناعي المتعددة.

انتقل إلى Azure OpenAI Studio

انتقل إلى Azure OpenAI Studio في https://oai.azure.com/ وسجل الدخول باستخدام بيانات الاعتماد التي لديها حق الوصول إلى مورد OpenAI الخاص بك. أثناء سير عمل تسجيل الدخول أو بعده، حدد الدليل المناسب واشتراك Azure ومورد Azure OpenAI.

من الصفحة المنتقل إليها في Azure OpenAI Studio، حدد Chat playground.

لقطة شاشة للصفحة المنتقل إليها في Azure OpenAI Studio مع تمييز ملعب الدردشة.

Playground

ابدأ في استكشاف قدرات OpenAI باستخدام نهج بدون تعليمات برمجية من خلال ملعب دردشة Azure OpenAI Studio. من هذه الصفحة، يمكنك تكرار القدرات وتجربتها بسرعة.

لقطة شاشة لصفحة Chat playground.

إعداد المساعد

يمكنك استخدام القائمة المنسدلة إعداد المساعد لتحديد بعض أمثلة رسائل النظام المحملة مسبقا للبدء.

تعطي رسائل النظام إرشادات النموذج حول كيفية تصرفه وأي سياق يجب أن يشير إليه عند إنشاء استجابة. يمكنك وصف شخصية المساعد، وإخباره بما يجب وما لا ينبغي الإجابة عليه، وإخباره بكيفية تنسيق الاستجابات.

إضافة أمثلة قليلة اللقطات تسمح لك بتوفير أمثلة المحادثة التي يستخدمها النموذج للتعلم في السياق.

في أي وقت أثناء استخدام ملعب الدردشة، يمكنك تحديد عرض التعليمات البرمجية لمشاهدة عينات التعليمات البرمجية Python و curl وjson التي تم ملؤها مسبقا استنادا إلى جلسة الدردشة الحالية وتحديدات الإعدادات. يمكنك بعد ذلك أخذ هذه التعليمة البرمجية وكتابة تطبيق لإكمال نفس المهمة التي تقوم بها حاليا مع الملعب.

جلسة المحادثة

يؤدي تحديد الزر Send إلى إرسال النص الذي تم إدخاله إلى واجهة برمجة تطبيقات الإكمال ويتم إرجاع النتائج مرة أخرى إلى مربع النص.

حدد الزر مسح الدردشة لحذف محفوظات المحادثات الحالية.

إعدادات

الاسم الوصف
عمليات النشر اسم النشر المقترن بنموذج معين.
درجة الحرارة يتحكم في العشوائية. يعني خفض درجة الحرارة أن النموذج ينتج استجابات أكثر تكرارا وحسما. تؤدي زيادة درجة الحرارة إلى استجابات أكثر غير متوقعة أو إبداعية. حاول ضبط درجة الحرارة أو أعلى P ولكن ليس كليهما.
الحد الأقصى للطول (الرموز المميزة) تعيين حد لعدد الرموز المميزة لكل استجابة نموذج. تدعم واجهة برمجة التطبيقات 4096 رمزا مميزا كحد أقصى مشترك بين المطالبة (بما في ذلك رسالة النظام والأمثلة ومحفوظات الرسائل واستعلام المستخدم) واستجابة النموذج. الرمز المميز واحد هو ما يقرب من أربعة أحرف للنص الإنجليزي النموذجي.
الاحتمالات العليا على غرار درجة الحرارة، يتحكم هذا في العشوائية ولكنه يستخدم أسلوبا مختلفا. يؤدي خفض Top P إلى تضييق تحديد الرمز المميز للنموذج إلى رموز مميزة مرجحة. تتيح زيادة أعلى P للنموذج الاختيار من بين الرموز المميزة مع احتمالية عالية ومنخفضة. حاول ضبط درجة الحرارة أو أعلى P ولكن ليس كليهما.
محادثات متعددة الأدوار حدد عدد الرسائل السابقة لتضمينها في كل طلب واجهة برمجة تطبيقات جديد. يساعد هذا في إعطاء سياق النموذج للاستعلامات الجديدة للمستخدم. يؤدي تعيين هذا الرقم إلى 10 إلى خمسة استعلامات مستخدم وخمسة استجابات للنظام.
إيقاف التسلسلات تسلسل الإيقاف يجعل النموذج ينهي استجابته عند النقطة المطلوبة. تنتهي استجابة النموذج قبل التسلسل المحدد، لذلك لن تحتوي على نص تسلسل الإيقاف. بالنسبة إلى GPT-35-Turbo، يضمن استخدام <|im_end|> أن استجابة النموذج لا تنشئ استعلام مستخدم متابعة. يمكنك تضمين ما يصل إلى أربعة تسلسلات توقف.

إظهار اللوحات

بشكل افتراضي، هناك ثلاث لوحات: إعداد المساعد وجلسة الدردشة والإعدادات. يتيح لك إظهار اللوحات إضافة اللوحات وإزالتها وإعادة ترتيبها. إذا قمت بإغلاق لوحة وتحتاج إلى استعادتها مرة أخرى، فاستخدم إظهار اللوحات لاستعادة اللوحة المفقودة.

بدء جلسة دردشة

  1. من القائمة المنسدلة إعداد المساعد، حدد عامل دعم عملاء Xbox

  2. ستتم مطالبتك بالسؤال عما إذا كنت تريد تحديث رسالة النظام، حدد متابعة.

  3. في جزء جلسة الدردشة، أدخل السؤال التالي: "أنا مهتم بشراء Xbox جديد"، وحدد إرسال.

  4. ستتلقى ردا مشابها ل:

    لقطة شاشة لأول سؤال وإجابة في الملعب.

  5. أدخل سؤال متابعة مثل: "ما هي النماذج التي تدعم 4K؟"

    لقطة شاشة لسؤال المتابعة والإجابة في الملعب.

  6. الآن بعد أن أصبحت لديك محادثة أساسية، حدد عرض التعليمات البرمجية من ضمن إعداد المساعد وستتم إعادة عرض التعليمات البرمجية خلف المحادثة بأكملها حتى الآن:

#Note: The openai-python library support for Azure OpenAI is in preview.
import os
import openai
openai.api_type = "azure"
openai.api_base = "https://docs-test-001.openai.azure.com/"
openai.api_version = "2024-02-01"
openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.ChatCompletion.create(
  engine="gpt-35-turbo", # replace this value with the deployment name you chose when you deployed the associated model.
  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":"How much is a PS5?"},{"role":"assistant","content":"I apologize, but I do not have information about the prices of other gaming devices such as the PS5. My primary focus is to assist with issues regarding Xbox devices. Is there a specific issue you are having with your Xbox device that I may be able to help with?"},{"role":"user","content":"I am interested in buying an Xbox?"},{"role":"assistant","content":"Great! There are several Xbox models available in the market, including the Xbox Series X, Xbox Series S, and Xbox One. The Xbox Series X is the latest and most powerful console, while the Xbox Series S is a more affordable option that still offers great performance. The Xbox One is the previous generation console, but it still has a large library of games available to play.\n\nBefore purchasing an Xbox, you may want to consider factors such as your budget, the types of games you want to play, and whether you want to play games in 4K resolution. Once you have decided on a console, you can purchase it from a retailer or directly from the Xbox website. Let me know if you have any other questions or concerns!"},{"role":"user","content":"Which models are 4K?"},{"role":"assistant","content":"Both the Xbox Series X and Xbox One X support 4K resolution gaming. The Xbox Series S, on the other hand, supports up to 1440p resolution gaming, but it can upscale games to 4K. It's worth noting that in order to take advantage of 4K gaming, you'll need a 4K TV or monitor that supports HDR (High Dynamic Range) and HDMI 2.0 or higher."}],
  temperature=0,
  max_tokens=350,
  top_p=0.95,
  frequency_penalty=0,
  presence_penalty=0,
  stop=None)

فهم بنية المطالبة

إذا قمت بفحص النموذج من عرض التعليمات البرمجية ، فستلاحظ بعض الرموز المميزة الفريدة التي لم تكن جزءا من استدعاء إكمال GPT نموذجي. تم تدريب GPT-35-Turbo على استخدام رموز مميزة خاصة لتحديد أجزاء مختلفة من المطالبة. يتم توفير المحتوى للنموذج بين <|im_start|> والرموز <|im_end|> المميزة. تبدأ المطالبة برسالة نظام يمكن استخدامها لإعداد النموذج الأولي عن طريق تضمين السياق أو الإرشادات الخاصة بالنموذج. بعد ذلك، تحتوي المطالبة على سلسلة من الرسائل بين المستخدم والمساعد.

ثم سيتم إرجاع استجابة المساعد إلى المطالبة أسفل <|im_start|>assistant الرمز المميز وستنتهي بالدلالة <|im_end|> على أن المساعد قد أنهى استجابته. يمكنك أيضا استخدام زر تبديل إظهار بناء الجملة الخام لعرض هذه الرموز المميزة داخل لوحة جلسة الدردشة.

يوفر دليل الكيفية GPT-35-Turbo وGPT-4 مقدمة متعمقة في بنية المطالبة الجديدة وكيفية استخدام gpt-35-turbo النموذج بشكل فعال.

استخدام نموذجك

بمجرد أن تكون راضيا عن التجربة في استوديو Azure OpenAI، يمكنك نشر تطبيق ويب مباشرة من Studio عن طريق تحديد الزر Deploy to .

لقطة شاشة تعرض زر نشر النموذج في Azure OpenAI Studio.

يمنحك هذا الخيار إما النشر إلى تطبيق ويب مستقل، أو copilot في Copilot Studio (معاينة) إذا كنت تستخدم بياناتك الخاصة على النموذج.

على سبيل المثال، إذا اخترت نشر تطبيق ويب:

في المرة الأولى التي تقوم فيها بنشر تطبيق ويب، يجب عليك تحديد إنشاء تطبيق ويب جديد. اختر اسما للتطبيق، والذي سيصبح جزءا من عنوان URL للتطبيق. على سبيل المثال، https://<appname>.azurewebsites.net

حدد الاشتراك ومجموعة الموارد والموقع وخطة التسعير للتطبيق المنشور. لتحديث تطبيق موجود، حدد نشر إلى تطبيق ويب موجود واختر اسم التطبيق السابق من القائمة المنسدلة.

إذا اخترت نشر تطبيق ويب، فشاهد الاعتبارات المهمة لاستخدامه.

تنظيف الموارد

بمجرد الانتهاء من اختبار ملعب الدردشة، إذا كنت تريد تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد أو مجموعة الموارد. يؤدي حذف مجموعة الموارد إلى حذف أية موارد أخرى مقترنة بها أيضًا.

الخطوات التالية

حزمة التعليمات| البرمجية | المصدر (NuGet) | نماذج استرداد الجيل المعزز (RAG) قالب دردشة المؤسسة |

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • .NET 7 SDK
  • مورد خدمة Azure OpenAI مع النماذج gpt-35-turbo أو gpt-4 التي تم نشرها. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

الإعداد

إنشاء تطبيق .NET Core جديد

في نافذة وحدة تحكم (مثل cmd أو PowerShell أو Bash)، استخدم الأمر ⁧dotnet new⁩ لإنشاء تطبيق وحدة تحكم جديد بالاسم ⁧azure-openai-quickstart⁩. ينشئ هذا الأمر مشروع "Hello World" بسيطًا مع ملف مصدر C# واحد: Program.cs.

dotnet new console -n azure-openai-quickstart

غيّر دليلك إلى مجلد التطبيق المنشأ حديثاً. يمكنك إنشاء التطبيق باستخدام:

dotnet build

يجب ألا يحتوي إخراج البناء على تحذيرات أو أخطاء.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

تثبيت مكتبة عميل OpenAI .NET مع:

dotnet add package Azure.AI.OpenAI --prerelease

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إنشاء نموذج تطبيق

من دليل المشروع، افتح ملف program.cs واستبدل بالتعليمات البرمجية التالية:

دون تدفق الاستجابة

using Azure;
using Azure.AI.OpenAI;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

var chatCompletionsOptions = new ChatCompletionsOptions()
{
    DeploymentName = "gpt-35-turbo", //This must match the custom deployment name you chose for your model
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?"),
        new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI."),
        new ChatRequestUserMessage("Do other Azure AI services support this too?"),
    },
    MaxTokens = 100
};

Response<ChatCompletions> response = client.GetChatCompletions(chatCompletionsOptions);

Console.WriteLine(response.Value.Choices[0].Message.Content);

Console.WriteLine();

هام

للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها مثل Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

dotnet run program.cs

المخرجات

Yes, many of the Azure AI services support customer managed keys. Some examples include Text Analytics, Speech Services, and Translator. However, it's important to note that not all services support customer managed keys, so it's best to check the documentation for each individual service to see if it is supported.

سينتظر هذا حتى ينشئ النموذج استجابته بأكملها قبل طباعة النتائج. بدلا من ذلك، إذا كنت تريد دفق الاستجابة بشكل غير متزامن وطباعة النتائج، يمكنك استبدال محتويات program.cs بالتعليمات البرمجية في المثال التالي.

غير متزامن مع الدفق

using Azure;
using Azure.AI.OpenAI;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key));

var chatCompletionsOptions = new ChatCompletionsOptions()
{
    DeploymentName= "gpt-35-turbo", //This must match the custom deployment name you chose for your model
    Messages =
    {
        new ChatRequestSystemMessage("You are a helpful assistant."),
        new ChatRequestUserMessage("Does Azure OpenAI support customer managed keys?"),
        new ChatRequestAssistantMessage("Yes, customer managed keys are supported by Azure OpenAI."),
        new ChatRequestUserMessage("Do other Azure AI services support this too?"),
    },
    MaxTokens = 100
};

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 OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية

حزمة التعليمات البرمجية | المصدر (Go)عينات|

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • Go 1.21.0 أو أعلى مثبت محليا.
  • مورد خدمة Azure OpenAI مع gpt-35-turbo نشر النموذج. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

الإعداد

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إنشاء نموذج تطبيق

إنشاء ملف جديد باسم chat_completions.go. انسخ التعليمات البرمجية التالية في ملف chat_completions.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/to"
)

func main() {
	azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
    //modelDeploymentID = deployment name, if model name and deployment name do not match change this value to name chosen when you deployed the model.
	modelDeploymentID := "gpt-35-turbo" 

	// Ex: "https://<your-azure-openai-host>.openai.azure.com"
	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")

	if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
		fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
		return
	}

	keyCredential, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	// This is a conversation in progress.
	// NOTE: all messages, regardless of role, count against token usage for this API.
	messages := []azopenai.ChatMessage{
		// You set the tone and rules of the conversation with a prompt as the system role.
		{Role: to.Ptr(azopenai.ChatRoleSystem), Content: to.Ptr("You are a helpful assistant.")},

		// The user asks a question
		{Role: to.Ptr(azopenai.ChatRoleUser), Content: to.Ptr("Does Azure OpenAI support customer managed keys?")},

		// The reply would come back from the Azure OpenAI model. You'd add it to the conversation so we can maintain context.
		{Role: to.Ptr(azopenai.ChatRoleAssistant), Content: to.Ptr("Yes, customer managed keys are supported by Azure OpenAI")},

		// The user answers the question based on the latest reply.
		{Role: to.Ptr(azopenai.ChatRoleUser), Content: to.Ptr("Do other Azure AI services support this too?")},

		// from here you'd keep iterating, sending responses back from the chat completions API
	}

	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,
		Deployment: modelDeploymentID,
	}, nil)

	if err != nil {
		//  TODO: Update the following line with your application specific error handling logic
		log.Fatalf("ERROR: %s", err)
	}

	for _, choice := range resp.Choices {
		fmt.Fprintf(os.Stderr, "Content[%d]: %s\n", *choice.Index, *choice.Message.Content)
	}

}

هام

للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها مثل Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

الآن افتح موجه الأوامر وقم بتشغيل:

go mod init chat_completions.go

التشغيل التالي:

go mod tidy
go run chat_completions.go

المخرجات

Content[0]: Yes, many Azure AI services also support customer managed keys. These services enable you to bring your own encryption keys for data at rest, which provides you with more control over the security of your data.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية

لمزيد من الأمثلة، راجع مستودع Azure OpenAI Samples GitHub

رمز | المصدر Artifact (Maven) | عينات | استرداد الجيل المعزز (RAG) قالب | دردشة المؤسسة IntelliJ IDEA

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • أداة إنشاء Gradleأو مدير تبعية آخر.
  • مورد خدمة Azure OpenAI مع النماذج gpt-35-turbo أو gpt-4 التي تم نشرها. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

الإعداد

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إنشاء تطبيق Java جديد

قم بإنشاء مشروع Gradle جديد.

في إطار نافذة وحدة التحكم (مثل cmd أو PowerShell أو Bash)، يمكنك إنشاء دليل جديد لتطبيقك وانتقل إليه.

mkdir myapp && cd myapp

بادر بتشغيل الأمر gradle init من دليل العمل خاصتك. سينشئ هذا الأمر ملفات بناء أساسية لـ Gradle، بما في ذلك build.gradle.kts، والذي يجري استخدامه في وقت التشغيل لإنشاء تطبيقك وتكوينه.

gradle init --type basic

عند طلب اختيار DSL، حدد Kotlin.

تثبيت Java SDK

يستخدم هذا التشغيل السريع مدير تبعية Gradle. يمكنك العثور على مكتبة العميل ومعلومات مديري التبعية الآخرين على Maven Central Repository.

حدد build.gradle.kts وافتحه باستخدام IDE أو محرر النص المفضل لديك. ثم انسخ في تكوين البناء التالي. يعرف هذا التكوين المشروع على أنه تطبيق Java الذي نقطة إدخاله هي الفئة OpenAIQuickstart. يستورد مكتبة Azure الذكاء الاصطناعي Vision.

plugins {
    java
    application
}
application { 
    mainClass.set("OpenAIQuickstart")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.3")
    implementation("org.slf4j:slf4j-simple:1.7.9")
}

إنشاء نموذج تطبيق

  1. أنشئ ملف Java.

    من دليل العمل الخاص بك، قم بتشغيل الأمر التالي لإنشاء مجلد مصدر المشروع:

    mkdir -p src/main/java
    

    انتقل إلى المجلد الجديد وأنشئ ملفا يسمى OpenAIQuickstart.java.

  2. افتح OpenAIQuickstart.java في المحرر المفضل لديك أو IDE والصقها في التعليمات البرمجية التالية.

    import com.azure.ai.openai.OpenAIClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.ChatChoice;
    import com.azure.ai.openai.models.ChatCompletions;
    import com.azure.ai.openai.models.ChatCompletionsOptions;
    import com.azure.ai.openai.models.ChatMessage;
    import com.azure.ai.openai.models.ChatRole;
    import com.azure.ai.openai.models.CompletionsUsage;
    import com.azure.core.credential.AzureKeyCredential;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GetChatCompletionsSample {
    
        public static void main(String[] args) {
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");;
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");;
            String deploymentOrModelId = "gpt-35-turbo";
    
          OpenAIClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .buildClient();
    
            List<ChatMessage> chatMessages = new ArrayList<>();
            chatMessages.add(new ChatMessage(ChatRole.SYSTEM, "You are a helpful assistant"));
            chatMessages.add(new ChatMessage(ChatRole.USER, "Does Azure OpenAI support customer managed keys?"));
            chatMessages.add(new ChatMessage(ChatRole.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?"));
            chatMessages.add(new ChatMessage(ChatRole.USER, "Do other Azure AI services support this too?"));
    
            ChatCompletions chatCompletions = client.getChatCompletions(deploymentOrModelId, new ChatCompletionsOptions(chatMessages));
    
            System.out.printf("Model ID=%s is created at %s.%n", chatCompletions.getId(), chatCompletions.getCreatedAt());
            for (ChatChoice choice : chatCompletions.getChoices()) {
                ChatMessage 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());
            }
    
            System.out.println();
            CompletionsUsage usage = chatCompletions.getUsage();
            System.out.printf("Usage: number of prompt token is %d, "
                    + "number of completion token is %d, and number of total tokens in request and response is %d.%n",
                usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens());
        }
    }  
    

    هام

    للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها مثل Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

  3. انتقل مرة أخرى إلى المجلد الجذر للمشروع، وأنشئ التطبيق باستخدام:

    gradle build
    

    ثم، شغله باستخدام أمر gradle run:

    gradle run
    

المخرجات

Model ID=chatcmpl-7JYnyE4zpd5gaIfTRH7hNpeVsvAw4 is created at 1684896378.
Index: 0, Chat Role: assistant.
Message:
Yes, most of the Azure AI services support customer managed keys. However, there may be some exceptions, so it is best to check the documentation of each specific service to confirm.

Usage: number of prompt token is 59, number of completion token is 36, and number of total tokens in request and response is 95.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية

نموذج البيانات الاصطناعية للتعليمات البرمجية | المصدر (Maven) |

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • الإصدار الحالي من Java Development Kit (JDK)
  • أداة Spring Boot CLI
  • مورد خدمة Azure OpenAI مع gpt-35-turbo نشر النموذج. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

الإعداد

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

إشعار

يقوم Spring الذكاء الاصطناعي افتراضيا بتسمية النموذج إلى gpt-35-turbo. من الضروري فقط توفير SPRING_AI_AZURE_OPENAI_MODEL القيمة إذا قمت بنشر نموذج باسم مختلف.

export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"

إنشاء تطبيق Spring جديد

إنشاء مشروع Spring جديد.

في نافذة Bash، قم بإنشاء دليل جديد لتطبيقك، وانتقل إليه.

mkdir ai-chat-demo && cd ai-chat-demo

بادر بتشغيل الأمر spring init من دليل العمل خاصتك. ينشئ هذا الأمر بنية دليل قياسية لمشروع Spring الخاص بك بما في ذلك ملف مصدر فئة Java الرئيسي وملف pom.xml المستخدم لإدارة المشاريع المستندة إلى Maven.

spring init -a ai-chat-demo -n AIChat --force --build maven -x

تشبه الملفات والمجلدات التي تم إنشاؤها البنية التالية:

ai-chat-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
    |-- main/
    |   |-- resources/
    |   |   |-- application.properties
    |   |-- java/
    |       |-- com/
    |           |-- example/
    |               |-- aichatdemo/
    |                   |-- AiChatApplication.java
    |-- test/
        |-- java/
            |-- com/
                |-- example/
                    |-- aichatdemo/
                        |-- AiChatApplicationTests.java

تحرير تطبيق Spring

  1. تحرير ملف pom.xml.

    من جذر دليل المشروع، افتح ملف pom.xml في المحرر المفضل لديك أو IDE واستبدل الملف بالمحتوى التالي:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>3.2.0</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>ai-chat-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>AIChat</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>17</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.experimental.ai</groupId>
                <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
                <version>0.7.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        <repositories>
            <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
            </repository>
        </repositories>
    </project>
    
  2. من المجلد src/main/java/com/example/aichatdemo، افتح AiChatApplication.java في المحرر المفضل لديك أو IDE والصقها في التعليمات البرمجية التالية:

    package com.example.aichatdemo;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.ai.client.AiClient;
    import org.springframework.ai.prompt.Prompt;
    import org.springframework.ai.prompt.messages.ChatMessage;
    import org.springframework.ai.prompt.messages.Message;
    import org.springframework.ai.prompt.messages.MessageType;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class AiChatApplication implements CommandLineRunner
    {
        private static final String ROLE_INFO_KEY = "role";
    
        @Autowired
        private AiClient aiClient;
    
        public static void main(String[] args) {
            SpringApplication.run(AiChatApplication.class, args);
        }
    
        @Override
        public void run(String... args) throws Exception
        {
            System.out.println(String.format("Sending chat prompts to AI service. One moment please...\r\n"));
    
            final List<Message> msgs = new ArrayList<>();
    
            msgs.add(new ChatMessage(MessageType.SYSTEM, "You are a helpful assistant"));
            msgs.add(new ChatMessage(MessageType.USER, "Does Azure OpenAI support customer managed keys?"));
            msgs.add(new ChatMessage(MessageType.ASSISTANT, "Yes, customer managed keys are supported by Azure OpenAI?"));
            msgs.add(new ChatMessage(MessageType.USER, "Do other Azure AI services support this too?"));
    
            final var resps = aiClient.generate(new Prompt(msgs));
    
            System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size()));
    
            resps.getGenerations().stream()
              .forEach(gen -> {
                  final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue());
    
                  System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText()));
              });
        }
    
    }
    

    هام

    للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها مثل Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

  3. انتقل مرة أخرى إلى المجلد الجذر للمشروع، وقم بتشغيل التطبيق باستخدام الأمر التالي:

    ./mvnw spring-boot:run
    

المخرجات

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.5)

2023-11-07T13:31:10.884-06:00  INFO 6248 --- [           main] c.example.aichatdemo.AiChatApplication   : No active profile set, falling back to 1 default profile: "default"
2023-11-07T13:31:11.595-06:00  INFO 6248 --- [           main] c.example.aichatdemo.AiChatApplication   : Started AiChatApplication in 0.994 seconds (process running for 1.28)
Sending chat prompts to AI service. One moment please...

Prompt created 1 generated response(s).
Generated respose from "assistant": Yes, other Azure AI services also support customer managed keys. Azure AI Services, Azure Machine Learning, and other AI services in Azure provide options for customers to manage and control their encryption keys. This allows customers to have greater control over their data and security.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية

لمزيد من الأمثلة، راجع مستودع Azure OpenAI Samples GitHub

حزمة التعليمات | البرمجية | المصدر (npm) | عينات استرداد الجيل المعزز (RAG) قالب دردشة المؤسسة|

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • إصدارات "LTS" من "Node.js".
  • مورد خدمة Azure OpenAI مع النماذج gpt-35-turbo أو gpt-4 التي تم نشرها. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

الإعداد

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إنشاء تطبيق عقدة

في إطار نافذة وحدة التحكم (مثل cmd أو PowerShell أو Bash)، يمكنك إنشاء دليل جديد لتطبيقك وانتقل إليه. ثم قم بتشغيل npm init الأمر لإنشاء تطبيق عقدة مع ملف package.json .

npm init

تثبيت مكتبة العميل

تثبيت مكتبة عميل Azure OpenAI ل JavaScript باستخدام npm:

npm install @azure/openai

سيتم تحديث ملف package.json الخاص بتطبيقك بالتبعيات.

إنشاء نموذج تطبيق

افتح موجه الأوامر حيث تريد المشروع الجديد، وأنشئ ملفا جديدا باسم ChatCompletion.js. انسخ التعليمات البرمجية التالية في ملف ChatCompletion.js.

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

const messages = [
  { role: "system", content: "You are a helpful assistant." },
  { role: "user", content: "Does Azure OpenAI support customer managed keys?" },
  { role: "assistant", content: "Yes, customer managed keys are supported by Azure OpenAI" },
  { role: "user", content: "Do other Azure AI services support this too" },
];

async function main() {
  console.log("== Chat Completions Sample ==");

  const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
  const deploymentId = "gpt-35-turbo";
  const result = await client.getChatCompletions(deploymentId, messages);

  for (const choice of result.choices) {
    console.log(choice.message);
  }
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

هام

للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها مثل Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

قم بتشغيل البرنامج النصي مع الأمر التالي:

node.exe ChatCompletion.js

المخرجات

== Chat Completions Sample ==
{
  role: 'assistant',
  content: 'Yes, most Azure AI services support customer managed keys. It is always best to check the specific service documentation to confirm this.'
}

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية

حزمة التعليمات البرمجية | المصدر للمكتبة (PyPi) | استرداد قالب دردشة المؤسسة للجيل المعزز (RAG) |

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • Python 3.8 أو إصدار أحدث.
  • مكتبات Python التالية: os.
  • مورد خدمة Azure OpenAI مع النماذج gpt-35-turbo أو gpt-4 التي تم نشرها. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

الإعداد

تثبيت مكتبة عميل OpenAI Python باستخدام:

pip install openai

إشعار

يتم الاحتفاظ بهذه المكتبة بواسطة OpenAI وهي قيد المعاينة حاليا. راجع محفوظات الإصدار أو محفوظات التثبيت version.py لتعقب آخر التحديثات إلى المكتبة.

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

إنشاء تطبيق Python جديد

  1. إنشاء ملف Python جديد باسم ⁧⁩quickstart.py. ثم افتحه في المحرر أو IDE المُفضل لديك.

  2. استبدل التعليمات البرمجية التالية بمحتويات quickstart.py.

تحتاج إلى تعيين model المتغير إلى اسم النشر الذي اخترته عند نشر نماذج GPT-3.5-Turbo أو GPT-4. سيؤدي إدخال اسم النموذج إلى حدوث خطأ ما لم تختص باسم نشر مطابق لاسم النموذج الأساسي.

import os
from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"
)

response = client.chat.completions.create(
    model="gpt-35-turbo", # model = "deployment_name".
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

print(response.choices[0].message.content)

هام

للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها مثل Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

  1. قم بتشغيل التطبيق باستخدام الأمر على python ملف التشغيل السريع:

    python quickstart.py
    

المخرجات

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "Yes, most of the Azure AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.",
        "role": "assistant"
      }
    }
  ],
  "created": 1679001781,
  "id": "chatcmpl-6upLpNYYOx2AhoOYxl9UgJvF4aPpR",
  "model": "gpt-3.5-turbo-0301",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 39,
    "prompt_tokens": 58,
    "total_tokens": 97
  }
}
Yes, most of the Azure AI services support customer managed keys. However, not all services support it. You can check the documentation of each service to confirm if customer managed keys are supported.

فهم بنية الرسالة

تم تحسين نماذج GPT-35-Turbo وGPT-4 للعمل مع المدخلات المنسقة كمحادثة. يمرر messages المتغير صفيفا من القواميس بأدوار مختلفة في المحادثة التي يحددها النظام والمستخدم والمساعد. يمكن استخدام رسالة النظام لإعداد النموذج الأولي من خلال تضمين سياق أو إرشادات حول كيفية استجابة النموذج.

يوفر دليل الكيفية GPT-35-Turbo وGPT-4 مقدمة متعمقة في خيارات التواصل مع هذه النماذج الجديدة.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية

مواصفات واجهة برمجة تطبيقات REST |

المتطلبات الأساسية

  • اشتراك Azure - أنشئ اشتراكاً مجاناً.
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • مورد خدمة Azure OpenAI مع النماذج gpt-35-turbo أو gpt-4 التي تم نشرها. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

الإعداد

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، تحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على قسم Keys & Endpoint في قسم Resource Management . انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Microsoft Azure مع وضع نقطة النهاية وموقع مفاتيح الوصول في دائرة باللون الأحمر.

متغيرات البيئة

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

واجهة برمجة تطبيقات REST

في bash shell، قم بتشغيل الأمر التالي. ستحتاج إلى استبدال gpt-35-turbo باسم النشر الذي اخترته عند نشر نماذج GPT-35-Turbo أو GPT-4. سيؤدي إدخال اسم النموذج إلى حدوث خطأ ما لم تختص باسم نشر مطابق لاسم النموذج الأساسي.

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo/chat/completions?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'

سيظهر تنسيق السطر الأول من الأمر مع مثال نقطة نهاية كما يلي curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/chat/completions?api-version=2024-02-01 \ إذا واجهت خطأ مزدوج التحقق للتأكد من أنه ليس لديك مضاعفة / عند الفصل بين نقطة النهاية الخاصة بك و /openai/deployments.

إذا كنت تريد تشغيل هذا الأمر في موجه أوامر Windows عادي، فستحتاج إلى تغيير النص لإزالة \ فواصل الأسطر و.

هام

للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد والوصول إليها مثل Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

المخرجات

{"id":"chatcmpl-6v7mkQj980V1yBec6ETrKPRqFjNw9",
"object":"chat.completion","created":1679072642,
"model":"gpt-35-turbo",
"usage":{"prompt_tokens":58,
"completion_tokens":68,
"total_tokens":126},
"choices":[{"message":{"role":"assistant",
"content":"Yes, other Azure AI services also support customer managed keys. Azure AI services offer multiple options for customers to manage keys, such as using Azure Key Vault, customer-managed keys in Azure Key Vault or customer-managed keys through Azure Storage service. This helps customers ensure that their data is secure and access to their services is controlled."},"finish_reason":"stop","index":0}]}

تم ضبط تنسيق الإخراج لتسهيل القراءة، والإخراج الفعلي عبارة عن كتلة نص واحدة بدون فواصل أسطر.

فهم بنية الرسالة

تم تحسين نماذج GPT-35-Turbo وGPT-4 للعمل مع المدخلات المنسقة كمحادثة. يمرر messages المتغير صفيفا من القواميس بأدوار مختلفة في المحادثة التي يحددها النظام والمستخدم والمساعد. يمكن استخدام رسالة النظام لإعداد النموذج الأولي من خلال تضمين سياق أو إرشادات حول كيفية استجابة النموذج.

يوفر دليل الكيفية GPT-35-Turbo وGPT-4 مقدمة متعمقة في خيارات التواصل مع هذه النماذج الجديدة.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية

المتطلبات الأساسية

  • اشتراك Azure - إنشاء اشتراك مجاناً
  • الوصول الممنوح لخدمة Azure OpenAI في اشتراك Azure المطلوب. حاليًا، يتم منح الوصول إلى هذه الخدمة فقط بواسطة التطبيق. يمكنك التقدم بطلب للوصول إلى خدمة Azure OpenAI عن طريق إكمال النموذج في https://aka.ms/oai/access.
  • يمكنك استخدام أحدث إصدار، PowerShell 7، أو Windows PowerShell 5.1.
  • مورد خدمة Azure OpenAI مع نموذج مُوزع. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.
  • مورد خدمة Azure OpenAI مع النماذج gpt-35-turbo أو gpt-4 التي تم نشرها. لمزيد من المعلومات حول نشر النموذج، راجع دليل توزيع الموارد.

قم باسترداد المفتاح ونقطة النهاية

لإجراء مكالمة بنجاح مقابل Azure OpenAI، ستحتاج إلى نقطة نهاية ومفتاح.

اسم المتغير القيمة‬
ENDPOINT يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. بدلاً من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
API-KEY يمكن العثور على هذه القيمة في قسم المفاتيح ونقطة النهاية عند فحص المورد من مدخل Microsoft Azure. يمكنك استخدام إما KEY1 أو KEY2.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. يمكن العثور على نقطة النهاية والمفاتيح في قسم إدارة الموارد. انسخ نقطة النهاية ومفتاح الوصول حيث ستحتاج إلى كليهما لمصادقة استدعاءات واجهة برمجة التطبيقات. يمكنك استخدام إما KEY1 أو KEY2. يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة لواجهة مستخدم النظرة العامة لمورد Azure OpenAI في مدخل Azure مع وضع دائرة حول موقع مفاتيح نقطة النهاية باللون الأحمر.

إنشاء متغيرات بيئة ثابتة وتعيينها للمفتاح ونقطة النهاية.

متغيرات البيئة

$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'

إنشاء برنامج نصي PowerShell جديد

  1. إنشاء ملف PowerShell جديد يسمى quickstart.ps1. ثم افتحه في المحرر أو IDE المُفضل لديك.

  2. استبدل محتويات quickstart.ps1 بالتعليمات البرمجية التالية. تحتاج إلى تعيين engine المتغير إلى اسم النشر الذي اخترته عند نشر نماذج GPT-35-Turbo أو GPT-4. سيؤدي إدخال اسم النموذج إلى حدوث خطأ ما لم تختص باسم نشر مطابق لاسم النموذج الأساسي.

    # Azure OpenAI metadata variables
    $openai = @{
       api_key     = $Env:AZURE_OPENAI_API_KEY
       api_base    = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/
       api_version = '2024-02-01' # this may change in the future
       name        = 'YOUR-DEPLOYMENT-NAME-HERE' #This will correspond to the custom name you chose for your deployment when you deployed a model.
    }
    
    # Completion text
    $messages = @()
    $messages += @{
      role = 'system'
      content = 'You are a helpful assistant.'
    }
    $messages += @{
      role = 'user'
      content = 'Does Azure OpenAI support customer managed keys?'
    }
    $messages += @{
      role = 'assistant'
      content = 'Yes, customer managed keys are supported by Azure OpenAI.'
    }
    $messages += @{
      role = 'user'
      content = 'Do other Azure AI services support this too?'
    }
    
    # Header for authentication
    $headers = [ordered]@{
       'api-key' = $openai.api_key
    }
    
    # Adjust these values to fine-tune completions
    $body = [ordered]@{
       messages = $messages
    } | ConvertTo-Json
    
    # Send a request to generate an answer
    $url = "$($openai.api_base)/openai/deployments/$($openai.name)/chat/completions?api-version=$($openai.api_version)"
    
    $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json'
    return $response
    

    هام

    للإنتاج، استخدم طريقة آمنة لتخزين بيانات الاعتماد الخاصة بك والوصول إليها مثل إدارة PowerShell السرية باستخدام Azure Key Vault. لمزيد من المعلومات حول أمان بيانات الاعتماد، راجع مقالة أمان خدمات Azure الذكاء الاصطناعي.

  3. تشغيل البرنامج النصي باستخدام PowerShell:

    ./quickstart.ps1
    

المخرجات

# the output of the script will be a .NET object containing the response
id      : chatcmpl-7sdJJRC6fDNGnfHMdfHXvPkYFbaVc
object  : chat.completion
created : 1693255177
model   : gpt-35-turbo
choices : {@{index=0; finish_reason=stop; message=}}
usage   : @{completion_tokens=67; prompt_tokens=55; total_tokens=122}

# convert the output to JSON
./quickstart.ps1 | ConvertTo-Json -Depth 3

# or to view the text returned, select the specific object property
$reponse = ./quickstart.ps1
$response.choices.message.content

فهم بنية الرسالة

تم تحسين نماذج GPT-35-Turbo وGPT-4 للعمل مع المدخلات المنسقة كمحادثة. يمرر messages المتغير صفيفا من القواميس بأدوار مختلفة في المحادثة التي يحددها النظام والمستخدم والمساعد. يمكن استخدام رسالة النظام لإعداد النموذج الأولي من خلال تضمين سياق أو إرشادات حول كيفية استجابة النموذج.

يوفر دليل الكيفية GPT-35-Turbo وGPT-4 مقدمة متعمقة في خيارات التواصل مع هذه النماذج الجديدة.

تنظيف الموارد

إذا كنت ترغب في تنظيف مورد Azure OpenAI وإزالته، يمكنك حذف المورد. قبل حذف المورد، يجب أولا حذف أي نماذج تم نشرها.

الخطوات التالية