Delen via


Naslaginformatie over REST API voor 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 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.

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 waarin het aantal tokens in de aanvraag en het antwoord wordt gerapporteerd. De indeling van dit subbericht is hetzelfde voor alle taaktypen.

Veld Type Description
completion_tokens Geheel getal Aantal gegenereerde tokens. Niet opgenomen in het insluiten 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 een gebruikersprompt wordt getransformeerd met behulp van een promptsjabloon voordat deze in het model wordt doorgegeven. Voor eindpunten met betalen per token kan er ook een systeemprompt worden toegevoegd. prompt_tokens bevat alle tekst die door onze server is toegevoegd.

Chattaak

Chattaken zijn geoptimaliseerd voor gesprekken met meerdere paden met een model. Elke aanvraag beschrijft het gesprek tot nu toe, waarbij het messages veld moet wisselen tussen user en assistant rollen, eindigend met een user bericht. Het antwoord van het model bevat het volgende assistant bericht in het gesprek.

Chataanvraag

Veld Default Type Description
messages ChatMessage-lijst Vereist. Een lijst met berichten die het huidige gesprek vertegenwoordigen.
max_tokens null null, wat betekent geen limiet of een geheel getal groter dan nul Het maximum aantal tokens dat moet worden gegenereerd.
stream true Booleaanse waarde 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 standaard voor door de server verzonden gebeurtenissen .
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 geen limiet of een geheel getal groter 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 wordt stop aangetroffen.
n 1 Geheel getal groter dan nul De API retourneert n onafhankelijke chatvoltooiingen wanneer n deze is opgegeven. Aanbevolen voor workloads die meerdere voltooiingen genereren op dezelfde invoer voor extra deductie-efficiëntie en kostenbesparingen. Alleen beschikbaar voor ingerichte doorvoereindpunten.
tool_choice none Tekenreeks of ToolChoiceObject Alleen gebruikt in combinatie met het tools veld. tool_choice ondersteunt verschillende trefwoordtekenreeksen, zoals auto, requireden none. auto betekent dat u het model laat bepalen welke (indien van toepassing) hulpprogramma relevant is voor gebruik. Als auto het model niet denkt dat een van de hulpprogramma's tools relevant is, genereert het model een standaardassistentbericht in plaats van een aanroep van een hulpprogramma. required betekent dat het model het meest relevante hulpprogramma kiest tools en een hulpprogramma-aanroep moet genereren. none betekent dat het model geen hulpprogramma-aanroepen genereert en in plaats daarvan een standaardassistentbericht moet genereren. Gebruik een ToolChoiceObject om een aanroep van een hulpprogramma af te dwingen dat is gedefinieerd intools. Als het tools veld standaard is ingevuld tool_choice = "auto". Anders wordt het tools veld standaard ingesteld op tool_choice = "none"
tools null ToolObject Een lijst met tools die gegevens die het model kan aanroepen. function Momenteel is dit het enige ondersteunde tool type en wordt een maximum van 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": {...} } het inschakelen van gestructureerde uitvoer die ervoor zorgt dat het model het opgegeven JSON-schema volgt.

Instelling om ervoor te { "type": "json_object" } zorgen dat de antwoorden die het model genereert geldige JSON is, maar er niet voor zorgt dat antwoorden een specifiek schema volgen.
logprobs false Booleaanse waarde Met deze parameter wordt aangegeven of de logboekkans moet worden opgegeven voor een token dat wordt gemonsterd.
top_logprobs null Geheel getal Deze parameter bepaalt het aantal hoogstwaarschijnlijk tokenkandidaten om logboekkansen voor elke steekproefstap te retourneren. Kan 0-20 zijn. logprobs moet zijn true als u dit veld gebruikt.

ChatMessage

Veld Type Omschrijving
role String Vereist. De rol van de auteur van het bericht. Kan zijn "system", "user"of "assistant" "tool".
content String De inhoud van het bericht. Vereist voor chattaken waarvoor geen hulpprogramma-aanroepen nodig zijn.
tool_calls ToolCall-lijst De lijst met tool_calls de gegenereerde modellen. Moet net als "assistant" en geen specificatie voor het content veld hebbenrole.
tool_call_id String Wanneer role is "tool", de id die is gekoppeld aan de ToolCall id 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 actiesuggesties voor het hulpprogramma aanroepen door het model. Zie Functie-aanroepen in Azure Databricks.

Veld Type Omschrijving
id String Vereist. Een unieke id voor deze suggestie voor het aanroepen van het hulpprogramma.
type String Vereist. Alleen "function" wordt ondersteund.
function FunctionCallCompletion Vereist. Een functie-aanroep die door het model wordt voorgesteld.

FunctionCallCompletion

Veld Type Omschrijving
name String 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 Functie-aanroepen in Azure Databricks.

Veld Type Omschrijving
type String Vereist. Het type hulpprogramma. Momenteel 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 van een FunctionObject in het tools veld is.

ToolObject

Zie Functie-aanroepen in Azure Databricks.

Veld Type Omschrijving
type String Vereist. Het type hulpprogramma. Momenteel wordt alleen function ondersteund.
function FunctionObject Vereist. De functiedefinitie die aan het hulpprogramma is gekoppeld.

FunctionObject

Veld Type Omschrijving
name String 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-schemaobject . Als het hulpprogramma wordt aangeroepen, past de aanroep van het hulpprogramma aan het opgegeven JSON-schema. Als u parameters weglaat, wordt een functie zonder parameters gedefinieerd. Het aantal properties is beperkt tot 15 sleutels.
strict Booleaanse waarde Of u strikte schema-naleving wilt inschakelen bij het genereren van de functieaanroep. Als dit is ingesteld true, volgt het model het exacte schema dat is gedefinieerd in het schemaveld. Alleen een subset van het JSON-schema wordt ondersteund wanneer strikt is true

ResponseFormatObject

Zie gestructureerde uitvoer in Azure Databricks.

Veld Type Omschrijving
type String Vereist. Het type antwoordindeling dat wordt gedefinieerd. Voor text 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 deze is ingesteld op json_schema

JsonSchemaObject

Zie gestructureerde uitvoer in Azure Databricks.

Veld Type Omschrijving
name String Vereist. De naam van de antwoordindeling.
description String Een beschrijving van wat de antwoordindeling is, die door het model wordt gebruikt om te bepalen hoe moet worden gereageerd in de indeling.
schema Object Vereist. Het schema voor de antwoordindeling, beschreven als een JSON-schemaobject.
strict Booleaanse waarde Of u strikte schema-naleving wilt inschakelen bij het genereren van de uitvoer. Als dit is ingesteld true, volgt het model het exacte schema dat is gedefinieerd in het schemaveld. Alleen een subset van het JSON-schema wordt ondersteund wanneer strikt is true

Chatantwoord

Voor niet-streaming-aanvragen is het antwoord één voltooiingsobject voor chats. Voor streaming-aanvragen is het antwoord een text/event-stream waar elke gebeurtenis een segmentobject voor voltooiing is. De structuur op het hoogste niveau van voltooiings- en segmentobjecten is bijna identiek: alleen choices heeft een ander type.

Veld Type Omschrijving
id String 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 String Het objecttype. Gelijk aan voor "chat.completions" niet-streaming of "chat.completion.chunk" voor streaming.
created Geheel getal De tijd waarop de chat is voltooid in seconden.
model String De modelversie die wordt gebruikt om het antwoord te genereren.
usage Gebruik Metagegevens van tokengebruik. Kan niet aanwezig zijn op streamingreacties.

ChatCompletionChoice

Veld Type Description
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 is assistant.
finish_reason String De reden waarom het model geen tokens meer genereert.

ChatCompletionChunk

Veld Type Description
index Geheel getal De index van de keuze in de lijst met gegenereerde keuzes.
delta ChatMessage Een chat-voltooiingsbericht van gegenereerde gestreamde antwoorden van het model. Alleen het eerste segment is gegarandeerd role gevuld.
finish_reason String De reden waarom het model geen tokens meer genereert. Alleen het laatste segment heeft dit ingevuld.

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.

Voltooiingsaanvraag

Veld Default Type Description
prompt Tekenreeks of lijst[tekenreeks] Vereist. De prompt(s) voor het model.
max_tokens null null, wat betekent geen limiet of een geheel getal groter dan nul Het maximum aantal tokens dat moet worden gegenereerd.
stream true Booleaanse waarde 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 standaard voor door de server verzonden gebeurtenissen .
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 geen limiet of een geheel getal groter 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 contextlengte overschreden fouten. 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 deze is opgegeven. Aanbevolen voor workloads die meerdere voltooiingen genereren op dezelfde invoer voor extra deductie-efficiëntie en kostenbesparingen. Alleen beschikbaar voor ingerichte doorvoereindpunten.
stop [] Tekenreeks of lijst[tekenreeks] Het model stopt met het genereren van verdere tokens wanneer een van de reeksen wordt stop aangetroffen.
suffix "" String Een tekenreeks die wordt toegevoegd aan het einde van elke voltooiing.
echo false Booleaanse waarde Retourneert de prompt samen met de voltooiing.
use_raw_prompt false Booleaanse waarde Als true, geeft u het prompt rechtstreeks door aan het model zonder enige transformatie.

Voltooiingsreactie

Veld Type Omschrijving
id String Unieke id voor de voltooiing van de tekst.
choices CompletionChoice Een lijst met tekstvoltooiingen. Voor elke prompt die wordt doorgegeven, n worden opties gegenereerd als n deze zijn opgegeven. De standaardwaarde n is 1.
object String 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 Description
index Geheel getal De index van de prompt in de aanvraag.
text String De gegenereerde voltooiing.
finish_reason String De reden waarom het model geen tokens meer genereert.

Taak insluiten

Door taken in te sluiten, worden invoerreeksen toegewezen aan insluitingsvectoren. In elke aanvraag kunnen veel invoer in batches worden gebatcheerd.

Aanvraag voor insluiten

Veld Type Description
input Tekenreeks of lijst[tekenreeks] Vereist. De invoertekst die moet worden ingesloten. Dit kan een tekenreeks of een lijst met tekenreeksen zijn.
instruction String 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 instructietekenreeksen.

Antwoord insluiten

Veld Type Omschrijving
id String Unieke id voor het insluiten.
object String Het objecttype. Gelijk aan "list".
model String De naam van het insluitmodel dat wordt gebruikt voor het maken van de insluiting.
data EmbeddingObject Het insluitobject.
usage Gebruik Metagegevens van tokengebruik.

EmbeddingObject

Veld Type Omschrijving
object String 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)

Aanvullende bronnen