التشغيل السريع: إنشاء صور باستخدام خدمة Azure OpenAI

إشعار

تنشئ واجهة برمجة تطبيقات إنشاء الصور صورة من مطالبة نصية. لا يقوم بتحرير الصور الموجودة أو إنشاء تباينات.

استخدم هذا الدليل لبدء إنشاء الصور باستخدام Azure OpenAI في المستعرض.

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

إشعار

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

انتقل إلى Azure OpenAI Studio

استعرض للوصول إلى Azure OpenAI Studio وسجل الدخول باستخدام بيانات الاعتماد المقترنة بمورد Azure OpenAI. أثناء سير عمل تسجيل الدخول أو بعده، حدد الدليل المناسب واشتراك Azure ومورد Azure OpenAI.

من الصفحة المنتقل إليها في Azure OpenAI Studio، حدد DALL· ملعب E (معاينة) لاستخدام واجهات برمجة تطبيقات إنشاء الصور. حدد الإعدادات بالقرب من أعلى الصفحة وتأكد من أن القائمة المنسدلة Deployment تم تحديد توزيع DALL-E 3 الخاص بك.

تجربة إنشاء الصور

ابدأ في استكشاف قدرات Azure OpenAI باستخدام نهج بدون تعليمات برمجية من خلال DALL· ملعب E (معاينة). أدخل مطالبة الصورة في مربع النص وحدد إنشاء. عندما تكون الصورة التي تم إنشاؤها الذكاء الاصطناعي جاهزة، تظهر على الصفحة.

إشعار

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

لقطة شاشة للصفحة المنتقل إليها في Azure OpenAI Studio تعرض ملعب DALL-E (معاينة) مع صور تم إنشاؤها للدببة القطبية.

في DALL· ملعب E (معاينة)، يمكنك أيضا عرض نماذج التعليمات البرمجية Python وcURL، والتي يتم تعبئتها مسبقا وفقا لإعداداتك. حدد عرض التعليمات البرمجية بالقرب من أعلى الصفحة. يمكنك استخدام هذه التعليمة البرمجية لكتابة تطبيق يكمل نفس المهمة.

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

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

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

استخدم هذا الدليل للبدء في استدعاء واجهات برمجة تطبيقات REST لصورة Azure OpenAI Service باستخدام Python.

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

إشعار

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

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

لاستدعاء واجهات برمجة تطبيقات Azure OpenAI بنجاح، تحتاج إلى المعلومات التالية حول مورد Azure OpenAI الخاص بك:

عامل الاسم القيمة‬
نقطه النهايه api_base تقع قيمة نقطة النهاية ضمن المفاتيح ونقطة النهاية للمورد الخاص بك في مدخل Microsoft Azure. بدلا من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
المفتاح api_key تقع قيمة المفتاح أيضا ضمن المفاتيح ونقطة النهاية للمورد الخاص بك في مدخل Microsoft Azure. ينشئ Azure مفتاحين للمورد الخاص بك. يمكنك استخدام أي من القيمتين.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. في جزء التنقل، حدد Keys and Endpoint ضمن Resource Management. انسخ قيمة نقطة النهاية وقيمة مفتاح الوصول. يمكنك استخدام قيمة KEY 1 أو KEY 2 . يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

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

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

إنشاء ملف Python جديد يسمى quickstart.py. افتح الملف الجديد في المحرر المفضل لديك أو IDE.

  1. استبدل محتويات quickstart.py بالتعليمات البرمجية التالية. أدخل عنوان URL لنقطة النهاية والمفتاح في الحقول المناسبة. غير قيمة prompt إلى النص المفضل لديك.

    تحتاج أيضا إلى استبدال <dalle3> في عنوان URL باسم النشر الذي اخترته عند نشر نموذج DALL-E 3. سيؤدي إدخال اسم النموذج إلى حدوث خطأ ما لم تختص باسم نشر مطابق لاسم النموذج الأساسي. إذا واجهت خطأ، فتحقق مرة أخرى للتأكد من عدم وجود مضاعفة / للفصل بين نقطة النهاية و /openai/deployments.

    import requests
    import time
    import os
    api_base = '<your_endpoint>'  # Enter your endpoint here
    api_key = '<your_key>'        # Enter your API key here
    
    api_version = '2024-02-01'
    url = f"{api_base}/openai/deployments/<dalle3>/images/generations?api-version={api_version}"
    headers= { "api-key": api_key, "Content-Type": "application/json" }
    body = {
        # Enter your prompt text here
        "prompt": "A multi-colored umbrella on the beach, disposable camera",
        "size": "1024x1024", # supported values are “1792x1024”, “1024x1024” and “1024x1792” 
        "n": 1, #The number of images to generate. Only n=1 is supported for DALL-E 3.
        "quality": "hd", # Options are “hd” and “standard”; defaults to standard 
        "style": "vivid" # Options are “natural” and “vivid”; defaults to “vivid”
    }
    submission = requests.post(url, headers=headers, json=body)
    
    image_url = submission.json()['data'][0]['url']
    
    print(image_url)
    

    يقوم البرنامج النصي بإجراء استدعاء واجهة برمجة تطبيقات لإنشاء صورة متزامنة.

    هام

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

  2. قم بتشغيل التطبيق باستخدام الأمر python:

    python quickstart.py
    

    انتظر بضع لحظات للحصول على الاستجابة.

المخرجات

يبدو الإخراج من استدعاء API الناجح لإنشاء الصور مثل المثال التالي. url يحتوي الحقل على عنوان URL حيث يمكنك تنزيل الصورة التي تم إنشاؤها. يظل عنوان URL نشطا لمدة 24 ساعة.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "url": "<URL_to_generated_image>",
            "revised_prompt": "<prompt_that_was_used>" 
        }
    ]
} 

تأتي واجهات برمجة تطبيقات إنشاء الصور مع عامل تصفية con وضع الخيمة ration. إذا كانت الخدمة تتعرف على مطالبتك كمحتوى ضار، فلن تنشئ صورة. لمزيد من المعلومات، راجع تصفية المحتوى. للحصول على أمثلة للاستجابات للخطأ، راجع دليل الكيفية DALL-E.

يقوم النظام بإرجاع حالة Failed عملية ويتم error.code تعيين القيمة في الرسالة إلى contentFilter. إليك مثال:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Your task failed as a result of our safety system."
    }
}

من الممكن أيضا تصفية الصورة التي تم إنشاؤها نفسها. في هذه الحالة، يتم تعيين رسالة الخطأ إلى Generated image was filtered as a result of our safety system.. إليك مثال:

{
    "created": 1698435368,
    "error":
    {
        "code": "contentFilter",
        "message": "Generated image was filtered as a result of our safety system."
    }
}

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

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

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

استخدم هذا الدليل لبدء إنشاء الصور باستخدام Azure OpenAI SDK ل Python.

رمز مصدر المكتبة | الحزمة | عينات

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

إشعار

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

الإعداد

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

لاستدعاء واجهات برمجة تطبيقات Azure OpenAI بنجاح، تحتاج إلى المعلومات التالية حول مورد Azure OpenAI الخاص بك:

عامل الاسم القيمة‬
نقطه النهايه api_base تقع قيمة نقطة النهاية ضمن المفاتيح ونقطة النهاية للمورد الخاص بك في مدخل Microsoft Azure. بدلا من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
المفتاح api_key تقع قيمة المفتاح أيضا ضمن المفاتيح ونقطة النهاية للمورد الخاص بك في مدخل Microsoft Azure. ينشئ Azure مفتاحين للمورد الخاص بك. يمكنك استخدام أي من القيمتين.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. في جزء التنقل، حدد Keys and Endpoint ضمن Resource Management. انسخ قيمة نقطة النهاية وقيمة مفتاح الوصول. يمكنك استخدام قيمة KEY 1 أو KEY 2 . يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

لقطة شاشة تعرض صفحة المفاتيح ونقطة النهاية لمورد 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 جديد

افتح موجه الأوامر واستعرض للوصول إلى مجلد المشروع. إنشاء ملف python جديد، quickstart.py.

تثبيت Python SDK

تثبيت OpenAI Python SDK باستخدام الأمر التالي:

pip install openai

قم بتثبيت المكتبات التالية أيضا:

pip install requests
pip install pillow 

إنشاء صور باستخدام DALL-E

افتح _quickstart.py في المحرر المفضل لديك أو IDE.

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

from openai import AzureOpenAI
import os
import requests
from PIL import Image
import json

client = AzureOpenAI(
    api_version="2024-02-01",  
    api_key=os.environ["AZURE_OPENAI_API_KEY"],  
    azure_endpoint=os.environ['AZURE_OPENAI_ENDPOINT']
)

result = client.images.generate(
    model="dalle3", # the name of your DALL-E 3 deployment
    prompt="a close-up of a bear walking throughthe forest",
    n=1
)

json_response = json.loads(result.model_dump_json())

# Set the directory for the stored image
image_dir = os.path.join(os.curdir, 'images')

# If the directory doesn't exist, create it
if not os.path.isdir(image_dir):
    os.mkdir(image_dir)

# Initialize the image path (note the filetype should be png)
image_path = os.path.join(image_dir, 'generated_image.png')

# Retrieve the generated image
image_url = json_response["data"][0]["url"]  # extract image URL from response
generated_image = requests.get(image_url).content  # download the image
with open(image_path, "wb") as image_file:
    image_file.write(generated_image)

# Display the image in the default image viewer
image = Image.open(image_path)
image.show()
  1. أدخل عنوان URL لنقطة النهاية والمفتاح في الحقول المناسبة.
  2. غير قيمة prompt إلى النص المفضل لديك.
  3. تغيير قيمة model إلى اسم نموذج DALL-E 3 المنشور.

هام

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

قم بتشغيل التطبيق باستخدام الأمر python:

python quickstart.py

انتظر بضع لحظات للحصول على الاستجابة.

المخرجات

يخزن Azure OpenAI صورة الإخراج في ملف generated_image.png في الدليل المحدد. يعرض البرنامج النصي أيضا الصورة في عارض الصور الافتراضي.

تأتي واجهات برمجة تطبيقات إنشاء الصور مع عامل تصفية con وضع الخيمة ration. إذا كانت الخدمة تتعرف على مطالبتك كمحتوى ضار، فلن تنشئ صورة. لمزيد من المعلومات، راجع تصفية المحتوى.

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

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

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

استخدم هذا الدليل لبدء إنشاء الصور باستخدام Azure OpenAI SDK ل C#‎.

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

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

إشعار

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

الإعداد

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

لإجراء مكالمة بنجاح مقابل 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" 

إنشاء تطبيق .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 SDK

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

dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6

إنشاء صور باستخدام DALL-E

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

using System;
using System.IO;
using System.Threading.Tasks;
using Azure.AI.OpenAI;

namespace Azure.AI.OpenAI.Tests.Samples
{
    public partial class GenerateImages
    {
        // add an async Main method:
        public static async Task Main(string[] args)
        {
            string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
            string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

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

            Response<ImageGenerations> imageGenerations = await client.GetImageGenerationsAsync(
                new ImageGenerationOptions()
                {
                    Prompt = "a happy monkey eating a banana, in watercolor",
                    Size = ImageSize.Size256x256,
                });

            // Image Generations responses provide URLs you can use to retrieve requested images
            Uri imageUri = imageGenerations.Value.Data[0].Url;
            
            // Print the image URI to console:
            Console.WriteLine(imageUri);
        }
    }
}

إنشاء التطبيق وتشغيله من دليل التطبيق الخاص بك باستخدام هذه الأوامر:

dotnet build
dotnet run

المخرجات

تتم طباعة عنوان URL للصورة التي تم إنشاؤها إلى وحدة التحكم.

https://dalleproduse.blob.core.windows.net/private/images/552c5522-af4a-4877-a19c-400fac04a422/generated_00.png?se=2023-08-17T16%3A54%3A40Z&sig=XGCIx9r0WvWTJ0LL%2FJGymo2WYp4FDbSQNNrGRUnnUzI%3D&ske=2023-08-19T01%3A10%3A14Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-12T01%3A10%3A14Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02

إشعار

تأتي واجهات برمجة تطبيقات إنشاء الصور مع عامل تصفية con وضع الخيمة ration. إذا تعرفت الخدمة على مطالبتك كمحتوى ضار، فلن ترجع صورة تم إنشاؤها. لمزيد من المعلومات، راجع مقالة تصفية المحتوى.

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

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

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

  • استكشف واجهات برمجة تطبيقات إنشاء الصور بمزيد من التعمق باستخدام دليل الكيفية DALL-E.
  • لمزيد من الأمثلة، راجع مستودع Azure OpenAI Samples GitHub.

استخدم هذا الدليل لبدء إنشاء الصور باستخدام Azure OpenAI SDK ل Java.

نماذج التعليمات البرمجية | المصدر للمكتبة Artifact (Maven) | Samples

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

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

إشعار

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

الإعداد

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

لإجراء مكالمة بنجاح مقابل 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")
}

إنشاء صور باستخدام DALL-E

  1. أنشئ ملف Java.

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

    mkdir -p src/main/java
    

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

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

    import com.azure.ai.openai.OpenAIAsyncClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.ImageGenerationOptions;
    import com.azure.ai.openai.models.ImageLocation;
    import com.azure.core.credential.AzureKeyCredential;
    import com.azure.core.models.ResponseError;
    
    import java.util.concurrent.TimeUnit;
    
    /**
     * Sample demonstrates how to get the images for a given prompt.
     */
    public class OpenAIQuickstart {
    
        /**
         * Runs the sample algorithm and demonstrates how to get the images for a given prompt.
         *
         * @param args Unused. Arguments to the program.
         */
        public static void main(String[] args) throws InterruptedException {
    
            // Get key and endpoint from environment variables:
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");
    
            OpenAIAsyncClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .buildAsyncClient();
    
            ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions(
                "A drawing of the Seattle skyline in the style of Van Gogh");
            client.getImages(imageGenerationOptions).subscribe(
                images -> {
                    for (ImageLocation imageLocation : images.getData()) {
                        ResponseError error = imageLocation.getError();
                        if (error != null) {
                            System.out.printf("Image generation operation failed. Error code: %s, error message: %s.%n",
                                error.getCode(), error.getMessage());
                        } else {
                            System.out.printf(
                                "Image location URL that provides temporary access to download the generated image is %s.%n",
                                imageLocation.getUrl());
                        }
                    }
                },
                error -> System.err.println("There was an error getting images." + error),
                () -> System.out.println("Completed getImages."));
    
            // The .subscribe() creation and assignment is not a blocking call. For the purpose of this example, we sleep
            // the thread so the program does not end before the send operation is complete. Using .block() instead of
            // .subscribe() will turn this into a synchronous call.
            TimeUnit.SECONDS.sleep(10);
        }
    }
    
  3. انتقل مرة أخرى إلى المجلد الجذر للمشروع، وأنشئ التطبيق باستخدام:

    gradle build
    

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

    gradle run
    

المخرجات

تتم طباعة عنوان URL للصورة التي تم إنشاؤها إلى وحدة التحكم.

Image location URL that provides temporary access to download the generated image is https://dalleproduse.blob.core.windows.net/private/images/d2ea917f-8802-4ad6-8ef6-3fb7a15c8482/generated_00.png?se=2023-08-25T23%3A11%3A28Z&sig=%2BKa5Mkb9U88DfvxoBpyAjamYRzwb7aVCEucM6XJC3wQ%3D&ske=2023-08-31T15%3A27%3A47Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-24T15%3A27%3A47Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02.
Completed getImages.

إشعار

تأتي واجهات برمجة تطبيقات إنشاء الصور مع عامل تصفية con وضع الخيمة ration. إذا تعرفت الخدمة على مطالبتك كمحتوى ضار، فلن ترجع صورة تم إنشاؤها. لمزيد من المعلومات، راجع مقالة تصفية المحتوى.

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

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

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

استخدم هذا الدليل لبدء إنشاء الصور باستخدام Azure OpenAI SDK ل JavaScript.

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

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

إشعار

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

الإعداد

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

لإجراء مكالمة بنجاح مقابل 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 الخاص بتطبيقك بالتبعيات.

إنشاء صور باستخدام DALL-E

أنشئ ملفا جديدا باسم ImageGeneration.js وافتحه في محرر التعليمات البرمجية المفضل لديك. انسخ التعليمات البرمجية التالية في ملف ImageGeneration.js :

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");

// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

// The prompt to generate images from
const prompt = "a monkey eating a banana";
const size = "256x256";

// The number of images to generate
const n = 2;

async function main() {
    console.log("== Batch Image Generation ==");
  
    const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
    const deploymentName = "dall-e";
    const results = await client.getImages(deploymentName, prompt, { n, size });
  
    for (const image of results.data) {
      console.log(`Image generation result URL: ${image.url}`);
    }
    //console.log(`Image generation result URL: ${results.result.status}`);
}

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

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

node _ImageGeneration.js

المخرجات

تتم طباعة عنوان URL للصورة التي تم إنشاؤها إلى وحدة التحكم.

== Batch Image Generation ==
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_00.png?se=2023-08-29T19%3A12%3A57Z&sig=655GkWajOZ9ALjFykZF%2FBMZRPQALRhf4UPDImWCQoGI%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_01.png?se=2023-08-29T19%3A12%3A57Z&sig=B24ymPLSZ3HfG23uojOD9VlRFGxjvgcNmvFo4yPUbEc%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02

إشعار

تأتي واجهات برمجة تطبيقات إنشاء الصور مع عامل تصفية con وضع الخيمة ration. إذا تعرفت الخدمة على مطالبتك كمحتوى ضار، فلن ترجع صورة تم إنشاؤها. لمزيد من المعلومات، راجع مقالة تصفية المحتوى.

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

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

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

  • استكشف واجهات برمجة تطبيقات إنشاء الصور بمزيد من التعمق باستخدام دليل الكيفية DALL-E.
  • لمزيد من الأمثلة، راجع مستودع Azure OpenAI Samples GitHub.

استخدم هذا الدليل لبدء إنشاء الصور باستخدام Azure OpenAI SDK for Go.

رمز مصدر المكتبة | الحزمة | عينات

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

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

إشعار

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

الإعداد

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

لإجراء مكالمة بنجاح مقابل 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" 

أنشئ تطبيق Go جديد

افتح موجه الأوامر وانتقل إلى مجلد المشروع. إنشاء ملف جديد sample.go.

تثبيت Go SDK

تثبيت OpenAI Go SDK باستخدام الأمر التالي:

go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai@latest

أو، إذا كنت تستخدم dep، ضمن تشغيل المستودع الخاص بك:

dep ensure -add github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai

إنشاء صور باستخدام DALL-E

افتح sample.go في محرر التعليمات البرمجية المفضل لديك.

أضف التعليمات البرمجية التالية إلى البرنامج النصي الخاص بك:

package main

import (
	"context"
	"fmt"
	"net/http"
	"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")

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

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

	keyCredential, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		// handle error
	}

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

	if err != nil {
		// handle error
	}

	resp, err := client.CreateImage(context.TODO(), azopenai.ImageGenerationOptions{
		Prompt:         to.Ptr("a painting of a cat in the style of Dali"),
		ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL),
	}, nil)

	if err != nil {
		// handle error
	}

	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 {
			// handle error
		}

		fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.URL)
	}
}

تشغيل البرنامج النصي باستخدام go run الأمر :

go run sample.go

المخرجات

تتم طباعة عنوان URL للصورة التي تم إنشاؤها إلى وحدة التحكم.

Image generated, HEAD request on URL returned 200
Image URL: https://dalleproduse.blob.core.windows.net/private/images/d7b28a5c-ca32-4792-8c2a-6a5d8d8e5e45/generated_00.png?se=2023-08-29T17%3A05%3A37Z&sig=loqntaPypYVr9VTT5vpbsjsCz31g1GsdoQi0smbGkks%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02

إشعار

تأتي واجهات برمجة تطبيقات إنشاء الصور مع عامل تصفية con وضع الخيمة ration. إذا تعرفت الخدمة على مطالبتك كمحتوى ضار، فلن ترجع صورة تم إنشاؤها. لمزيد من المعلومات، راجع مقالة تصفية المحتوى.

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

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

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

  • استكشف واجهات برمجة تطبيقات إنشاء الصور بمزيد من التعمق باستخدام دليل الكيفية DALL-E.
  • لمزيد من الأمثلة، راجع مستودع Azure OpenAI Samples GitHub.

استخدم هذا الدليل للبدء في استدعاء واجهات برمجة تطبيقات إنشاء صور خدمة Azure OpenAI باستخدام PowerShell.

إشعار

تنشئ واجهة برمجة تطبيقات إنشاء الصور صورة من مطالبة نصية. لا يقوم بتحرير الصور الموجودة أو إنشاء تباينات.

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

إشعار

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

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

لاستدعاء واجهات برمجة تطبيقات Azure OpenAI بنجاح، تحتاج إلى المعلومات التالية حول مورد Azure OpenAI الخاص بك:

عامل الاسم القيمة‬
نقطه النهايه api_base تقع قيمة نقطة النهاية ضمن المفاتيح ونقطة النهاية للمورد الخاص بك في مدخل Microsoft Azure. بدلا من ذلك، يمكنك العثور على القيمة في Azure OpenAI Studio>Playground>Code View. مثال على نقطة النهاية هو: https://docs-test-001.openai.azure.com/.
المفتاح api_key تقع قيمة المفتاح أيضا ضمن المفاتيح ونقطة النهاية للمورد الخاص بك في مدخل Microsoft Azure. ينشئ Azure مفتاحين للمورد الخاص بك. يمكنك استخدام أي من القيمتين.

انتقل إلى مجموعة الموارد في مدخل Microsoft Azure. في جزء التنقل، حدد Keys and Endpoint ضمن Resource Management. انسخ قيمة نقطة النهاية وقيمة مفتاح الوصول. يمكنك استخدام قيمة KEY 1 أو KEY 2 . يسمح لك وجود مفتاحين دائماً بتدوير المفاتيح وإعادة إنشائها بأمان دون التسبب في تعطيل الخدمة.

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

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

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

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

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

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

  2. استبدل محتويات quickstart.ps1 بالتعليمات البرمجية التالية. أدخل عنوان URL لنقطة النهاية والمفتاح في الحقول المناسبة. غير قيمة prompt إلى النص المفضل لديك.

    # 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 = '2023-06-01-preview' # this may change in the future
    }
    
    # Text to describe image
    $prompt = 'A painting of a dog'
    
    # Header for authentication
    $headers = [ordered]@{
      'api-key' = $openai.api_key
    }
    
    # Adjust these values to fine-tune completions
    $body = [ordered]@{
       prompt = $prompt
       size   = '1024x1024'
       n      = 1
    } | ConvertTo-Json
    
     # Call the API to generate the image and retrieve the response
    $url = "$($openai.api_base)/openai/images/generations:submit?api-version=$($openai.api_version)"
    
    $submission = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' -ResponseHeadersVariable submissionHeaders
    
     $operation_location = $submissionHeaders['operation-location'][0]
     $status = ''
     while ($status -ne 'succeeded') {
         Start-Sleep -Seconds 1
         $response = Invoke-RestMethod -Uri $operation_location -Headers $headers
         $status   = $response.status
     }
    
    # Set the directory for the stored image
    $image_dir = Join-Path -Path $pwd -ChildPath 'images'
    
    # If the directory doesn't exist, create it
    if (-not(Resolve-Path $image_dir -ErrorAction Ignore)) {
        New-Item -Path $image_dir -ItemType Directory
    }
    
    # Initialize the image path (note the filetype should be png)
    $image_path = Join-Path -Path $image_dir -ChildPath 'generated_image.png'
    
    # Retrieve the generated image
    $image_url = $response.result.data[0].url  # extract image URL from response
    $generated_image = Invoke-WebRequest -Uri $image_url -OutFile $image_path  # download the image
    return $image_path
    

    هام

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

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

    ./quickstart.ps1
    

    يتكرر البرنامج النصي حتى تصبح الصورة التي تم إنشاؤها جاهزة.

المخرجات

يطلب PowerShell الصورة من Azure OpenAI ويخزن صورة الإخراج في ملف generated_image.png في الدليل المحدد. للراحة، يتم إرجاع المسار الكامل للملف في نهاية البرنامج النصي.

تأتي واجهات برمجة تطبيقات إنشاء الصور مع عامل تصفية con وضع الخيمة ration. إذا كانت الخدمة تتعرف على مطالبتك كمحتوى ضار، فلن تنشئ صورة. لمزيد من المعلومات، راجع تصفية المحتوى.

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

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

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

  • استكشف واجهات برمجة تطبيقات إنشاء الصور بمزيد من التعمق باستخدام دليل الكيفية DALL-E.
  • جرب الأمثلة في مستودع Azure OpenAI Samples GitHub.