Naslaginformatie voor de REST API van het Foundation-model
Dit artikel bevat algemene API-informatie voor Databricks Foundation Model-API's en de modellen die ze ondersteunen. De Foundation Model-API's zijn ontworpen om vergelijkbaar te zijn met de REST API van OpenAI, zodat bestaande projecten eenvoudiger kunnen worden gemigreerd. Zowel het betalen per token als de ingerichte doorvoereindpunten accepteren dezelfde REST API-aanvraagindeling.
eindpunten
Elk model met betalen per token heeft één eindpunt en gebruikers kunnen met deze eindpunten communiceren met behulp van HTTP POST-aanvragen. Ingerichte doorvoereindpunten kunnen worden gemaakt met behulp van de API of devoor de gebruikersinterface van de server. Deze eindpunten ondersteunen ook meerdere modellen per eindpunt voor A/B-tests, zolang beide aangeboden modellen dezelfde API-indeling hebben. Beide modellen zijn bijvoorbeeld chatmodellen. Zie POST /api/2.0/serving-endpoints voor eindpuntconfiguratieparameters.
Aanvragen en antwoorden maken gebruik van JSON. De exacte JSON-structuur is afhankelijk van het taaktype van een eindpunt. Chat- en voltooiingseindpunten ondersteunen streamingantwoorden.
Workloads met betalen per token ondersteunen bepaalde modellen. Zie Ondersteunde modellen voor betalen per token voor deze modellen en geaccepteerde API-indelingen.
Gebruik
Antwoorden bevatten een usage
subbericht dat het aantal tokens in de aanvraag en het antwoord rapporteert. De indeling van dit subbericht is hetzelfde voor alle taaktypen.
Veld | Type | Beschrijving |
---|---|---|
completion_tokens |
Geheel getal | Aantal gegenereerde tokens. Niet inbegrepen in het embedden van antwoorden. |
prompt_tokens |
Geheel getal | Aantal tokens van de invoerprompt(s). |
total_tokens |
Geheel getal | Aantal totale tokens. |
Voor modellen zoals llama-2-70b-chat
wordt een gebruikersprompt getransformeerd met behulp van een promptsjabloon voordat deze wordt doorgegeven aan het model. Voor eindpunten met betalen per token kan er ook een systeemprompt worden toegevoegd.
prompt_tokens
bevat alle tekst die door onze server is toegevoegd.
chatopdracht
Chattaken zijn geoptimaliseerd voor gesprekken met meerdere beurten met een model. Het antwoord van het model zal het volgende assistant
bericht in het gesprek geven. Zie POST /serving-endpoints/{name}/aanroepen voor het uitvoeren van query's op eindpuntparameters.
Chataanvraag
Veld | Verstek | Type | Beschrijving |
---|---|---|---|
messages |
ChatMessage lijst | Vereist. Een lijst met berichten die het huidige gesprek vertegenwoordigen. | |
max_tokens |
null |
null , wat betekent dat er geen limiet of een geheel getal groter is dan nul |
Het maximum aantal tokens dat moet worden gegenereerd. |
stream |
true |
Booleaans | Stream antwoorden terug naar een client om gedeeltelijke resultaten voor aanvragen toe te staan. Als deze parameter is opgenomen in de aanvraag, worden antwoorden verzonden met behulp van de server verzonden gebeurtenissen standaard. |
temperature |
1.0 |
Zweven in [0,2] | De monsternametemperatuur. 0 is deterministisch en hogere waarden introduceren meer willekeurigheid. |
top_p |
1.0 |
Zweven in (0,1] | De waarschijnlijkheidsdrempel die wordt gebruikt voor kernsampling. |
top_k |
null |
null , wat betekent dat er geen limiet of een geheel getal groter is dan nul |
Hiermee definieert u het aantal k-waarschijnlijke tokens dat moet worden gebruikt voor top-k-filtering. Stel deze waarde in op 1 om uitvoer deterministisch te maken. |
stop |
[] | Tekenreeks of lijst[tekenreeks] | Het model stopt met het genereren van verdere tokens wanneer een van de reeksen in stop wordt aangetroffen. |
n |
1 | Geheel getal groter dan nul | De API retourneert n onafhankelijke chatvoltooiingen wanneer n is opgegeven. Aanbevolen voor workloads die meerdere voltooiingen genereren op dezelfde invoer voor extra inferentie-efficiëntie en kostenbesparingen. Alleen beschikbaar voor geconfigureerde doorvoereindpunten. |
tool_choice |
none |
String of ToolChoiceObject | Alleen gebruikt in combinatie met het veld tools .
tool_choice ondersteunt verschillende trefwoordtekenreeksen, zoals auto , required en none .
auto betekent dat u het model laat bepalen welke (indien van toepassing) hulpprogramma relevant is voor gebruik. Met auto als het model niet denkt dat een van de hulpprogramma's in tools relevant zijn, genereert het model een standaardassistentbericht in plaats van een hulpprogramma-aanroep.
required betekent dat het model het meest relevante hulpprogramma in tools kiest en een hulpprogramma-aanroep moet genereren.
none betekent dat het model geen hulpprogramma-aanroepen genereert en in plaats daarvan een standaardassistentbericht moet genereren. Als u een aanroep van een hulpprogramma wilt afdwingen met een specifiek hulpmiddel dat is gedefinieerd in tools , gebruikt u een ToolChoiceObject . Als het veld tools standaard is ingevuld tool_choice = "auto" . Anders wordt het tools veld standaard ingesteld op tool_choice = "none" |
tools |
null |
ToolObject | Een lijst van tools die het model kan aanroepen. Op dit moment is function het enige ondersteunde tool type en worden maximaal 32 functies ondersteund. |
response_format |
null |
ResponseFormatObject- | Een object dat de indeling aangeeft die het model moet uitvoeren. Geaccepteerde typen zijn text , json_schema of json_object Instelling voor { "type": "json_schema", "json_schema": {...} } maakt gestructureerde uitvoer mogelijk die ervoor zorgt dat het model het opgegeven JSON-schema volgt.Instelling voor { "type": "json_object" } zorgt ervoor dat de antwoorden die het model genereert geldige JSON zijn, maar er niet voor zorgen dat antwoorden een specifiek schema volgen. |
logprobs |
false |
Booleaans | Met deze parameter wordt aangegeven of de log waarschijnlijkheid moet worden opgegeven voor een token dat wordt bemonsterd. |
top_logprobs |
null |
Geheel getal | Deze parameter bepaalt het aantal waarschijnlijkste tokenkandidaten om logwaarschijnlijkheden voor elke samplingstap te retourneren. Kan 0-20 zijn.
logprobs moet true zijn als u dit veld gebruikt. |
ChatMessage
Veld | Type | Beschrijving |
---|---|---|
role |
Snaar |
Vereist. De rol van de auteur van het bericht. Kan worden "system" , "user" , "assistant" of "tool" . |
content |
Snaar | De inhoud van het bericht. Vereist voor chattaken waarvoor geen hulpprogrammaoproepen nodig zijn. |
tool_calls |
ToolCall lijst | De lijst met tool_calls die het model heeft gegenereerd. Moet role hebben als "assistant" en geen specificatie voor het content veld. |
tool_call_id |
Snaar | Als role "tool" is, is de ID geassocieerd met de ToolCall waarop het bericht reageert. Moet leeg zijn voor andere role opties. |
De system
rol kan slechts eenmaal worden gebruikt, als het eerste bericht in een gesprek. De standaardsysteemprompt van het model wordt overschreven.
ToolCall
Een actiesuggestie voor het aanroepen van het hulpprogramma door het model. Zie Functieoproep in Azure Databricks.
Veld | Type | Beschrijving |
---|---|---|
id |
Snaar | Vereist. Een unieke id voor deze suggestie voor het aanroepen van het hulpprogramma. |
type |
Snaar |
Vereist. Alleen "function" wordt ondersteund. |
function |
FunctieOproepVoltooiing- | Vereist. Een functie-aanroep die door het model wordt voorgesteld. |
FunctionCallCompletion
Veld | Type | Beschrijving |
---|---|---|
name |
Snaar | Vereist. De naam van de functie die door het model wordt aanbevolen. |
arguments |
Object | Vereist. Argumenten voor de functie als een geserialiseerde JSON-woordenlijst. |
ToolChoiceObject
Zie Functieoproep in Azure Databricks.
Veld | Type | Beschrijving |
---|---|---|
type |
Snaar |
Vereist. Het type hulpprogramma. Op dit moment wordt alleen "function" ondersteund. |
function |
Object |
Vereist. Een object dat definieert welk hulpmiddel moet worden aangeroepen van het formulier {"type": "function", "function": {"name": "my_function"}} waar "my_function de naam is van een FunctionObject- in het veld tools . |
ToolObject
Zie Functieoproep in Azure Databricks.
Veld | Type | Beschrijving |
---|---|---|
type |
Snaar |
Vereist. Het type hulpprogramma. Op dit moment wordt alleen function ondersteund. |
function |
FunctionObject | Vereist. De functiedefinitie die aan het hulpprogramma is gekoppeld. |
FunctionObject
Veld | Type | Beschrijving |
---|---|---|
name |
Snaar | Vereist. De naam van de functie die moet worden aangeroepen. |
description |
Object | Vereist. De gedetailleerde beschrijving van de functie. Het model gebruikt deze beschrijving om inzicht te hebben in de relevantie van de functie voor de prompt en het genereren van de hulpprogrammaaanroepen met een hogere nauwkeurigheid. |
parameters |
Object | De parameters die door de functie worden geaccepteerd, worden beschreven als een geldig JSON-schema object. Als het hulpprogramma wordt aangeroepen, moet de aanroep van het hulpprogramma voldoen aan het opgegeven JSON-schema. Als u parameters weglaat, wordt een functie zonder parameters gedefinieerd. Het aantal properties is beperkt tot 15 sleutels. |
strict |
Booleaans | Of u strikte schema-naleving wilt inschakelen bij het genereren van de functieaanroep. Als dit is ingesteld op true , volgt het model het exacte schema dat is gedefinieerd in het schemaveld. Alleen een subset van het JSON-schema wordt ondersteund wanneer de instelling 'strict' op true staat. |
ResponseFormatObject
Zie Gestructureerde uitvoer op Azure Databricks.
Veld | Type | Beschrijving |
---|---|---|
type |
Snaar |
Vereist. Het type antwoordindeling dat wordt gedefinieerd.
text voor ongestructureerde tekst, json_object voor ongestructureerde JSON-objecten of json_schema voor JSON-objecten die aan een specifiek schema zijn gekoppeld. |
json_schema |
JsonSchemaObject |
Vereist. Het JSON-schema dat moet worden nageleefd als type is ingesteld op json_schema |
JsonSchemaObject
Zie Gestructureerde uitvoer op Azure Databricks.
Veld | Type | Beschrijving |
---|---|---|
name |
Snaar | Vereist. De naam van de antwoordindeling. |
description |
Snaar | Een beschrijving van waar de antwoordindeling voor dient, die door het model wordt gebruikt om te bepalen hoe het model in de indeling moet reageren. |
schema |
Object | Vereist. Het schema voor de antwoordindeling, beschreven als een JSON-schemaobject. |
strict |
Booleaans | Of u strikte schema-naleving wilt inschakelen bij het genereren van de uitvoer. Als dit is ingesteld op true , volgt het model het exacte schema dat is gedefinieerd in het schemaveld. Alleen een subset van het JSON-schema wordt ondersteund wanneer 'strict' op true staat. |
Chatantwoord
Voor niet-streaming verzoeken is het antwoord een enkel voltooiingsobject voor een chat. Voor streamingaanvragen is het antwoord een text/event-stream
waarbij elke gebeurtenis een voltooiingssegmentobject is. De structuur op het hoogste niveau van voltooiings- en segmentobjecten is bijna identiek: alleen choices
heeft een ander type.
Veld | Type | Beschrijving |
---|---|---|
id |
Snaar | Unieke id voor het voltooien van de chat. |
choices |
List[ChatCompletionChoice] of List[ChatCompletionChunk] (streaming) | Lijst met chatvoltooiingsteksten.
n keuzes worden geretourneerd als de n parameter is opgegeven. |
object |
Snaar | Het objecttype. Gelijk aan "chat.completions" voor niet-streaming of "chat.completion.chunk" voor streaming. |
created |
Geheel getal | De tijd waarop de chat is voltooid in seconden. |
model |
Snaar | De modelversie die wordt gebruikt om het antwoord te genereren. |
usage |
Gebruik | Metagegevens van tokengebruik. Is mogelijk niet aanwezig voor streamingreacties. |
ChatCompletionChoice
Veld | Type | Beschrijving |
---|---|---|
index |
Geheel getal | De index van de keuze in de lijst met gegenereerde keuzes. |
message |
ChatMessage | Een chatvoltooiingsbericht dat door het model wordt geretourneerd. De rol zal assistant zijn. |
finish_reason |
Snaar | De reden waarom het model geen tokens meer genereert. |
ChatCompletionChunk
Veld | Type | Beschrijving |
---|---|---|
index |
Geheel getal | De index van de keuze in de lijst met gegenereerde keuzes. |
delta |
ChatMessage | Een chatbericht voor voltooiing van door het model gegenereerde gestreamde antwoorden. Alleen het eerste blok is gegarandeerd gevuld met role . |
finish_reason |
Snaar | De reden waarom het model geen tokens meer genereert. Alleen het laatste segment zal dit gepopulate hebben. |
voltooiingstaak
Taken voor tekstvoltooiing zijn bedoeld voor het genereren van antwoorden op één prompt. In tegenstelling tot Chat ondersteunt deze taak batchinvoer: meerdere onafhankelijke prompts kunnen in één aanvraag worden verzonden. Zie POST /serving-endpoints/{name}/aanroepen voor het opvragen van eindpuntparameters.
Voltooiingsaanvraag
Veld | Verstek | Type | Beschrijving |
---|---|---|---|
prompt |
Tekenreeks of lijst [tekenreeks] | Vereist. De prompts voor het model. | |
max_tokens |
null |
null , wat betekent dat er geen limiet of een geheel getal groter is dan nul |
Het maximum aantal tokens dat moet worden gegenereerd. |
stream |
true |
Booleaans | Stream antwoorden terug naar een client om gedeeltelijke resultaten voor aanvragen toe te staan. Als deze parameter is opgenomen in de aanvraag, worden antwoorden verzonden met behulp van de server verzonden gebeurtenissen standaard. |
temperature |
1.0 |
Zweven in [0,2] | De monsternametemperatuur. 0 is deterministisch en hogere waarden introduceren meer willekeurigheid. |
top_p |
1.0 |
Zweven in (0,1] | De waarschijnlijkheidsdrempel die wordt gebruikt voor kernsampling. |
top_k |
null |
null , wat betekent dat er geen limiet of een geheel getal groter is dan nul |
Hiermee definieert u het aantal k-waarschijnlijke tokens dat moet worden gebruikt voor top-k-filtering. Stel deze waarde in op 1 om uitvoer deterministisch te maken. |
error_behavior |
"error" |
"truncate" of "error" |
Voor time-outs en fouten met overschreden contextlengte. Een van: "truncate" (retourneer zoveel mogelijk tokens) en "error" (retourneer een fout). Deze parameter wordt alleen geaccepteerd door eindpunten voor betalen per token. |
n |
1 | Geheel getal groter dan nul | De API retourneert n onafhankelijke chatvoltooiingen wanneer n is opgegeven. Aanbevolen voor workloads die meerdere voltooiingen genereren op dezelfde invoer voor extra inferentie-efficiëntie en kostenbesparingen. Alleen beschikbaar voor geconfigureerde doorvoereindpunten. |
stop |
[] | Tekenreeks of lijst[tekenreeks] | Het model stopt met het genereren van verdere tokens wanneer een van de reeksen in stop wordt aangetroffen. |
suffix |
"" |
Snaar | Een tekenreeks die wordt toegevoegd aan het einde van elke voltooiing. |
echo |
false |
Booleaans | Retourneert de prompt samen met de voltooiing. |
use_raw_prompt |
false |
Booleaans | Als true , geeft u de prompt rechtstreeks door aan het model zonder transformatie. |
Voltooiingsreactie
Veld | Type | Beschrijving |
---|---|---|
id |
Snaar | Unieke identificatie voor de tekstvoltooiing. |
choices |
CompletionChoice- | Een lijst met tekstvoltooiingen. Voor elke prompt die wordt doorgegeven, worden n keuzes gegenereerd als n is opgegeven. De standaard n is 1. |
object |
Snaar | Het objecttype. Gelijk aan "text_completion" |
created |
Geheel getal | De tijd waarop de voltooiing in seconden is gegenereerd. |
usage |
Gebruik | Metagegevens van tokengebruik. |
CompletionChoice
Veld | Type | Beschrijving |
---|---|---|
index |
Geheel getal | De index van de prompt in de aanvraag. |
text |
Snaar | De gegenereerde voltooiing. |
finish_reason |
Snaar | De reden waarom het model geen tokens meer genereert. |
taak insluiten
Embedding-taken zetten invoerreeksen om in embeddingvectoren. Veel invoer kan in elke verzoek worden gebundeld. Zie POST /serving-endpoints/{name}/aanroepen voor het uitvoeren van query's op eindpuntparameters.
Aanvraag voor insluiten
Veld | Type | Beschrijving |
---|---|---|
input |
Tekenreeks of lijst[tekenreeks] | Vereist. De invoertekst die moet worden ingesloten. Dit kan een tekenreeks of een lijst met tekenreeksen zijn. |
instruction |
Snaar | Een optionele instructie die moet worden doorgegeven aan het insluitmodel. |
Instructies zijn optioneel en zeer modelspecifiek. De BGE-auteurs raden bijvoorbeeld geen instructies aan bij het indexeren van segmenten en raden aan de instructie "Represent this sentence for searching relevant passages:"
te gebruiken voor het ophalen van query's. Andere modellen zoals Instructor-XL ondersteunen een breed scala aan instructiereeksen.
Antwoord insluiten
Veld | Type | Beschrijving |
---|---|---|
id |
Snaar | Unieke identificatie voor de inbedding. |
object |
Snaar | Het objecttype. Gelijk aan "list" . |
model |
Snaar | De naam van het insluitmodel dat wordt gebruikt voor het maken van de insluiting. |
data |
EmbeddingObject | Het embedobject. |
usage |
Gebruik | Metagegevens van tokengebruik. |
EmbeddingObject
Veld | Type | Beschrijving |
---|---|---|
object |
Snaar | Het objecttype. Gelijk aan "embedding" . |
index |
Geheel getal | De index van de insluiting in de lijst met insluitingen die door het model worden gegenereerd. |
embedding |
List[Float] | De insluitvector. Elk model retourneert een vector met vaste grootte (1024 voor BGE-Large) |