光伏知识平台

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。