Chat (LLM)
Text-based conversation. Speaks the OpenAI chat/completions format directly — send a messages list, get a role-tagged response.
Available models
| Model | Use for | Note |
|---|---|---|
verinova (recommended, fast) | Telephony, IVR, short chat | gpt-oss-20b Q8, reasoning off — replies snap back instantly |
verinova-large | Reports, analysis, docs | Qwen3-30B-A3B-Instruct Q8, reasoning on — step-by-step, richer answers |
gpt-4o | Via OpenAI | If an OpenAI-keyed channel exists |
claude-3-5-sonnet | Via Anthropic | If an Anthropic-keyed channel exists |
Which one?
- Latency-critical (telephony, real-time chat):
verinova - Quality-critical (reports, PRDs, multi-step reasoning):
verinova-large
curl
bash
curl https://app.qevron.ai/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "verinova",
"messages": [
{"role": "system", "content": "Be concise."},
{"role": "user", "content": "What is 1 + 1?"}
]
}'Python (openai SDK)
python
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://app.qevron.ai/v1",
)
resp = client.chat.completions.create(
model="verinova",
messages=[
{"role": "system", "content": "Be concise."},
{"role": "user", "content": "Write me a limerick"},
],
)
print(resp.choices[0].message.content)Streaming
Add "stream": true — the server sends Server-Sent Events with partial chunks:
python
for chunk in client.chat.completions.create(
model="verinova",
messages=[{"role": "user", "content": "..."}],
stream=True,
):
print(chunk.choices[0].delta.content or "", end="", flush=True)reasoning_effort (verinova-large)
Qwen3 30B by default emits <think>...</think> blocks with its internal reasoning. To suppress them and keep only the final answer:
json
{
"model": "verinova-large",
"messages": [...],
"chat_template_kwargs": {"reasoning_effort": "none"}
}Telephony?
Don't use verinova-large in CalleKit — response latency balloons. CalleKit hits verinova and reasoning is already off at the channel level.
Troubleshooting
- "model not found" → match the table spelling exactly. Case-sensitive.
- "connection refused" → the underlying channel may be down. Check the /capabilities page in the admin UI.
- Response too slow →
verinova-largeis naturally ~3–5× slower thanverinova. First try streaming (stream:true), then capmax_tokens: 256–512.
Next: RAG: embedding + rerank · First chatbot