API 文档
OpenAI 兼容的 /v1/chat/completions,SDK 直用。
交互式 Swagger UI:/api/v1/docs ↗
1 · 基础 URL
https://ai.pvkeeper.com/api/v1
2 · 鉴权
匿名调用按 IP 限 10 次/天。申请 key 后用 Authorization: Bearer <your-key> 头,
单 key 1000 次/天。申请 key →
3 · 端点
POST
/api/v1/llm/chat
给一段消息历史,返回模型回复(OpenAI chat completion 兼容)。
请求体
{
"messages": [
{"role": "user", "content": "TOPCon 电池量产效率范围?"}
],
"max_tokens": 512,
"temperature": 0.3,
"profile": "default" // or "qelabs"
}
响应体
{
"role": "assistant",
"content": "TOPCon 电池量产效率范围…",
"model": "gemma-4-26B_q4_0-it.gguf",
"usage": {
"prompt_tokens": 27,
"completion_tokens": 45,
"total_tokens": 72
},
"profile": "default"
}
4 · 调用示例
curl
# 匿名调用,按 IP 计数
curl -X POST https://ai.pvkeeper.com/api/v1/llm/chat \
-H "Content-Type: application/json" \
-d '{
"messages":[{"role":"user","content":"光伏组件最重要的电气参数有哪些?"}],
"max_tokens": 200
}'
Python(openai SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://ai.pvkeeper.com/api/v1/llm",
api_key="sk-...",
)
resp = client.chat.completions.create(
model="default",
messages=[
{"role": "user",
"content": "PERC 与 TOPCon 工艺有何不同?"}
],
max_tokens=512,
)
print(resp.choices[0].message.content)
Node.js
const r = await fetch("https://ai.pvkeeper.com/api/v1/llm/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
messages: [{ role: "user", content: "PERC vs TOPCon?" }],
max_tokens: 200,
}),
});
const data = await r.json();
console.log(data.content);
5 · 其他端点
GET /api/v1/health— 服务健康检查(含 LLM 依赖状态)GET /api/v1/stats/summary— 知识图谱实时统计GET /api/v1/llm/models— 可用模型列表- 完整 Swagger UI ↗
6 · 申请 API key
申请表单即将上线(v2026-07)
当前请通过 关于 页的邮箱直接联系我们,说明用途与预计调用量。 核准后我们 1–3 工作日内邮件回 key。