DokumentationDer Endpoint des Assistenten
Ihre Assistenten
Der Endpoint des Assistenten
Eine einzige Anfrage im OpenAI-Format. Ihr Assistent antwortet mit seinen Anweisungen und seinem Gedächtnis, als Stream.
Den Assistenten aufrufen
POST /v1/agents/chat/completions Eine vollständige Konversationsrunde.
Geben Sie den Assistenten mit assistantId an. Um dieselbe Konversation fortzusetzen, senden Sie stattdessen threadId.
curl -N https://api.learnya.ai/v1/agents/chat/completions \
-H "Authorization: Bearer $LEARNYA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"assistantId": "ASSISTANT_ID",
"stream": true,
"messages": [
{"role": "user", "content": "Where is my invoice?"}
]
}'with requests.post(
f"{API}/agents/chat/completions",
headers=HEADERS,
json={
"assistantId": assistant["id"],
"stream": True,
"messages": [
{"role": "user", "content": "Where is my invoice?"}
],
},
stream=True,
) as response:
for line in response.iter_lines(decode_unicode=True):
if line.startswith("data: ") and line != "data: [DONE]":
chunk = json.loads(line[6:])
delta = chunk["choices"][0]["delta"].get("content")
print(delta or "", end="", flush=True)const response = await fetch(`${API}/agents/chat/completions`, {
method: "POST",
headers,
body: JSON.stringify({
assistantId: assistant.id,
stream: true,
messages: [
{ role: "user", content: "Where is my invoice?" },
],
}),
})
const decoder = new TextDecoder()
for await (const part of response.body) {
for (const line of decoder.decode(part).split("\n")) {
if (!line.startsWith("data: ")) continue
if (line === "data: [DONE]") continue
const chunk = JSON.parse(line.slice(6))
process.stdout.write(chunk.choices[0]?.delta?.content ?? "")
}
}interface Chunk {
choices: { delta: { content?: string } }[]
}
const response = await fetch(`${API}/agents/chat/completions`, {
method: "POST",
headers,
body: JSON.stringify({
assistantId: assistant.id,
stream: true,
messages: [
{ role: "user", content: "Where is my invoice?" },
],
}),
})
const text = response.body!.pipeThrough(new TextDecoderStream())
for await (const part of text) {
for (const line of part.split("\n")) {
if (!line.startsWith("data: ")) continue
if (line === "data: [DONE]") continue
const chunk = JSON.parse(line.slice(6)) as Chunk
process.stdout.write(chunk.choices[0]?.delta?.content ?? "")
}
}Die Antwort
| Modus | Was Sie erhalten |
|---|---|
| Als Stream | Stücke vom Typ chat.completion.chunk im OpenAI-Format, dann [DONE] |
| Ohne Stream | Eine sofortige Antwort ohne Text, mit finish_reason auf queued und den IDs von Thread, Nachricht und Run zum Verfolgen |
Unterschiede zu einem Modell allein
| Thema | Mit einem Assistenten |
|---|---|
| Das Feld model | Es wählt das Modell für diese Antwort, nicht den Assistenten |
| Nachrichten der Rolle tool und Bilder | Abgelehnt: Der Assistent ruft seine Tools selbst auf |
| Token-Zählung | Eine Schätzung, und completion_tokens ist 0 |
| Zugriff | Das Zugriffstoken einer Person, kein API-Schlüssel |
Für ein Modell ohne Assistenten bleiben Sie bei der einfachen Konversation mit einem API-Schlüssel.