Referenční informace k rozhraní REST API základního modelu
Článek
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í.
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 userassistant jednotlivými rolemi a končit zprávou user . Odpověď modelu poskytuje další assistant zprávu v konverzaci.
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.
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"
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ů.
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.
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.
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.
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í