Dokumentacja interfejsu API REST usługi Azure OpenAI

Ten artykuł zawiera szczegółowe informacje na temat punktów końcowych interfejsu API REST wnioskowania dla usługi Azure OpenAI.

Uwierzytelnianie

Usługa Azure OpenAI udostępnia dwie metody uwierzytelniania. Możesz użyć kluczy interfejsu API lub identyfikatora entra firmy Microsoft.

  • Uwierzytelnianie klucza interfejsu API: w przypadku tego typu uwierzytelniania wszystkie żądania interfejsu API muszą zawierać klucz interfejsu API w nagłówku api-key HTTP. Przewodnik Szybki start zawiera wskazówki dotyczące wykonywania wywołań przy użyciu tego typu uwierzytelniania.

  • Uwierzytelnianie identyfikatora Entra firmy Microsoft: możesz uwierzytelnić wywołanie interfejsu API przy użyciu tokenu Entra firmy Microsoft. Tokeny uwierzytelniania są dołączane do żądania jako nagłówka Authorization . Podany token musi być poprzedzony elementem Bearer, na przykład Bearer YOUR_AUTH_TOKEN. Możesz przeczytać nasz przewodnik z instrukcjami dotyczącymi uwierzytelniania za pomocą identyfikatora Entra firmy Microsoft.

Przechowywanie wersji interfejsu API REST

Interfejsy API usługi są wersjonowane przy użyciu parametru api-version zapytania. Wszystkie wersje są zgodne ze strukturą dat RRRR-MM-DD. Na przykład:

POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/completions?api-version=2024-02-01

Uzupełnień

W przypadku operacji Uzupełnianie model generuje co najmniej jedno przewidywane ukończenie na podstawie podanego monitu. Usługa może również zwrócić prawdopodobieństwo alternatywnych tokenów na każdej pozycji.

Tworzenie ukończenia

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/completions?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
deployment-id string Wymagania Nazwa wdrożenia wybrana podczas wdrażania modelu.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Parametr Type Wymagane? Domyślny opis
prompt ciąg lub tablica Opcjonalnie <\|endoftext\|> Monit lub monituje o wygenerowanie uzupełniania dla ciągów zakodowanych jako ciąg lub tablicę ciągów. <\|endoftext\|> to separator dokumentu, który widzi model podczas trenowania, więc jeśli monit nie zostanie określony, model zostanie wygenerowany tak, jakby od początku nowego dokumentu.
max_tokens integer Opcjonalnie 16 Maksymalna liczba tokenów do wygenerowania w zakończeniu. Liczba tokenów monitu i max_tokens nie może przekroczyć długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096).
temperature Liczba Opcjonalnie 1 Jaka temperatura próbkowania ma być używana z zakresu od 0 do 2. Wyższe wartości oznaczają, że model podejmuje większe ryzyko. Wypróbuj 0.9, aby uzyskać więcej kreatywnych aplikacji i 0 (argmax sampling) dla tych z dobrze zdefiniowaną odpowiedzią. Ogólnie zaleca się zmianę tego lub top_p, ale nie obu.
top_p Liczba Opcjonalnie 1 Alternatywą dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, gdzie model uwzględnia wyniki tokenów z top_p masą prawdopodobieństwa. Dlatego 0,1 oznacza, że uwzględniane są tylko tokeny składające się z pierwszej masy prawdopodobieństwa o 10%. Ogólnie zalecamy zmianę tej wartości lub temperatury, ale nie obu.
logit_bias map Opcjonalnie null Zmodyfikuj prawdopodobieństwo wyświetlania określonych tokenów w zakończeniu. Akceptuje obiekt JSON, który mapuje tokeny (określone przez ich identyfikator tokenu w tokenizer GPT) na skojarzona wartość stronnicza z -100 do 100. Możesz użyć tego narzędzia tokenizatora (które działa zarówno dla GPT-2, jak i GPT-3), aby przekonwertować tekst na identyfikatory tokenów. Matematycznie stronniczy jest dodawany do logitów wygenerowanych przez model przed próbkowaniem. Dokładny efekt różni się w zależności od modelu, ale wartości z zakresu od -1 do 1 powinny zmniejszyć lub zwiększyć prawdopodobieństwo wyboru; wartości takie jak -100 lub 100 powinny spowodować zakaz lub wyłączny wybór odpowiedniego tokenu. Na przykład możesz przekazać {"50256": -100}, aby zapobiec wygenerowaniu tokenu <|endoftext|> .
user string Opcjonalnie Unikatowy identyfikator reprezentujący użytkownika końcowego, który może pomóc w monitorowaniu i wykrywaniu nadużyć
n integer Opcjonalnie 1 Ile uzupełniania ma być generowanych dla każdego monitu. Uwaga: ponieważ ten parametr generuje wiele uzupełniania, może szybko korzystać z limitu przydziału tokenu. Należy dokładnie użyć i upewnić się, że masz odpowiednie ustawienia dla max_tokens i zatrzymaj.
stream boolean Opcjonalnie Fałsz Czy przesyłać strumieniowo częściowy postęp. W przypadku ustawienia tokeny są wysyłane jako zdarzenia wysyłane tylko do serwera, gdy staną się dostępne, a strumień zostanie zakończony przez dane: [GOTOWE] komunikat.
logprobs integer Opcjonalnie null Uwzględnij prawdopodobieństwa dziennika na tokenach logprobs najprawdopodobniej, a także wybrane tokeny. Jeśli na przykład logprobs ma wartość 10, interfejs API zwróci listę 10 najbardziej prawdopodobnych tokenów. Interfejs API zawsze zwraca logprob przykładowego tokenu, więc w odpowiedzi może istnieć maksymalnie 1 element logprobs+1. Tego parametru nie można używać z parametrem gpt-35-turbo.
suffix string Opcjonalnie null Sufiks, który pojawia się po zakończeniu wstawionego tekstu.
echo boolean Opcjonalnie Fałsz Powtórz ponownie monit oprócz ukończenia. Tego parametru nie można używać z parametrem gpt-35-turbo.
stop ciąg lub tablica Opcjonalnie null Maksymalnie cztery sekwencje, w których interfejs API przestanie generować kolejne tokeny. Zwrócony tekst nie będzie zawierać sekwencji zatrzymania. W przypadku GPT-4 Turbo z wizją obsługiwane są maksymalnie dwie sekwencje.
presence_penalty Liczba Opcjonalnie 0 Liczba z zakresu od -2.0 do 2.0. Wartości dodatnie karzą nowe tokeny na podstawie tego, czy są one wyświetlane w tekście do tej pory, zwiększając prawdopodobieństwo, że model będzie mówił o nowych tematach.
frequency_penalty Liczba Opcjonalnie 0 Liczba z zakresu od -2.0 do 2.0. Wartości dodatnie karzeją nowe tokeny na podstawie ich istniejącej częstotliwości w tekście do tej pory, zmniejszając prawdopodobieństwo powtórzeń tego samego wiersza.
best_of integer Opcjonalnie 1 Generuje best_of uzupełniania po stronie serwera i zwraca wartość "najlepszą" (z najniższym prawdopodobieństwem dziennika na token). Nie można przesyłać strumieniowo wyników. W przypadku użycia z n best_of kontroluje liczbę ukończonych kandydatów, a n określa, ile ma zostać zwróconych — best_of musi być większa niż n. Uwaga: ponieważ ten parametr generuje wiele uzupełniania, może szybko korzystać z limitu przydziału tokenu. Należy dokładnie użyć i upewnić się, że masz odpowiednie ustawienia dla max_tokens i zatrzymaj. Tego parametru nie można używać z parametrem gpt-35-turbo.

Przykładowe żądanie

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/completions?api-version=2024-02-01\
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d "{
  \"prompt\": \"Once upon a time\",
  \"max_tokens\": 5
}"

Przykładowa odpowiedź

{
    "id": "cmpl-4kGh7iXtjW4lc9eGhff6Hp8C7btdQ",
    "object": "text_completion",
    "created": 1646932609,
    "model": "ada",
    "choices": [
        {
            "text": ", a dark line crossed",
            "index": 0,
            "logprobs": null,
            "finish_reason": "length"
        }
    ]
}

W przykładowej odpowiedzi finish_reason równa stopsię . Jeśli finish_reason równa się content_filter , zapoznaj się z naszym przewodnikiem filtrowania zawartości, aby zrozumieć, dlaczego tak się dzieje.

Osadzanie

Uzyskaj wektorową reprezentację danych wejściowych, które mogą być łatwo używane przez modele uczenia maszynowego i inne algorytmy.

Uwaga

Interfejs OpenAI obecnie umożliwia większą liczbę danych wejściowych tablicy za pomocą polecenia text-embedding-ada-002. Usługa Azure OpenAI obecnie obsługuje tablice wejściowe do 16 dla programu text-embedding-ada-002 (Version 2). Oba wymagają maksymalnego limitu tokenu wejściowego na żądanie interfejsu API, aby pozostać poniżej 8191 roku dla tego modelu.

Tworzenie osadzania

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/embeddings?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
deployment-id string Wymagania Nazwa wdrożenia modelu. Aby móc wykonywać wywołania, musisz najpierw wdrożyć model.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Parametr Type Wymagane? Domyślny opis
input ciąg lub tablica Tak Nie dotyczy Tekst wejściowy do pobrania osadzania dla elementu zakodowany jako tablica lub ciąg. Liczba tokenów wejściowych różni się w zależności od używanego modelu. Obsługuje tylko text-embedding-ada-002 (Version 2) dane wejściowe tablicy.
user string Nie Null (zero) Unikatowy identyfikator reprezentujący użytkownika końcowego. Pomoże to usłudze Azure OpenAI monitorować i wykrywać nadużycia. Nie przekazuj identyfikatorów PII zamiast tego używaj pseudonimizowane wartości, takich jak identyfikatory GUID
encoding_format string Nie float Format umożliwiający zwrócenie osadzania. Może to być wartość float lub base64. Wartość domyślna to float.

[Dodano w pliku 2024-03-01-preview].
dimensions integer Nie. Liczba wymiarów, które powinny mieć wynikowe osadzanie danych wyjściowych. Obsługiwane tylko w text-embedding-3 modelach i nowszych.

[Dodano w 2024-03-01-preview]

Przykładowe żądanie

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d "{\"input\": \"The food was delicious and the waiter...\"}"

Przykładowa odpowiedź

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... (1024 floats total for ada)
        0.021276434883475304,
      ],
      "index": 0
    }
  ],
  "model": "text-similarity-babbage:001"
}

Ukończenie czatu

Tworzenie uzupełniania wiadomości czatu przy użyciu modeli GPT-35-Turbo i GPT-4.

Tworzenie uzupełniania czatu

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/chat/completions?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
deployment-id string Wymagania Nazwa wdrożenia modelu. Aby móc wykonywać wywołania, musisz najpierw wdrożyć model.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Jest to zgodne z formatem RRRR-MM-DD lub RRRR-MM-DD-preview.

Obsługiwane wersje

Treść żądania

Treść żądania składa się z serii komunikatów. Model wygeneruje odpowiedź na ostatni komunikat przy użyciu wcześniejszych komunikatów jako kontekstu.

Parametr Type Wymagane? Domyślny opis
messages tablica Tak Nie dotyczy Seria wiadomości skojarzonych z tym żądaniem ukończenia czatu. Powinna zawierać poprzednie wiadomości w konwersacji. Każdy komunikat ma element role i content.
role string Tak Nie dotyczy Wskazuje, kto daje bieżącą wiadomość. Może to być system,user,toolassistant, lub function.
content ciąg lub tablica Tak Nie dotyczy Zawartość wiadomości. Musi to być ciąg, chyba że w scenariuszu z obsługą przetwarzania obrazów. Jeśli jest to część komunikatu user , używając modelu GPT-4 Turbo z obrazem, z najnowszą wersją interfejsu API, content musi być tablicą struktur, gdzie każdy element reprezentuje tekst lub obraz:
  • text: tekst wejściowy jest reprezentowany jako struktura o następujących właściwościach:
    • type = "text"
    • text = tekst wejściowy
  • images: obraz wejściowy jest reprezentowany jako struktura o następujących właściwościach:
    • type = "image_url"
    • image_url = struktura o następujących właściwościach:
      • url = adres URL obrazu
      • (opcjonalnie) detail = high, lowlub auto
contentPart obiekt Nie. Nie dotyczy Część komunikatu wielomodalnego użytkownika. Może to być typ tekstu lub typ obrazu. Jeśli tekst będzie ciągiem tekstowym. Jeśli obraz, będzie contentPartImage to obiekt.
contentPartImage obiekt Nie. Nie dotyczy Reprezentuje obraz przekazany przez użytkownika. Ma url właściwość , która jest adresem URL obrazu lub podstawowymi danymi obrazu zakodowanym w formacie 64. Ma również detail właściwość , która może mieć autowartość , lowlub high.
enhancements obiekt Nie. Nie dotyczy Reprezentuje funkcje ulepszenia przetwarzania obrazów wymagane do czatu. grounding Ma właściwości iocr, z których każda ma właściwość logicznąenabled. Użyj tych elementów, aby zażądać usługi OCR i/lub usługi wykrywania/uziemienia obiektu [Ten parametr w wersji zapoznawczej nie jest dostępny w interfejsie 2024-02-01 API ga i nie jest już dostępny w interfejsach API w wersji zapoznawczej po 2024-03-01-preview.]
dataSources obiekt Nie. Nie dotyczy Reprezentuje dodatkowe dane zasobów. przetwarzanie obrazów dane zasobów są potrzebne do ulepszenia funkcji przetwarzania obrazów. Ma type właściwość , która powinna być "AzureComputerVision" i parameters właściwość, która ma endpoint właściwość i key . Te ciągi powinny być ustawione na adres URL punktu końcowego i klucz dostępu zasobu przetwarzanie obrazów.

Przykładowe żądanie

Czat tylko tekstowy

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_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?"}]}'

Rozmowa z wizją

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":[{"type":"text","text":"Describe this picture:"},{ "type": "image_url", "image_url": { "url": "https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png", "detail": "high" } }]}]}'

Ulepszony czat z wizją

  • Wersja modelugpt-4GPT-4 Turbo GA nie jest obsługiwana:turbo-2024-04-09
  • Nieobsługiwane wersje interfejsu2024-02-01API i2024-04-01-preview i nowszych.
curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/extensions/chat/completions?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{"enhancements":{"ocr":{"enabled":true},"grounding":{"enabled":true}},"dataSources":[{"type":"AzureComputerVision","parameters":{"endpoint":" <Computer Vision Resource Endpoint> ","key":"<Computer Vision Resource Key>"}}],"messages":[{"role":"system","content":"You are a helpful assistant."},{"role":"user","content":[{"type":"text","text":"Describe this picture:"},{"type":"image_url","image_url":"https://learn.microsoft.com/azure/ai-services/computer-vision/media/quickstarts/presentation.png"}]}]}'

Przykładowa odpowiedź

{
    "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
        }
    ]
}

Formatowanie danych wyjściowych dostosowane w celu ułatwienia odczytywania rzeczywistych danych wyjściowych jest pojedynczym blokiem tekstu bez podziałów wierszy.

W przykładowej odpowiedzi finish_reason równa stopsię . Jeśli finish_reason równa się content_filter , zapoznaj się z naszym przewodnikiem filtrowania zawartości, aby zrozumieć, dlaczego tak się dzieje.

Ważne

Parametry functions i function_call zostały przestarzałe wraz z wydaniem 2023-12-01-preview wersji interfejsu API. Zamiana parametru functionstools to parametr . Zamiana parametru function_calltool_choice to parametr . Równoległe wywoływanie funkcji, które zostało wprowadzone w ramach programu 2023-12-01-preview , jest obsługiwane tylko w wersji gpt-35-turbo zapoznawczej (1106) i gpt-4 (1106-preview) znanej również jako GPT-4 Turbo Preview.

Parametr Type Wymagane? Domyślny opis
messages tablica Wymagania Kolekcja wiadomości kontekstowych skojarzonych z tym żądaniem ukończenia czatu. Typowe użycie rozpoczyna się od wiadomości czatu dla roli systemowej, która zawiera instrukcje dotyczące zachowania asystenta, a następnie zmiany komunikatów między rolami Użytkownika i Asystenta.
temperature Liczba Opcjonalnie 1 Jaka temperatura próbkowania ma być używana z zakresu od 0 do 2. Wyższe wartości, takie jak 0,8, sprawią, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak 0,2, sprawią, że będzie bardziej skoncentrowany i deterministyczny. Ogólnie zalecamy zmianę tego lub top_p nie obu tych elementów.
n integer Opcjonalnie 1 Ile opcji ukończenia czatu ma być generowanych dla każdej wiadomości wejściowej.
stream boolean Opcjonalnie fałsz W przypadku ustawienia zostaną wysłane częściowe różnice komunikatów, na przykład w module ChatGPT. Tokeny będą wysyłane jako zdarzenia wysyłane tylko do serwera, gdy staną się dostępne, a strumień zostanie zakończony komunikatem data: [DONE] ".
stop ciąg lub tablica Opcjonalnie null Maksymalnie 4 sekwencje, w których interfejs API przestanie generować kolejne tokeny.
max_tokens integer Opcjonalnie Inf Maksymalna liczba tokenów dozwolonych dla wygenerowanej odpowiedzi. Domyślnie liczba tokenów, które może zwrócić model, to (4096 — tokeny monitu).
presence_penalty Liczba Opcjonalnie 0 Liczba z zakresu od -2.0 do 2.0. Wartości dodatnie karzą nowe tokeny na podstawie tego, czy są one wyświetlane w tekście do tej pory, zwiększając prawdopodobieństwo, że model będzie mówił o nowych tematach.
frequency_penalty Liczba Opcjonalnie 0 Liczba z zakresu od -2.0 do 2.0. Wartości dodatnie karzeją nowe tokeny na podstawie ich istniejącej częstotliwości w tekście do tej pory, zmniejszając prawdopodobieństwo powtórzeń tego samego wiersza.
logit_bias obiekt Opcjonalnie null Zmodyfikuj prawdopodobieństwo wyświetlania określonych tokenów w zakończeniu. Akceptuje obiekt JSON mapujący tokeny (określone przez ich identyfikator tokenu w tokenizatorze) na skojarzzoną wartość stronniczą z -100 do 100. Matematycznie stronniczy jest dodawany do logitów wygenerowanych przez model przed próbkowaniem. Dokładny efekt różni się w zależności od modelu, ale wartości z zakresu od -1 do 1 powinny zmniejszyć lub zwiększyć prawdopodobieństwo wyboru; wartości takie jak -100 lub 100 powinny spowodować zakaz lub wyłączny wybór odpowiedniego tokenu.
user string Opcjonalnie Unikatowy identyfikator reprezentujący użytkownika końcowego, który może pomóc usłudze Azure OpenAI w monitorowaniu i wykrywaniu nadużyć.
function_call Opcjonalnie [Deprecated in 2023-12-01-preview replacement parameter is tools_choice]Określa sposób, w jaki model reaguje na wywołania funkcji. "none" oznacza, że model nie wywołuje funkcji i odpowiada użytkownikowi końcowemu. auto oznacza, że model może wybrać między użytkownikiem końcowym lub wywołaniem funkcji. Określenie konkretnej funkcji za pomocą elementu {"name": "my_function"} wymusza wywołanie tej funkcji przez model. Wartość domyślna "none" jest domyślna, gdy nie ma żadnych funkcji. auto jest wartością domyślną, jeśli funkcje są obecne. Ten parametr wymaga wersji interfejsu API 2023-07-01-preview
functions FunctionDefinition[] Opcjonalnie [Deprecated in 2023-12-01-preview replacement paremeter is tools] Lista funkcji, dla których model może generować dane wejściowe JSON. Ten parametr wymaga wersji interfejsu API 2023-07-01-preview
tools string (typ narzędzia. Obsługiwane są tylko function te elementy). Opcjonalnie Lista narzędzi, które może wywołać model. Obecnie tylko funkcje są obsługiwane jako narzędzie. Użyj tej funkcji, aby udostępnić listę funkcji, dla których model może wygenerować dane wejściowe JSON. Ten parametr wymaga wersji interfejsu API 2023-12-01-preview
tool_choice ciąg lub obiekt Opcjonalnie brak jest wartością domyślną, jeśli żadne funkcje nie są obecne. auto jest wartością domyślną, jeśli funkcje są obecne. Określa, która (jeśli istnieje) funkcja jest wywoływana przez model. Brak oznacza, że model nie wywoła funkcji i zamiast tego generuje komunikat. auto oznacza, że model może wybierać między generowaniem komunikatu lub wywoływaniem funkcji. Określanie konkretnej funkcji za pomocą elementu {"type: "function", "function": {"name": "my_function"}} wymusza wywołanie tej funkcji przez model. Ten parametr wymaga wersji interfejsu API lub nowszej 2023-12-01-preview .

ChatMessage

Pojedyncza wiadomość przypisana przez rolę w ramach interakcji z ukończeniem czatu.

Nazwisko Pisz Opis
content string Tekst skojarzony z tym ładunkiem wiadomości.
function_call FunctionCall Nazwa i argumenty funkcji, które powinny być wywoływane, generowane przez model.
nazwa string Autor name tej wiadomości. namejest wymagany, jeśli rola to function, i powinna być nazwą funkcji, której odpowiedź znajduje się w .content Może zawierać znaki a-z, A-Z, 0-9 i podkreślenia o maksymalnej długości 64 znaków.
role ChatRole Rola skojarzona z tym ładunkiem komunikatu

ChatRole

Opis zamierzonego celu wiadomości w ramach interakcji z ukończeniami czatu.

Nazwisko Pisz Opis
Assistent string Rola, która zapewnia odpowiedzi na dane wejściowe poinstruowane przez system.
function string Rola, która zapewnia wyniki funkcji na potrzeby uzupełniania czatów.
sterowana string Rola, która instruuje lub ustawia zachowanie asystenta.
Użytkownik string Rola, która udostępnia dane wejściowe na potrzeby uzupełniania czatu.

Function

Jest to używane z parametrem dodanym w wersji 2023-12-01-previewinterfejsu tools API .

Nazwisko Pisz Opis
opis string Opis funkcji używanej przez model do wyboru, kiedy i jak wywołać funkcję
nazwa string Nazwa funkcji do wywołania. Musi być a-z, A-Z, 0-9 lub zawierać podkreślenia i kreski o maksymalnej długości 64
parameters obiekt Parametry akceptowane przez funkcje, opisane jako obiekt schematu JSON. Zapoznaj się z dokumentacją dotyczącą formatu JSON Schema reference (Dokumentacja schematu JSON).

FunctionCall-Przestarzałe

Nazwa i argumenty funkcji, które powinny być wywoływane, generowane przez model. Wymaga to wersji interfejsu API 2023-07-01-preview

Nazwisko Pisz Opis
Argumenty string Argumenty do wywołania funkcji za pomocą , wygenerowane przez model w formacie JSON. Model nie zawsze generuje prawidłowy kod JSON i może tworzyć sieci szkieletowe parametry niezdefiniowane przez schemat funkcji. Przed wywołaniem funkcji zweryfikuj argumenty w kodzie.
nazwa string Nazwa funkcji do wywołania.

FunctionDefinition-Przestarzałe

Definicja funkcji określonej przez obiekt wywołujący, którą ukończenie czatu może wywołać w odpowiedzi na pasujące dane wejściowe użytkownika. Wymaga to wersji interfejsu API 2023-07-01-preview

Nazwisko Pisz Opis
opis string Opis działania funkcji. Model używa tego opisu podczas wybierania funkcji i interpretowania jej parametrów.
nazwa string Nazwa funkcji do wywołania.
parameters Parametry akceptowane przez funkcje, opisane jako obiekt schematu JSON.

Rozszerzenia uzupełniania

Dokumentacja tej sekcji została przeniesiona. Zamiast tego zapoznaj się z dokumentacją dotyczącą dokumentacji dotyczącej danych usługi Azure OpenAI.

Generowanie obrazu

Żądanie wygenerowanego obrazu (DALL-E 3)

Generowanie i pobieranie partii obrazów z podpis tekstowej.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/images/generations?api-version={api-version} 

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
deployment-id string Wymagania Nazwa wdrożenia modelu DALL-E 3, na przykład MyDalle3. Aby móc wykonywać wywołania, musisz najpierw wdrożyć model DALL-E 3.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Parametr Type Wymagane? Domyślny opis
prompt string Wymagania Opis tekstu żądanych obrazów. Maksymalna długość to 4000 znaków.
n integer Opcjonalnie 1 Liczba obrazów do wygenerowania. Obsługiwane jest tylko n=1 w przypadku języka DALL-E 3.
size string Opcjonalnie 1024x1024 Rozmiar wygenerowanych obrazów. Musi być jednym z 1792x1024elementów , 1024x1024lub 1024x1792.
quality string Opcjonalnie standard Jakość wygenerowanych obrazów. Musi mieć wartość hd lub standard.
response_format string Opcjonalnie url Format, w którym zwracane są wygenerowane obrazy, musi być url (adres URL wskazujący obraz) lub b64_json (podstawowy kod 64-bajtowy w formacie JSON).
style string Opcjonalnie vivid Styl wygenerowanych obrazów. Musi być natural lub vivid (w przypadku hiper-realistycznych / dramatycznych obrazów).
user string Opcjonalnie Unikatowy identyfikator reprezentujący użytkownika końcowego, który może pomóc w monitorowaniu i wykrywaniu nadużyć.

Przykładowe żądanie

curl -X POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/images/generations?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{
    "prompt": "An avocado chair",
    "size": "1024x1024",
    "n": 1,
    "quality": "hd", 
    "style": "vivid"
  }'

Przykładowa odpowiedź

Operacja zwraca 202 kod stanu i GenerateImagesResponse obiekt JSON zawierający identyfikator i stan operacji.

{ 
    "created": 1698116662, 
    "data": [ 
        { 
            "url": "url to the image", 
            "revised_prompt": "the actual prompt that was used" 
        }, 
        { 
            "url": "url to the image" 
        },
        ...
    ]
} 

Żądanie wygenerowanego obrazu (wersja zapoznawcza DALL-E 2)

Wygeneruj partię obrazów na podstawie podpis tekstowej.

POST https://{your-resource-name}.openai.azure.com/openai/images/generations:submit?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Parametr Type Wymagane? Domyślny opis
prompt string Wymagania Opis tekstu żądanych obrazów. Maksymalna długość to 1000 znaków.
n integer Opcjonalnie 1 Liczba obrazów do wygenerowania. Musi należeć do przedziału od 1 do 5.
size string Opcjonalnie 1024x1024 Rozmiar wygenerowanych obrazów. Musi być jednym z 256x256elementów , 512x512lub 1024x1024.

Przykładowe żądanie

curl -X POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/images/generations:submit?api-version=2023-06-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: YOUR_API_KEY" \
  -d '{
"prompt": "An avocado chair",
"size": "512x512",
"n": 3
}'

Przykładowa odpowiedź

Operacja zwraca 202 kod stanu i GenerateImagesResponse obiekt JSON zawierający identyfikator i stan operacji.

{
  "id": "f508bcf2-e651-4b4b-85a7-58ad77981ffa",
  "status": "notRunning"
}

Pobieranie wygenerowanego wyniku obrazu (wersja zapoznawcza DALL-E 2)

Użyj tego interfejsu API, aby pobrać wyniki operacji generowania obrazu. Generowanie obrazów jest obecnie dostępne tylko w programie api-version=2023-06-01-preview.

GET https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
operation-id string Wymagania Identyfikator GUID identyfikujący oryginalne żądanie generowania obrazu.

Obsługiwane wersje

Przykładowe żądanie

curl -X GET "https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version=2023-06-01-preview"
-H "Content-Type: application/json"
-H "Api-Key: {api key}"

Przykładowa odpowiedź

Po pomyślnym powodzeniu operacja zwraca 200 kod stanu i OperationResponse obiekt JSON. Pole status może być "notRunning" (zadanie jest kolejkowane, ale nie zostało jeszcze uruchomione), , , ( "canceled""succeeded"zadanie przekroczyło limit czasu), "running""failed"lub "deleted". Stan succeeded wskazuje, że wygenerowany obraz jest dostępny do pobrania pod danym adresem URL. Jeśli wygenerowano wiele obrazów, wszystkie ich adresy URL są zwracane w result.data polu.

{
  "created": 1685064331,
  "expires": 1685150737,
  "id": "4b755937-3173-4b49-bf3f-da6702a3971a",
  "result": {
    "data": [
      {
        "url": "<URL_TO_IMAGE>"
      },
      {
        "url": "<URL_TO_NEXT_IMAGE>"
      },
      ...
    ]
  },
  "status": "succeeded"
}

Usuwanie wygenerowanego obrazu z serwera (wersja zapoznawcza DALL-E 2)

Możesz użyć identyfikatora operacji zwróconego przez żądanie, aby usunąć odpowiedni obraz z serwera platformy Azure. Wygenerowane obrazy są domyślnie automatycznie usuwane po 24 godzinach, ale możesz wyzwolić usunięcie wcześniej, jeśli chcesz.

DELETE https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
operation-id string Wymagania Identyfikator GUID identyfikujący oryginalne żądanie generowania obrazu.

Obsługiwane wersje

Przykładowe żądanie

curl -X DELETE "https://{your-resource-name}.openai.azure.com/openai/operations/images/{operation-id}?api-version=2023-06-01-preview"
-H "Content-Type: application/json"
-H "Api-Key: {api key}"

Response

Operacja zwraca 204 kod stanu, jeśli operacja zakończy się pomyślnie. Ten interfejs API powiedzie się tylko wtedy, gdy operacja jest w stanie końcowym (a nie running).

Zamiana mowy na tekst

Model Whisper w usłudze Azure OpenAI Service umożliwia zamianę mowy na transkrypcję tekstu lub tłumaczenie mowy. Aby uzyskać więcej informacji na temat korzystania z modelu Whisper, zobacz przewodnik Szybki start i omówienie modelu Whisper.

Żądanie transkrypcji mowy na tekst

Transkrybuje plik audio.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/audio/transcriptions?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
deployment-id string Wymagania Nazwa wdrożenia modelu Whisper, na przykład MyWhisperDeployment. Przed rozpoczęciem nawiązywania połączeń musisz najpierw wdrożyć model Whisper.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Ta wartość jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Parametr Type Wymagane? Domyślny opis
file plik Tak Nie dotyczy Obiekt pliku audio (nie nazwa pliku) do transkrypcji, w jednym z następujących formatów: flac, , mp3, mpegm4ampgaoggmp4wavlub .webm

Limit rozmiaru pliku dla modelu Whisper w usłudze Azure OpenAI Service wynosi 25 MB. Jeśli musisz transkrybować plik większy niż 25 MB, podziel go na fragmenty. Alternatywnie możesz użyć interfejsu API transkrypcji wsadowej usługi Azure AI Speech.

Przykładowe pliki audio można pobrać z repozytorium zestawu SDK usługi Mowa usługi Azure AI w witrynie GitHub.
language string Nie Null (zero) Język wejściowego dźwięku, takiego jak fr. Dostarczanie języka wejściowego w formacie ISO-639-1 zwiększa dokładność i opóźnienie.

Listę obsługiwanych języków można znaleźć w dokumentacji interfejsu OpenAI.
prompt string Nie Null (zero) Opcjonalny tekst prowadzący do stylu modelu lub kontynuacji poprzedniego segmentu audio. Monit powinien być zgodny z językiem dźwięku.

Aby uzyskać więcej informacji na temat monitów, w tym przykładowych przypadków użycia, zobacz dokumentację interfejsu OpenAI.
response_format string Nie json Format danych wyjściowych transkrypcji w jednej z następujących opcji: json, text, srt, verbose_json lub vtt.

Wartość domyślna to json.
temperature numer Nie. 0 Temperatura próbkowania z zakresu od 0 do 1.

Wyższe wartości, takie jak 0,8, sprawiają, że dane wyjściowe są bardziej losowe, a niższe wartości, takie jak 0,2, sprawiają, że są bardziej skoncentrowane i deterministyczne. Jeśli ustawiono wartość 0, model używa prawdopodobieństwa dziennika, aby automatycznie zwiększyć temperaturę do momentu przekroczenia określonych progów.

Wartość domyślna to 0.
timestamp_granularities tablica Opcjonalnie segment Stopień szczegółowości sygnatury czasowej do wypełnienia dla tej transkrypcji. response_format należy ustawić, verbose_json aby używać szczegółowości sygnatury czasowej. Obsługiwane są obie te opcje: word, lub segment. Uwaga: nie ma dodatkowego opóźnienia dla sygnatur czasowych segmentu, ale generowanie znaczników czasu wyrazów powoduje dodatkowe opóźnienie. [Dodano w 2024-04-01-prevew]

Przykładowe żądanie

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/audio/transcriptions?api-version=2023-09-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $YOUR_API_KEY" \
  -F file="@./YOUR_AUDIO_FILE_NAME.wav" \
  -F "language=en" \
  -F "prompt=The transcript contains zoology terms and geographical locations." \
  -F "temperature=0" \
  -F "response_format=srt"

Przykładowa odpowiedź

1
00:00:00,960 --> 00:00:07,680
The ocelot, Lepardus paradalis, is a small wild cat native to the southwestern United States,

2
00:00:07,680 --> 00:00:13,520
Mexico, and Central and South America. This medium-sized cat is characterized by

3
00:00:13,520 --> 00:00:18,960
solid black spots and streaks on its coat, round ears, and white neck and undersides.

4
00:00:19,760 --> 00:00:27,840
It weighs between 8 and 15.5 kilograms, 18 and 34 pounds, and reaches 40 to 50 centimeters

5
00:00:27,840 --> 00:00:34,560
16 to 20 inches at the shoulders. It was first described by Carl Linnaeus in 1758.

6
00:00:35,360 --> 00:00:42,880
Two subspecies are recognized, L. p. paradalis and L. p. mitis. Typically active during twilight

7
00:00:42,880 --> 00:00:48,480
and at night, the ocelot tends to be solitary and territorial. It is efficient at climbing,

8
00:00:48,480 --> 00:00:54,480
leaping, and swimming. It preys on small terrestrial mammals such as armadillo, opossum,

9
00:00:54,480 --> 00:00:56,480
and lagomorphs.

Żądanie tłumaczenia mowy na tekst

Tłumaczy plik audio z innego języka na angielski. Listę obsługiwanych języków można znaleźć w dokumentacji interfejsu OpenAI.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/audio/translations?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
deployment-id string Wymagania Nazwa wdrożenia modelu Whisper, na przykład MyWhisperDeployment. Przed rozpoczęciem nawiązywania połączeń musisz najpierw wdrożyć model Whisper.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Ta wartość jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Parametr Type Wymagane? Domyślny opis
file plik Tak Nie dotyczy Obiekt pliku audio (nie nazwa pliku) do transkrypcji, w jednym z następujących formatów: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav lub webm.

Limit rozmiaru pliku dla modelu Azure OpenAI Whisper wynosi 25 MB. Jeśli musisz transkrybować plik większy niż 25 MB, podziel go na fragmenty.

Przykładowe pliki audio można pobrać z repozytorium zestawu SDK usługi Mowa usługi Azure AI w witrynie GitHub.
prompt string Nie Null (zero) Opcjonalny tekst prowadzący do stylu modelu lub kontynuacji poprzedniego segmentu audio. Monit powinien być zgodny z językiem dźwięku.

Aby uzyskać więcej informacji na temat monitów, w tym przykładowych przypadków użycia, zobacz dokumentację interfejsu OpenAI.
response_format string Nie json Format danych wyjściowych transkrypcji w jednej z następujących opcji: json, text, srt, verbose_json lub vtt.

Wartość domyślna to json.
temperature numer Nie. 0 Temperatura próbkowania z zakresu od 0 do 1.

Wyższe wartości, takie jak 0,8, sprawiają, że dane wyjściowe są bardziej losowe, a niższe wartości, takie jak 0,2, sprawiają, że są bardziej skoncentrowane i deterministyczne. Jeśli ustawiono wartość 0, model używa prawdopodobieństwa dziennika, aby automatycznie zwiększyć temperaturę do momentu przekroczenia określonych progów.

Wartość domyślna to 0.

Przykładowe żądanie

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/audio/translations?api-version=2023-09-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $YOUR_API_KEY" \
  -F file="@./YOUR_AUDIO_FILE_NAME.wav" \
  -F "temperature=0" \
  -F "response_format=json"

Przykładowa odpowiedź

{
  "text": "Hello, my name is Wolfgang and I come from Germany. Where are you heading today?"
}

Zamiana tekstu na mowę

Syntetyzowanie tekstu na mowę.

POST https://{your-resource-name}.openai.azure.com/openai/deployments/{deployment-id}/audio/speech?api-version={api-version}

Parametry ścieżki

Parametr Type Wymagane? opis
your-resource-name string Wymagania Nazwa zasobu usługi Azure OpenAI.
deployment-id string Wymagania Nazwa wdrożenia modelu zamiany tekstu na mowę, na przykład MyTextToSpeechDeployment. Musisz najpierw wdrożyć tekst w modelu mowy (np tts-1 . lub tts-1-hd), zanim będzie można wykonywać wywołania.
api-version string Wymagania Wersja interfejsu API do użycia dla tej operacji. Ta wartość jest zgodna z formatem RRRR-MM-DD.

Obsługiwane wersje

Treść żądania

Parametr Type Wymagane? Domyślny opis
model string Tak Nie dotyczy Jeden z dostępnych modeli TTS: tts-1 lub tts-1-hd
input string Tak Nie dotyczy Tekst do wygenerowania dźwięku. Maksymalna długość to 4096 znaków. Określ tekst wejściowy w wybranym języku.1
voice string Tak Nie dotyczy Głos do użycia podczas generowania dźwięku. Obsługiwane głosy to alloy, , echo, onyxfable, nova, i shimmer. Podglądy głosów są dostępne w przewodniku po zamianie tekstu openAI na mowę.

1 Modele zamiany tekstu na mowę zwykle obsługują te same języki co model Whisper. Listę obsługiwanych języków można znaleźć w dokumentacji interfejsu OpenAI.

Przykładowe żądanie

curl https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/audio/speech?api-version=2024-02-15-preview \
 -H "api-key: $YOUR_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
    "model": "tts-hd",
    "input": "I'm excited to try text to speech.",
    "voice": "alloy"
}' --output speech.mp3

Przykładowa odpowiedź

Mowa jest zwracana jako plik audio z poprzedniego żądania.

Interfejsy API zarządzania

Usługa Azure OpenAI jest wdrażana jako część usług azure AI. Wszystkie usługi azure AI korzystają z tego samego zestawu interfejsów API zarządzania na potrzeby operacji tworzenia, aktualizowania i usuwania. Interfejsy API zarządzania są również używane do wdrażania modeli w ramach zasobu usługi Azure OpenAI.

Dokumentacja referencyjna interfejsów API zarządzania

Następne kroki

Dowiedz się więcej o modelach i dostrajaniu za pomocą interfejsu API REST. Dowiedz się więcej o modelach bazowych, które zasilają usługę Azure OpenAI.