त्वरित शुरुआत

किसी भी OpenAI संगत SDK के बेस_यूआरएल को हमारे गेटवे पर इंगित करें और कॉल करना शुरू करें। पहली प्रतिक्रिया आमतौर पर कुछ सेकंड के भीतर वापस आ जाती है।

from openai import OpenAI

client = OpenAI(
    api_key="sk-xc-your-key-here",
    base_url="https://api.nexevo.ai/v1",
)

resp = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)

प्रमाणीकरण

कुंजी पृष्ठ पर एक एपीआई कुंजी बनाएं और इसे बियरर टोकन के रूप में प्राधिकरण हेडर में डालें। प्रत्येक अनुरोध के लिए एक वैध कुंजी की आवश्यकता होती है; निरस्त या समाप्त हो चुकी कुंजियाँ तुरंत अस्वीकार कर दी जाती हैं।

http
GET /v1/billing/balance HTTP/1.1
Host: api.nexevo.ai
Authorization: Bearer sk-xc-abc123...

एकल कुंजी सेटिंग्स (उप-सीमा/आईपी श्वेतसूची/मॉडल प्रतिबंध/समाप्ति) को कुंजी पृष्ठ पर कॉन्फ़िगर किया जा सकता है। विभिन्न अनुप्रयोगों या वातावरणों के लिए प्रतिबंधित-स्कोप कुंजियाँ जारी करने के लिए उपयोग किया जाता है।

सामने के सिरे पर कुंजियों को हार्डकोड न करें
एपीआई कुंजी पासवर्ड के बराबर है और इसका उपयोग केवल बैकएंड सर्वर पर किया जा सकता है। ब्राउज़र/क्लाइंट में sk-xc-* को सीधे उजागर करने से बचने के लिए फ्रंट-एंड/मोबाइल ऐप्स को आपकी अपनी मध्य परत के माध्यम से कॉल किया जाना चाहिए।

संवाद समापन

OpenAI मानक संदेश प्रारूप का उपयोग करके /v1/चैट/पूर्णताओं पर पोस्ट करें। मॉडल=स्मार्टिसन-ऑटो का उपयोग करें और हम आपके प्रश्न के आधार पर स्वचालित रूप से सबसे उपयुक्त अपस्ट्रीम पर रूट कर देंगे। तापमान/मैक्स_टोकन/टॉप_पी/स्टॉप जैसे मानक पैरामीटर भी समर्थित हैं।

python
resp = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user",   "content": "Explain quantum entanglement"},
    ],
    temperature=0.7,
    max_tokens=500,
)
print(resp.choices[0].message.content)
Parameters
modelstringRequiredकॉल करने के लिए मॉडल ID, जैसे gpt-4o / claude-opus-4-7।<br/>स्मार्ट रूटिंग उपनाम: nexevo/fast / nexevo/balanced / nexevo/autoसभी 121 मॉडल देखें →
messagesMessage[]RequiredOpenAI 标准对话历史。{role, content} 数组,role ∈ system/user/assistant/tool。
streambooleanDefault: false开启 SSE 流式;返回 ChatCompletionChunk 序列,需用 SSE 解析器消费。
temperaturenumberDefault: 1采样温度,0-2。低 = 确定性 / 代码;高 = 创意。
max_tokensintegerOptional单次响应最大 token。不设则用模型默认。
top_pnumberDefault: 1核采样阈值。一般 temperature OR top_p 二选一。
toolsTool[]OptionalOpenAI function calling 标准 tools 数组。详见 Function calling 节。
tool_choice"auto" | "none" | objectOptional工具选择策略;指定具体 tool 名可强制调用。
response_formatobjectOptionalJSON 模式或 Schema 严格模式: {type: "json_object"}{type: "json_schema", json_schema: {...}}
modelsstring[]OptionalNexevo 扩展:多模型 fallback 列表。主 model 失败按顺序尝试,大幅提升可用性。
providerProviderPreferenceOptionalNexevo 扩展:路由偏好,如 {order: ["groq"], allow_fallbacks: true}
max_priceMaxPriceOptionalNexevo 扩展:成本上限 USD,如 {prompt: 0.01, completion: 0.05}。超价直接拒绝。

स्ट्रीमिंग प्रतिक्रिया

स्ट्रीम = सत्य मानते हुए, हम न्यूनतम अतिरिक्त देरी के साथ अपस्ट्रीम एसएसई टोकन को टोकन द्वारा अग्रेषित करेंगे। स्ट्रीम `डेटा: [DONE]` के साथ समाप्त होती है। टूल कॉल टूल_कॉल डेल्टा के माध्यम से लौटाए जाते हैं - बिल्कुल ओपनएआई प्रारूप के समान।

python
stream = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[{"role": "user", "content": "Write a haiku."}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content or ""
    print(delta, end="", flush=True)

फ़ंक्शन कॉलिंग

`टूल्स` ऐरे (JSON स्कीमा विवरण फ़ंक्शन) में पास करें। यदि मॉडल टूल को कॉल करने का निर्णय लेता है, तो `tool_calls` लौटाएं। आप फ़ंक्शन को स्थानीय रूप से निष्पादित करते हैं, परिणाम को टूल रोल संदेश के रूप में जोड़ते हैं, और एपीआई को फिर से कॉल करते हैं - ओपनएआई मानक प्रक्रिया के समान।

python
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

resp = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
    tools=tools,
)
tool_call = resp.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)

छवि / वीडियो / 3D जनरेशन

Nexevo का जनरेशन गेटवे 8 प्रोवाइडर्स के 22 मॉडल्स को एकीकृत करता है — छवि, वीडियो, 3D। छवि sync है (URL या base64 लौटाती है); वीडियो / 3D job_id पोलिंग के माध्यम से async है (SDK generate_and_wait हेल्पर्स प्रदान करता है)। Sora 2 / Veo 3 / Runway वीडियो 24 घंटे साइन URL के लिए OSS पर ऑटो-मिरर होते हैं। चालू उदाहरणों के लिए /cookbook की Generation श्रेणी देखें।

python
# 1) 文生图(同步)— DALL-E 3 / Imagen 4 / FLUX
img = client.images.generate(
    model="nexevo/image-balanced",       # or "dall-e-3" / "imagen-4-ultra" / "flux-pro"
    prompt="a serene Japanese garden in cyberpunk style",
    n=1, size="1024x1024",
)
print(img["data"][0]["url"])

# 2) 文生视频(异步)— Sora 2 / Veo 3 / Wan 2.6
job = client.videos.generate_and_wait(
    model="sora-2",                          # or "veo-3" / "wan-2.6"
    prompt="a cat skating in neon Tokyo",
    duration_sec=5, aspect_ratio="16:9",
    poll_interval_sec=5, timeout_sec=600,
)
print(job["results"][0]["url"])              # OSS 24h signed URL

# 3) 3D 资产 — Hunyuan 3D 直连
asset = client.models3d.generate_and_wait(
    model="hunyuan-3d-2", prompt="a low-poly viking longboat",
    output_format="glb",
)
print(asset["results"][0]["url"])

# 4) 图生视频 — Runway Gen-4 需先上传参考图
with open("char.png", "rb") as f:
    up = client.generation.uploads.upload(
        f.read(), filename="char.png", content_type="image/png",
    )
job = client.videos.generate_and_wait(
    model="runway-gen4",
    prompt="zoom in slowly while waves crash",
    duration_sec=5,
    reference_image_url=up["url"],
)
POST /v1/images/generations · 同步
modelstringRequired模型 id,如 nexevo/image-balanced / dall-e-3 / imagen-4-ultra / flux-pro。完整 22 模型见 GET /generation/models
promptstringRequired文本描述,最多 4000 字符。
nintegerDefault: 1生成数量,1-10。Imagen 上限 4,DALL-E 3 仅 1。
sizestringDefault: 1024x1024尺寸,常见 1024x1024 / 1792x1024 / 1024x1792;Imagen 自动映射到 aspectRatio。
quality"standard" | "hd"Optional仅 DALL-E 3 / gpt-image-1 用。hd 价格×2,细节更好。
reference_image_b64stringOptional图生图用,base64 PNG / JPG。OpenAI gpt-image-1 / FLUX 支持;DALL-E 3 不支持。
negative_promptstringOptional不想要的元素描述。OpenAI 自动忽略,Replicate / Wan 用。
seedintegerOptional确定性种子,同 prompt + seed 出同图(部分 provider)。
POST /v1/videos/generations · 异步,返 {job_id, status}
modelstringRequiredsora-2 / sora-2-pro / veo-3 / veo-3-fast / wan-2.6 / wan-2.6-pro / runway-gen4 / nexevo/video-{fast|balanced|pro}
promptstringRequired视频文本描述。
duration_secnumberDefault: 5视频时长,1-30 秒。Sora 2 / Veo 3 推荐 5-10。
aspect_ratiostringDefault: "16:9"16:9 / 9:16 / 1:1 / 4:3 / 3:4
reference_image_urlstringOptional图生视频参考图(https URL)。Runway Gen-4 强制必传;Wan 2.6 用作首帧。先调 POST /v1/generation/upload 拿 OSS URL。
negative_promptstringOptionalWan / Replicate / Veo 用。
seedintegerOptional确定性种子(部分 provider)。
POST /v1/3d/generations · 异步
modelstringRequiredhunyuan-3d-2 / hunyuan-3d-2-pro / nexevo/3d-{fast|balanced}
promptstringOptional文本描述(prompt 或 reference_image_url 二选一)。
reference_image_urlstringOptional图生 3D 参考图(https URL)。
output_formatstringDefault: "glb"glb / obj / usdz / stl / fbx
POST /v1/generation/upload · multipart,返 OSS 签名 URL
filemultipart fileRequiredmultipart/form-data 字段名 file,PNG / JPG / WebP / GIF,≤ 10 MB。
GET /v1/generation/jobs/{job_id} · poll(SDK 自动)
idstringOptionalNexevo 内部 job_id(gen_xxxx)。
status"pending" | "running" | "succeeded" | "failed" | "canceled"Optional异步任务状态。
progressnumberOptional0-100,部分 provider(Replicate / Veo)实时报。
resultsGenResult[]Optional完成后含 { url, b64_json, mime_type, duration_ms, ... }。Sora 2 / Veo 3 / Runway 自动镜像到 OSS,URL 24h 有效。
charged_usdstringOptional扣费金额(完成时填入)。
errorobject | nullOptional失败时含 { code, message, retryable }
Tip
हस्तनिर्मित पोलिंग के बजाय SDK के generate_and_wait का उपयोग करें: client.videos.generate_and_wait(model='sora-2', prompt='...', duration_sec=5) — डिफ़ॉल्ट 5s पोल अंतराल, 10 मिनट टाइमआउट, विफल होने पर TimeoutError उठाता है।

Embeddings · पाठ वेक्टराइजेशन

पाठ को निश्चित-आयामी वेक्टर में संपीड़ित करता है, RAG खोज के लिए। OpenAI-संगत schema। इनपुट टोकन बिलिंग ($0.02-$0.13/1M)।

# OpenAI 兼容 schema — 把 OpenAI client 的 base_url 改成我们的就能用
resp = client.embeddings.create(
    model="text-embedding-3-large",      # 也可写 voyage-3 / jina-embeddings-v3 / bge-m3
    input="Nexevo.ai 是一个 LLM 网关",         # 或 list[str] 批量
)
vec = resp["data"][0]["embedding"]       # 3072 个浮点数
print(len(vec), resp["usage"]["prompt_tokens"])

# 智能路由 — admin 可后台改路由目标,你的代码不用改
resp = client.embeddings.create(
    model="nexevo/embed-balanced",    # 智能路由 = voyage-3(默认)
    input=["doc 1...", "doc 2...", "doc 3..."],
)
for row in resp["data"]:
    print(row["index"], len(row["embedding"]))
POST /v1/embeddings
modelstringRequired客户面 model id。可填:text-embedding-3-large / text-embedding-3-small / voyage-3-large / voyage-3 / jina-embeddings-v3 / bge-m3 / embed-multilingual-v3.0;或智能路由 nexevo/embed-fast / nexevo/embed-balanced
inputstring | string[]Required单段文本或批量(批量上限取决于 provider,通常 100-2048)。
encoding_format"float" | "base64"Default: "float"返回向量的编码;base64 体积小但需要客户端 decode。
dimensionsintegerOptional降维向量维度。仅 text-embedding-3-* / jina-embeddings-v3 支持。
userstringOptionaltenant 标识,审计与速率限制用。
कौन सा प्रदाता?
चीनी: BGE-m3। अंग्रेजी: Voyage-3। बहुभाषी: Jina-v3।

Rerank · RAG दूसरा चरण

embedding द्वारा प्राप्त शीर्ष 50 को शीर्ष 5 पर पुनः क्रमित करना। RAG सटीकता के लिए महत्वपूर्ण।

# RAG 第二段:把 embedding 召回的 top-50 候选重排,只留 top-5 最相关
ranked = client.rerank.create(
    model="rerank-v3.5",                 # 也可 jina-reranker-v2-base / bge-reranker-v2
    query="如何重置员工 VPN?",
    documents=top50_docs,                # list[str] 或 list[{"text": "..."}]
    top_n=5,
)
for r in ranked["results"]:
    print(r["relevance_score"], r["document"][:60])
POST /v1/rerank
modelstringRequired客户面 model id:rerank-v3.5(Cohere)/ rerank-multilingual-v3.0 / jina-reranker-v2-base / bge-reranker-v2 / nexevo/rerank-fast / nexevo/rerank-balanced
querystringRequired检索 query / 用户问题。
documentsstring[] | object[]Required候选文档列表,通常来自 embedding 检索 top-50。可以是 string 或 {"text": "..."}
top_nintegerOptional排序后保留前 N 条。不设则全返(已排序)。
return_documentsbooleanDefault: true返回时是否包含原文。设 false 只返 index + score 节流。
कौन सा reranker?
अंग्रेजी: Cohere v3.5। चीनी: BGE-reranker-v2। सर्वोत्तम मूल्य: Jina-v2।

पूर्ण RAG पाइपलाइन

embeddings + rerank + chat. 10k दस्तावेज़ ~$0.06 vs ~$5+ कच्चा प्रॉम्प्ट।

python
# 完整 RAG 三段:embedding 召回 → rerank 精排 → chat 答题
# 总成本 ~$0.06 vs 直接塞 1 万篇文档给 chat ~$5+(差 100x)

from nexevo_ai import Nexevo
client = Nexevo()

# ── 1. 离线索引(只跑一次)──
all_docs = ["...", "...", ...]   # 1 万篇文档
emb_resp = client.embeddings.create(model="bge-m3", input=all_docs)
vectors = [d["embedding"] for d in emb_resp["data"]]
# (省略向量库存取代码 — 用 Pinecone / Milvus / pgvector 都行)

# ── 2. 用户提问时(每次请求触发)──
question = "如何重置员工 VPN?"

# 2a) embed 问题 → 检索 top-50
q_emb = client.embeddings.create(model="bge-m3", input=question)
top50 = vector_db.query(q_emb["data"][0]["embedding"], k=50)

# 2b) rerank top-50 → top-5 最相关
ranked = client.rerank.create(
    model="rerank-v3.5",
    query=question,
    documents=[d.text for d in top50],
    top_n=5,
)["results"]
top5 = [top50[r["index"]] for r in ranked]

# 2c) chat 用 top-5 答题
context = "\n\n".join(d.text for d in top5)
ans = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[
        {"role": "system",
         "content": f"基于以下材料答题(只能用这些材料,不要编):\n\n{context}"},
        {"role": "user", "content": question},
    ],
)
print(ans.choices[0].message.content)
वेक्टर डेटाबेस?
छोटा: pgvector। मध्यम: Qdrant / Weaviate। बड़ा: Pinecone / Milvus।

Agents · Agent-as-a-Service

उच्च-स्तरीय कार्य को agent को सौंपें — यह स्वयं चरण विभाजित करता है, tool कॉल करता है, और उत्तर तक लूप करता है। अंतर्निहित tools: rag_search + list_models।

from nexevo_ai import Nexevo
client = Nexevo()

# 1) 同步模式(默认 wait=True)— 阻塞等结果,deadline 默认 120s,可调到 3600s
job = client.agents.run(
    task="找一个最便宜的中文 RAG embedding 模型,告诉我维度和单价",
    model="nexevo/balanced",        # chat brain,可换 claude / gpt-5 等
    max_steps=10,
)
print(job["result"])
# Agent 内部会:
#   step 1: chat → tool_call list_models(kind=embedding, modality 多语言)
#   step 2: tool_result 返 BGE-m3 / Jina-v3 等候选
#   step 3: chat 综合 → final_answer "BGE-m3 1024 维,$0.07/1M"

# 2) 给 RAG 任务预加载文档
job = client.agents.run(
    task="基于这些资料答:如何重置员工 VPN?",
    rag_documents=[
        "VPN 服务器列表请联系 IT 支持...",
        "重置 VPN 密码需要登录员工门户...",
        # ... 上千条
    ],
    tools=["rag_search"],
)

# 3) 异步任务(长任务推荐)
submitted = client.agents.run(task="复杂调研任务...", wait=False)
job = client.agents.run_and_wait(submitted["id"], timeout_sec=300)

# 4) Memory tools(2026-04-29 P4 v2)— LLM 主动读写工作记忆 / 长期记忆
#    任务级 memory:节点之间共享中间事实(避免 prompt 拼接爆炸)
#    tenant 级 memory:跨任务的"上次客户做过 X" 让 agent 第二次更聪明
#    工具自动注入,LLM 调用 memory_read({level:"task", key:"..."}) 即可
POST /v1/agents/run · POST /v1/agents/run/stream(SSE)
taskstringRequired用户面任务描述。Agent 内部 LLM brain 拿这个当 user message 起循环。
modelstringDefault: "nexevo/balanced"Agent 大脑(chat completion 模型)。可换 claude-opus-4-7 / gpt-5 / nexevo/fast 等。
toolsstring[]Optional启用的内置 tool 名;不填 = 全部启用。内置:rag_search / list_models / web_search / generate_image / python_exec / spawn_agent / memory_read / memory_write
max_stepsintegerDefault: 10最多循环几步;防 LLM 死循环。上限 30。
rag_documentsstring[]Optionalrag_search tool 启动时预加载的文档,内部用 BGE-m3 embed + rerank-v3.5 精排。
system_promptstringOptional覆盖默认 agent 系统提示。
waitbooleanDefault: true同步阻塞等结果(true,默认 deadline 120s,可调上限 3600s)/ 异步立返 task_id 后客户走 GET /v1/tasks/{id} poll(false,长任务推荐)。
timeout_secintegerDefault: 120wait=true 时生效,超时返当前状态(可能仍 running),客户后续 poll。上限 3600s。
enable_verifierbooleanDefault: falsefinal_answer 出来后跑 cheap-model 多维度评估(factuality / relevance / completeness / safety),overall < threshold → verifier_passed=false
verifier_thresholdfloatDefault: 0.7verifier overall 分数低于此值标 failed。建议 0.6-0.8。
max_cost_usdfloatOptional软告警上限 — 估算累计花费超此值时 emit budget_warning step,**任务继续**;真正硬门 = 账户余额。避免估算误差导致误杀。

SSE स्ट्रीमिंग — लाइव चरण घटनाएँ

python
# 流式 — 实时拿每步事件,边跑边看
for ev in client.agents.run_stream(task="..."):
    if ev["type"] == "step":
        s = ev["step"]
        if s["type"] == "tool_call":
            print(f"→ 调用 {s['tool_name']}({s['tool_input']})")
        elif s["type"] == "tool_result":
            print(f"  ← {s['tool_output']}")
        elif s["type"] == "final_answer":
            print(f"\n答:{s['content']}")
    elif ev["type"] == "done":
        print(f"\n总 token: in={ev['job']['total_tokens_in']}, out={ev['job']['total_tokens_out']}")
agent कब उपयोग करें?
सरल कार्य: सीधे chat। बहु-चरणीय / tool-उपयोग वाले कार्य के लिए: agent। 5-चरण कार्य ≈ 5 गुना chat लागत।

/v1/tasks · Task-as-a-Service + Self-Healing v2

/v1/agents/run संवादात्मक एजेंट है। /v1/tasks task-as-a-service है — Planner (स्वचालित DAG विभाजन), बहु-आयामी Verifier, Auto-repair प्रतिबिंब लूप, और Partial Success मार्कर जोड़ता है। पूर्ण Plan→Execute→Evaluate→Adjust→Loop आर्किटेक्चर, अपेक्षित सफलता दर +20-25 pp।

POST /v1/tasks(任务即服务,Self-Healing v2)
goalstringRequired高层任务目标(替代 task)。Planner 拆 DAG 时从这里读。
deliverablesobject[]Optional结构化交付物声明:[{type:"email", target:"x@y.com"}] 或 webhook。
budget_usdfloatOptional任务级软告警预算(同 max_cost_usd 语义)。
deadline_secintegerDefault: 120任务超时;wait=true 时是同步上限,wait=false 时是后台执行上限。≥10、≤3600。
enable_plannerbooleanDefault: false用便宜 model(nexevo/fast 默认)拆 NL goal → DAG plan,executor 按图并行调度。复杂任务质量提升明显。
planner_modelstringDefault: "nexevo/fast"Planner 用什么模型(便宜模型够,通常无需改)。
planner_n_candidatesintegerDefault: 1并行生成 N 个候选 plan + 启发评分选优(节点数 / aggregate 唯一性 / tool_call 存在 / 引用合法)。1 单跑 / 2-5 多样性。
auto_repair_max_roundsintegerDefault: 0**Self-Healing**:verifier 失败时 → cheap-LLM 反思根因 → 重新 plan + 局部 re-run(checkpoint 复用成功节点)。0 关 / 1-3 启用。期望成功率 +20-25 pp。
autonomy_level"L1" | "L2" | "L3"Default: "L3"L1 启动前一次性确认 / L2 副作用工具(email / webhook / mcp:slack:*)调用前确认 / L3 完全托管。
python
from nexevo_ai import Nexevo
client = Nexevo()

# Self-Healing v2 — 任务自我修复闭环(Plan → Execute → Evaluate → Adjust)
result = client.tasks.submit(
    goal="调研 2025 Q2 全球生成式视频生成 Top 5 厂商,输出对比表(ARR/客户/技术亮点)",
    enable_planner=True,
    planner_n_candidates=3,         # 并行生成 3 个候选 plan,启发选优
    auto_repair_max_rounds=2,       # verifier 失败 → 反思 + 重 plan 最多 2 轮
    deadline_sec=600,               # 长任务给充裕时间
    wait=True,                       # 阻塞拿结果(或 wait=False 异步 poll)
    deliverables=[{"type": "email", "target": "you@company.com"}],
)

# response 含:plan(实际跑的)+ deliverables + verifier 多维分 + partial 标记
print(result["plan"]["nodes"])                  # 看 agent 怎么拆的
print(result["deliverables"][0]["content"])     # 主答
print(result["deliverables"][0]["metadata"])    # verifier 多维分
if result["partial"]:
    print("部分成功节点:", result["succeeded_node_ids"])
    print("失败节点:",   result["failed_node_ids"])
💾 Memory प्रणाली (2026-04-29 में नया)
दो-स्तरीय मेमोरी स्वचालित रूप से इंजेक्ट: **टास्क-स्तरीय working memory** (नोड्स के बीच साझा तथ्य, prompt फूलने से बचाता है) + **tenant-स्तरीय long-term memory** (कार्यों के बीच ज्ञान)। LLM बिल्ट-इन memory_read / memory_write का उपयोग करता है; scope बैकएंड द्वारा api_key से बाध्य — कोई क्रॉस-tenant रिसाव नहीं।

बातचीत का इतिहास

चैट यूआई के बैकएंड दृढ़ता के लिए वैकल्पिक मॉड्यूल। प्रत्येक वार्तालाप शीर्षक/मेटाडेटा वाला एक कंटेनर है। संलग्न संदेश एलएलएम को ट्रिगर नहीं करता है बल्कि केवल बना रहता है (चैट पूर्णता के साथ प्रयोग किया जाता है)। पूर्ण सीआरयूडी + संदेश संलग्न।

python
conv = client.conversations.create(title="My Session")
client.conversations.append_message(
    conv["conversation_id"], role="user", content="Hello!",
)
all_convs = client.conversations.list(limit=20)
detail = client.conversations.get(conv["conversation_id"])
POST /conversations
titlestringOptional对话标题。可后续 update。
metadataobjectOptional任意 JSON,关联你自己的 user_id / session_id / topic 等。最大 4KB。
POST /conversations/{id}/messages
role"user" | "assistant" | "system" | "tool"Required消息角色。
contentstringRequired消息文本。注意:此 endpoint 只持久化,不触发 LLM。

खाता प्रबंधन

पंजीकरण/लॉगिन/पासवर्ड रीसेट/2एफए/प्रोफाइल संपादन/जीडीपीआर स्वयं-सेवा निष्क्रियकरण। अधिकांश समापन बिंदु वेब अनुप्रयोग प्रवाह के लिए हैं; बैकएंड एकीकरण सिर्फ मैं ()/चेंज-पासवर्ड/2एफए है। सभी संरक्षित समापनबिंदु बियरर टोकन का उपयोग करते हैं।

python
me = client.auth.me()
client.auth.update_profile(full_name="Jane Doe")
client.auth.change_password(
    current_password="old-pwd",
    new_password="new-pwd-123",
)
status = client.auth.two_fa_status()

एपीआई कुंजी प्रबंधन

गतिशील रूप से एपीआई कुंजी बनाएं/निरस्त करें, और मासिक खपत सीमा (मासिक_स्पेंड_कैप_यूएसडी), ओवर-थ्रेसहोल्ड अलार्म वेबहुक (केवल HTTPS), और भौगोलिक रूटिंग नीति (केवल सीएन / केवल विदेशी / कोई भी) निर्धारित कर सकते हैं। create() केवल एक बार पूर्ण_कुंजी लौटाता है, इसे सहेजना सुनिश्चित करें।

पूर्ण_कुंजी केवल एक बार प्रदर्शित होती है
create() द्वारा लौटाई गई फुल_की sk-xc-... पूर्ण स्ट्रिंग है, जिसे स्मार्टिसन फिर कभी प्रदर्शित नहीं करेगा (केवल हैश संग्रहीत है)। बनाते समय तुरंत कुंजी प्रबंधक या .env फ़ाइल में सहेजना सुनिश्चित करें। यदि खो जाए तो इसे केवल पूर्ववत किया जा सकता है और पुनः बनाया जा सकता है।
python
new = client.keys.create(name="prod-2026")
print(new["full_key"])  # 只此一次显示

client.keys.update_spend_cap(
    new["key"]["key_id"],
    monthly_spend_cap_usd="100",
)

client.keys.update_alert_webhook(
    new["key"]["key_id"],
    url="https://your-app.com/billing-alert",
)
POST /keys
namestringRequiredKey 显示名(用于在 dashboard 区分)。1-100 字符。
PATCH /keys/{id}/spend-cap
monthly_spend_cap_usdstringOptional月度上限 USD,字符串保留精度(如 "100.00")。超 cap 后该 key 该月所有请求被拒。
clearbooleanDefault: falsetrue = 清除当前 cap(无限额)。

बिल/उपयोग/रिचार्ज

बैलेंस, दैनिक उपयोग, टियर-वार विवरण (by_tier: fast / balanced / passthrough / byok), Stripe टॉप-अप। बिलिंग टियर अनुरोध के model फील्ड से निर्धारित होता है — model=nexevo/fast → fast फ्लैट-रेट; वास्तविक मॉडल ID → passthrough +5%। सभी मौद्रिक स्ट्रिंग्स को decimal के रूप में मानें — float के रूप में पार्स न करें।

राशि के लिए एक स्ट्रिंग का उपयोग करें, पार्सफ्लोट का उपयोग न करें
सभी राशियाँ (बैलेंस_यूएसडी / लागत / राशि_यूएसडी) मूल परिशुद्धता (दशमलव) को बनाए रखते हुए, स्ट्रिंग के रूप में लौटा दी जाती हैं। प्रत्यक्ष पार्सफ्लोट मंटिसा खो सकता है, इसलिए जोड़ और घटाव के लिए दशमलव/बिगनंबर लाइब्रेरी का उपयोग करें।
python
bal   = client.billing.balance()
usage = client.billing.usage(days=7)
plan  = client.billing.get_plan()

hint = client.billing.upgrade_hint()
if hint["hint"]:
    print(f"建议: {hint['hint']['recommend_plan']}, "
          f"可省 {hint['hint']['savings_pct']}%")

session = client.billing.checkout(
    amount_usd=20,
    idempotency_key="topup-2026-04-27-001",
)
print(session["checkout_url"])
POST /billing/topup · POST /billing/checkout
amount_usdnumberRequired充值金额 USD,> 0。
idempotency_keystringRequired幂等 key,同 key 重试不会重复扣款。建议格式:topup-YYYY-MM-DD-序号。

संगठन/एकाधिक उपयोगकर्ता

व्यावसायिक खातों का बहु-उपयोगकर्ता प्रबंधन। तीन भूमिकाओं का समर्थन करता है: स्वामी/व्यवस्थापक/डेवलपर, सदस्य आमंत्रण/हटाना/स्थानांतरण स्वामित्व। सभी कुंजियाँ + बिलिंग संगठन के नाम के तहत साझा की जाती हैं, जो कंपनी टीम की पहुंच के लिए उपयुक्त हैं।

python
org = client.organizations.create("Acme Inc")

client.organizations.invite_member(
    org["organization"]["org_id"],
    email="dev@acme.com",
    role="developer",
)

members = client.organizations.list_members(org["organization"]["org_id"])

client.organizations.transfer_owner(
    org["organization"]["org_id"],
    new_owner_user_id="u_789",
)

आरएलएचएफ प्रतिक्रिया

चैट प्रतिक्रिया हेडर X-Nexevo-Generation-Id से जेनरेशन_आईडी प्राप्त करें, अंगूठे ऊपर/नीचे + वैकल्पिक टिप्पणी + टैग सबमिट करें। फीडबैक सीधे डेटा फ्लाईव्हील पर जाता है, और सेल्फ-लर्निंग रूटिंग इसका उपयोग भविष्य के मॉडल चयनों को अनुकूलित करने के लिए करेगा।

python
resp = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[{"role": "user", "content": "Hello!"}],
)
gen_id = resp["nexevo"]["generation_id"]

client.feedback.submit(
    generation_id=gen_id,
    rating=1,
    comment="Helpful!",
    tags=["accurate"],
)

summary = client.feedback.summary(days=7)
POST /feedback
generation_idstringRequired从 chat 响应头 X-Nexevo-Generation-Id 或 SDK resp.nexevo.generation_id 拿。
rating1 | -1Required1 = 👍, -1 = 👎。
commentstringOptional可选自由文本(最多 ~2K 字符)。
tagsstring[]Optional可选标签。常用: accurate / incorrect / too_verbose / irrelevant
फीडबैक सीधे स्व-शिक्षण रूटिंग पर जाता है
सबमिट किए गए अंगूठे ऊपर/नीचे केवल आँकड़े नहीं हैं - सेल्फ-लर्निंग राउटर (बैंडिट + ईएलओ) वास्तविक समय में भविष्य के चयन मॉडल को समायोजित करने के लिए उनका उपयोग करेगा। अधिक प्रतिक्रिया = उत्पाद की गुणवत्ता में स्वचालित सुधार।

त्रुटि प्रबंधन

त्रुटि प्रारूप संरेखण OpenAI: एक एकल `त्रुटि` ऑब्जेक्ट में तीन फ़ील्ड होते हैं: `संदेश` / `प्रकार` / `कोड`। सामान्य कोड: `अमान्य_api_key` (401), `अपर्याप्त_संतुलन` (402), `rate_limit_exceeded` (429), `tenant_monthly_quota_exceeded` (429), `upstream_error` (502)। अपस्ट्रीम 5xx हम पारदर्शी रूप से पुनः प्रयास करेंगे; आपको अंतिम त्रुटि केवल तभी दिखाई देगी यदि सभी पुनः प्रयास विफल हो जाएँ।

json
{
  "error": {
    "message": "Account balance depleted. Please top up to continue.",
    "type": "insufficient_balance",
    "code": "account_suspended"
  }
}

दर सीमा

डिफ़ॉल्ट 60 आरपीएम प्रति कुंजी। यदि सीमा पार हो जाती है, तो 429 लौटाया जाता है, जिसमें `X-RateLimit-Remaining` और `X-RateLimit-Reset` हेडर संलग्न होते हैं। उद्यम योजना ऊपरी सीमा में छूट दे सकती है - अनुकूलन के लिए हमसे संपर्क करें।

प्रतिक्रिया शीर्षलेख

प्रत्येक प्रतिक्रिया उपयोगी मेटाडेटा हेडर के साथ आती है:

X-Trace-IDunique request ID, include it in support tickets
X-Usage-Input-Tokensinput tokens counted for billing
X-Usage-Output-Tokensoutput tokens counted for billing
X-RateLimit-Remainingremaining requests in current window
X-RateLimit-Resetseconds until window resets

कीमत

सभी आंतरिक मॉडलों की एक समान कीमत होती है: इनपुट $3.00/मिलियन टोकन, आउटपुट $12.00/मिलियन टोकन। कैश हिट (सटीक + सिमेंटिक) पर नियमित कीमत का 25% शुल्क लिया जाता है। पुनः प्रयास और हेजिंग पथ की लागत हमारे द्वारा आंतरिक रूप से वहन की जाती है - आप केवल उन उत्तरों के लिए भुगतान करते हैं जिन्हें आप देखते हैं।

एसडीके अनुकूलता

चूँकि हम OpenAI संगत API को उजागर करते हैं, अधिकांश मौजूदा SDK शून्य परिवर्तनों के साथ उपलब्ध हैं। बस बेस_यूआरएल को हमारे गेटवे पर इंगित करें।

OpenAI-संगत SDK

OpenAI Python
OpenAI Node.js
LangChain
LlamaIndex
Vercel AI SDK
Curl / HTTP

नेटिव SDK

स्मार्ट रूटिंग, बिलिंग, RLHF फीडबैक और अन्य एक्सटेंशन को रैप करने वाले आधिकारिक SDK। 100% OpenAI प्रोटोकॉल-संगत।

Python
nexevo-ai · sync + async + RAG / जनरेशन संसाधन
इंस्टॉल करें
pip install nexevo-aiGitHub स्रोत
Node.js / TypeScript
@nexevo/sdk · ESM + CJS डुअल बिल्ड, पूर्ण प्रकार
इंस्टॉल करें
npm install @nexevo/sdkGitHub स्रोत

OpenAI से 2 लाइनों में माइग्रेट करें

अपना OpenAI कोड वैसा ही रखें — सिर्फ api_key बदलें और base_url जोड़ें।

पहले
python
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"],
)

resp = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hi"}],
)
बाद
python
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["NEXEVO_API_KEY"],
    base_url="https://api.nexevo.ai/v1",
)

resp = client.chat.completions.create(
    model="nexevo/balanced",
    messages=[{"role": "user", "content": "Hi"}],
)

अगला कदम

एपीआई दस्तावेज़ीकरण · ओपनएआई संगत /v1/चैट/पूर्णताएँ | Nexevo.ai