Sdílet prostřednictvím


Referenční informace k rozhraní REST API základního modelu

Tento článek obsahuje obecné informace o rozhraní API pro rozhraní API modelu Databricks Foundation a modely, které podporují. Rozhraní API základního modelu jsou navržená tak, aby byla podobná rozhraní REST API OpenAI, aby se usnadnila migrace stávajících projektů. Koncové body propustnosti pro platby za token i zřízenou propustnost přijímají stejný formát požadavku rozhraní REST API.

Koncové body

Každý model plateb za token má jeden koncový bod a uživatelé můžou s těmito koncovými body pracovat pomocí požadavků HTTP POST. Zřízené koncové body propustnosti je možné vytvořit pomocí rozhraní API nebo uživatelského rozhraní obsluhy. Tyto koncové body také podporují více modelů na koncový bod pro testování A/B, pokud oba obsluhované modely zpřístupňují stejný formát rozhraní API. Oba modely jsou například modely chatu.

Požadavky a odpovědi používají JSON, přesná struktura JSON závisí na typu úlohy koncového bodu. Koncové body chatu a dokončení podporují odpovědi na streamování.

Úlohy s platbami za token podporují určité modely, viz Podporované modely pro platby za token pro tyto modely a přijaté formáty rozhraní API.

Využití

Odpovědi zahrnují usage dílčí zprávu, která hlásí počet tokenů v požadavku a odpovědi. Formát této dílčí zprávy je stejný pro všechny typy úkolů.

Pole Typ Popis
completion_tokens Celé číslo Počet vygenerovaných tokenů Součástí vkládání odpovědí není.
prompt_tokens Celé číslo Počet tokenů ze vstupních výzev
total_tokens Celé číslo Počet celkového počtu tokenů

U modelů, jako llama-2-70b-chat je výzva uživatele, se před předáním do modelu transformuje pomocí šablony výzvy. U koncových bodů s platbami za token se může přidat také výzva systému. prompt_tokens obsahuje veškerý text přidaný naším serverem.

Úkol chatu

Úkoly chatu jsou optimalizované pro konverzace s vícenásobným otáčením s modelem. Každý požadavek zatím popisuje konverzaci, kde messages se pole musí střídat mezi user assistant jednotlivými rolemi a končit zprávou user . Odpověď modelu poskytuje další assistant zprávu v konverzaci.

Žádost o chat

Pole Výchozí Typ Popis
messages Seznam ChatMessage Povinný: Seznam zpráv představujících aktuální konverzaci
max_tokens null null, což znamená, že žádné omezení nebo celé číslo větší než nula Maximální počet tokenů, které se mají vygenerovat.
stream true Logická hodnota Streamovat odpovědi zpět do klienta, aby bylo možné povolit částečné výsledky pro požadavky. Pokud je tento parametr součástí požadavku, odpovědi se odesílají pomocí standardu událostí odesílaných serverem.
temperature 1.0 Plovoucí v [0,2] Teplota vzorkování. Hodnota 0 je deterministická a vyšší hodnoty představují větší náhodnost.
top_p 1.0 Float in (0,1] Prahová hodnota pravděpodobnosti použitá pro vzorkování vzorků.
top_k null null, což znamená, že žádné omezení nebo celé číslo větší než nula Definuje počet k nejpravděpodobnějších tokenů, které se mají použít pro filtrování top-k. Nastavte tuto hodnotu na hodnotu 1, aby byl výstup deterministický.
stop [] Řetězec nebo Seznam[Řetězec] Model přestane generovat další tokeny, když dojde k nějaké sekvenci stop .
n 0 Celé číslo větší než nula Rozhraní API vrátí n nezávislé dokončování chatu, pokud n je zadáno. Doporučuje se pro úlohy, které generují více dokončení na stejném vstupu pro další efektivitu odvozování a úsporu nákladů. K dispozici pouze pro zřízené koncové body propustnosti.
tool_choice none String nebo ToolChoiceObject Používá se pouze ve spojení s polem tools . tool_choice podporuje různé řetězce klíčových slov, jako autoje , requireda none. auto znamená, že necháte model rozhodnout, který (pokud existuje) nástroj, který se má použít. Pokud auto model nevěří, že žádný z nástrojů není tools relevantní, model místo volání nástroje vygeneruje standardní zprávu asistenta. required znamená, že model vybere nejrelevavantnější nástroj tools a musí vygenerovat volání nástroje. none znamená, že model nevygeneruje žádná volání nástrojů a místo toho musí vygenerovat standardní zprávu asistenta. Chcete-li vynutit volání nástroje s konkrétním nástrojem definovaným v tools, použijte ToolChoiceObject. Ve výchozím nastavení, pokud tools je pole vyplněno tool_choice = "auto". Jinak se tools ve výchozím nastavení pole nastaví na tool_choice = "none"
tools null ToolObject Seznam, tools který model může volat. function V současné době je jediným podporovaným tool typem a podporuje se maximálně 32 funkcí.
logprobs false Logická hodnota Tento parametr určuje, jestli se má poskytnout pravděpodobnost protokolu výběru tokenu.
top_logprobs null Celé číslo Tento parametr řídí počet nejpravděpodobnějších kandidátů tokenů, aby v každém kroku vzorkování vrátil pravděpodobnosti protokolu. Může být 0–20. logprobs musí být true při použití tohoto pole.

ChatMessage

Pole Typ Description
role String Povinný: Role autora zprávy Může být "system", "user""assistant" nebo "tool".
content String Obsah zprávy. Vyžaduje se pro úlohy chatu, které nezahrnují volání nástrojů.
tool_calls Seznam ToolCall Seznam tool_calls vygenerovaných modelů Musí mít role pro dané pole stejnou "assistant" specifikaci a není k dispozici content žádná specifikace.
tool_call_id String Pokud role je "tool", ID přidružené k ToolCall tomu, na kterou zpráva reaguje. Pro další role možnosti musí být prázdné.

Roli system lze použít pouze jednou, jako první zprávu v konverzaci. Přepíše výchozí systémovou výzvu modelu.

ToolCall

Návrh akce volání nástroje podle modelu. Viz volání funkce v Azure Databricks.

Pole Typ Description
id String Povinný: Jedinečný identifikátor návrhu volání tohoto nástroje.
type String Povinný: Podporuje se jen "function".
function FunctionCallCompletion Povinný: Volání funkce navrhované modelem

FunctionCallCompletion

Pole Typ Description
name String Povinný: Název funkce, která se doporučuje pro model.
arguments Object Povinný: Argumenty funkce jako serializovaný slovník JSON.

ToolChoiceObject

Viz volání funkce v Azure Databricks.

Pole Typ Description
type String Povinný: Typ nástroje. V současné době se podporuje pouze "function" .
function Object Povinný: Objekt definující, který nástroj má volat formulář {"type": "function", "function": {"name": "my_function"}} , kde "my_function je název FunctionObject v tools poli.

ToolObject

Viz volání funkce v Azure Databricks.

Pole Typ Description
type String Povinný: Typ nástroje. V současné době se podporuje pouze function .
function FunctionObject Povinný: Definice funkce přidružená k nástroji.

FunctionObject

Pole Typ Description
name String Povinný: Název funkce, která se má volat.
description Object Povinný: Podrobný popis funkce. Tento popis model používá k pochopení relevance funkce pro výzvu a generování volání nástroje s vyšší přesností.
parameters Object Parametry, které funkce přijímá, jsou popsány jako platný objekt schématu JSON. Pokud je nástroj volána, volání nástroje se vejde do zadaného schématu JSON. Vynechání parametrů definuje funkci bez parametrů. Počet properties klíčů je omezený na 15 klíčů.

Odpověď na chat

V případě požadavků, které nejsou streamované, je odpovědí jeden objekt dokončení chatu. U požadavků na streamování je text/event-stream odpovědí místo, kde každá událost je objekt bloku dokončení. Struktura doplňování nejvyšší úrovně a objektů bloků dat je téměř identická: má pouze choices jiný typ.

Pole Typ Description
id String Jedinečný identifikátor dokončení chatu.
choices List[ChatCompletionChoice] nebo List[ChatCompletionChunk] (streamování) Seznam textových zpráv o dokončení chatu n pokud je parametr zadán, vrátí n se volby.
object String Typ objektu. Rovná se buď "chat.completions" pro jiné streamování, nebo "chat.completion.chunk" pro streamování.
created Celé číslo Čas vygenerování dokončení chatu v sekundách.
model String Verze modelu použitá k vygenerování odpovědi.
usage Využití Metadata použití tokenů. U odpovědí na streamování nemusí být k dispozici.

ChatCompletionChoice

Pole Typ Popis
index Celé číslo Index výběru v seznamu vygenerovaných voleb.
message ChatMessage Zpráva o dokončení chatu vrácená modelem Role bude assistant.
finish_reason String Důvod, proč model přestal generovat tokeny

ChatCompletionChunk

Pole Typ Popis
index Celé číslo Index výběru v seznamu vygenerovaných voleb.
delta ChatMessage Zpráva o dokončení chatu, která je součástí vygenerovaných streamovaných odpovědí z modelu Je zaručeno, že se role naplní pouze první blok dat.
finish_reason String Důvod, proč model přestal generovat tokeny Tuto hodnotu naplní pouze poslední blok dat.

Úkol dokončení

Úkoly dokončování textu slouží k generování odpovědí na jednu výzvu. Na rozdíl od chatu tato úloha podporuje dávkové vstupy: v jedné žádosti lze odeslat několik nezávislých výzev.

Žádost o dokončení

Pole Výchozí Typ Popis
prompt Řetězec nebo Seznam[Řetězec] Povinný: Výzvy k modelu.
max_tokens null null, což znamená, že žádné omezení nebo celé číslo větší než nula Maximální počet tokenů, které se mají vygenerovat.
stream true Logická hodnota Streamovat odpovědi zpět do klienta, aby bylo možné povolit částečné výsledky pro požadavky. Pokud je tento parametr součástí požadavku, odpovědi se odesílají pomocí standardu událostí odesílaných serverem.
temperature 1.0 Plovoucí v [0,2] Teplota vzorkování. Hodnota 0 je deterministická a vyšší hodnoty představují větší náhodnost.
top_p 1.0 Float in (0,1] Prahová hodnota pravděpodobnosti použitá pro vzorkování vzorků.
top_k null null, což znamená, že žádné omezení nebo celé číslo větší než nula Definuje počet k nejpravděpodobnějších tokenů, které se mají použít pro filtrování top-k. Nastavte tuto hodnotu na hodnotu 1, aby byl výstup deterministický.
error_behavior "error" "truncate" nebo "error" Chyby překročení časového limitu a délky kontextu. Jedna z těchto možností: "truncate" (vrátí co nejvíce tokenů) a "error" (vrátí chybu). Tento parametr je přijímán pouze platbou za koncové body tokenu.
n 0 Celé číslo větší než nula Rozhraní API vrátí n nezávislé dokončování chatu, pokud n je zadáno. Doporučuje se pro úlohy, které generují více dokončení na stejném vstupu pro další efektivitu odvozování a úsporu nákladů. K dispozici pouze pro zřízené koncové body propustnosti.
stop [] Řetězec nebo Seznam[Řetězec] Model přestane generovat další tokeny, když dojde k nějaké sekvenci stop .
suffix "" String Řetězec, který je připojen na konec každého dokončení.
echo false Logická hodnota Vrátí výzvu spolu s dokončením.
use_raw_prompt false Logická hodnota Pokud truepředejte prompt přímo do modelu bez jakékoli transformace.

Odpověď na dokončení

Pole Typ Description
id String Jedinečný identifikátor pro dokončování textu.
choices CompletionChoice Seznam dokončování textu. Pro každý předaný dotaz se vygenerují volby, n pokud n jsou zadány. Výchozí n hodnota je 1.
object String Typ objektu. Rovná se "text_completion"
created Celé číslo Čas vygenerování dokončení v sekundách.
usage Využití Metadata použití tokenů.

CompletionChoice

Pole Typ Popis
index Celé číslo Index výzvy v požadavku.
text String Vygenerované dokončení.
finish_reason String Důvod, proč model přestal generovat tokeny

Vložení úlohy

Vkládání úkolů mapuje vstupní řetězce do vložených vektorů. V každém požadavku je možné dosát dohromady mnoho vstupů.

Žádost o vložení

Pole Typ Popis
input Řetězec nebo Seznam[Řetězec] Povinný: Vstupní text, který chcete vložit. Může to být řetězec nebo seznam řetězců.
instruction String Volitelná instrukce, která se má předat modelu vkládání.

Pokyny jsou volitelné a vysoce specifické pro model. Autoři BGE například při indexování bloků dat nedoporučují žádné instrukce a doporučují používat instrukce "Represent this sentence for searching relevant passages:" pro načítání dotazů. Další modely, jako je Instructor-XL, podporují širokou škálu instrukčních řetězců.

Odpověď vkládání

Pole Typ Description
id String Jedinečný identifikátor pro vkládání.
object String Typ objektu. Rovná se "list".
model String Název modelu vložení použitého k vytvoření vkládání
data EmbeddingObject Vložený objekt.
usage Využití Metadata použití tokenů.

EmbeddingObject

Pole Typ Description
object String Typ objektu. Rovná se "embedding".
index Celé číslo Index vkládání v seznamu vložených objektů vygenerovaných modelem.
embedding List[Float] Vektor vkládání. Každý model vrátí vektor pevné velikosti (1024 pro BGE-Large).

Další materiály