feat: selectable wire format — ollama (default), openai (vLLM etc.), anthropic
Port the multi-API client from llm.chat (llm.rs kept in lockstep): the optional api input selects the dialect, default stays the unchanged v0.1.x Ollama behavior. openai covers vLLM, LM Studio, LiteLLM and cloud OpenAI; api-specific error hints; api_key sent as Bearer (ollama/openai) or x-api-key (anthropic). model_digest stays an Ollama-only best-effort probe and is documented as such. Proven end-to-end against a hermetic OpenAI-wire fake (request shape validated, response parsed) via a hub flow run. Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
parent
47db969564
commit
c54c14b28a
6 changed files with 567 additions and 93 deletions
51
module.yaml
51
module.yaml
|
|
@ -1,11 +1,11 @@
|
|||
schema_version: 3
|
||||
provider: chain
|
||||
name: text-translate
|
||||
version: 0.1.0
|
||||
version: 0.2.0
|
||||
|
||||
provides:
|
||||
- capability: text.translate
|
||||
version: 0.1.0
|
||||
version: 0.2.0
|
||||
|
||||
inputs:
|
||||
text:
|
||||
|
|
@ -35,18 +35,43 @@ inputs:
|
|||
endpoint:
|
||||
type: text
|
||||
description:
|
||||
en: Ollama-shaped /api/chat endpoint.
|
||||
de: Ollama-kompatibler /api/chat-Endpunkt.
|
||||
en: |
|
||||
Chat endpoint URL matching the selected api:
|
||||
ollama "http://localhost:11434/api/chat",
|
||||
openai "http://localhost:8000/v1/chat/completions"
|
||||
(vLLM etc.), anthropic "https://.../v1/messages".
|
||||
de: |
|
||||
Chat-Endpunkt-URL passend zum gewählten api:
|
||||
ollama "http://localhost:11434/api/chat",
|
||||
openai "http://localhost:8000/v1/chat/completions"
|
||||
(vLLM u. a.), anthropic "https://.../v1/messages".
|
||||
api:
|
||||
type: text
|
||||
description:
|
||||
en: |
|
||||
Optional wire format: "ollama" (default), "openai"
|
||||
(OpenAI-compatible servers such as vLLM or LM Studio),
|
||||
or "anthropic" (Messages API). Empty = ollama.
|
||||
de: |
|
||||
Optionales Wire-Format: "ollama" (Default), "openai"
|
||||
(OpenAI-kompatible Server wie vLLM oder LM Studio)
|
||||
oder "anthropic" (Messages API). Leer = ollama.
|
||||
model:
|
||||
type: text
|
||||
description:
|
||||
en: Model identifier (e.g. "qwen2.5:14b").
|
||||
de: Modell-Identifier (z. B. "qwen2.5:14b").
|
||||
en: Model identifier as registered with the endpoint (e.g. "qwen2.5:14b").
|
||||
de: Modell-Identifier wie am Endpunkt registriert (z. B. "qwen2.5:14b").
|
||||
api_key:
|
||||
type: text
|
||||
description:
|
||||
en: Optional bearer token for cloud-hosted endpoints.
|
||||
de: Optionaler Bearer-Token für Cloud-Endpunkte.
|
||||
en: |
|
||||
Optional API key. Sent as "Authorization: Bearer" for
|
||||
ollama/openai and as "x-api-key" for anthropic. Empty
|
||||
for local endpoints.
|
||||
de: |
|
||||
Optionaler API-Key. Bei ollama/openai als
|
||||
"Authorization: Bearer", bei anthropic als "x-api-key"
|
||||
gesendet. Leer für lokale Endpunkte.
|
||||
|
||||
outputs:
|
||||
translation:
|
||||
|
|
@ -77,8 +102,14 @@ outputs:
|
|||
model_digest:
|
||||
type: text
|
||||
description:
|
||||
en: SHA-256 digest of the served Ollama model (when reachable).
|
||||
de: SHA-256-Digest des bedienten Ollama-Modells (wenn erreichbar).
|
||||
en: |
|
||||
SHA-256 digest of the served model, best-effort probe.
|
||||
Ollama only — empty for other endpoints (OpenAI / vLLM /
|
||||
Anthropic expose no digest API).
|
||||
de: |
|
||||
SHA-256-Digest des bedienten Modells (Best-Effort-Probe).
|
||||
Nur bei Ollama — leer bei anderen Endpunkten (OpenAI /
|
||||
vLLM / Anthropic bieten keine Digest-API).
|
||||
|
||||
permissions:
|
||||
- "net: localhost"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue