Appearance
✨ API 使用指南
本文档介绍如何使用大赛提供的 tju-llm 大模型 API,兼容 OpenAI 格式,开箱即用。
接口概览
| 项目 | 说明 |
|---|---|
| 模型 | tju-llm |
| 接口地址 | https://ai.tju.edu.cn/api/agent2026/{仓库名称}/chat/completions |
| 认证方式 | Bearer Token(API Key) |
| 接口格式 | 兼容 OpenAI/v1/chat/completions |
| 速率限制 | 60 次/分钟,3000 次/小时 |
你的专属模型调用地址和 API Key 可在智能体广场 ai.tju.edu.cn 个人中心获取。
快速测试
cURL
bash
curl -X POST "https://ai.tju.edu.cn/api/agent2026/{仓库名称}/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tju-llm",
"messages": [
{"role": "system", "content": "你是一个有用的AI助手。"},
{"role": "user", "content": "用一句话介绍天津大学"}
],
"temperature": 0.7,
"max_tokens": 200
}'响应示例
json
{
"id": "chatcmpl-xxxxx",
"object": "chat.completion",
"created": 1718000000,
"model": "tju-llm",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "天津大学是中国第一所现代大学,始建于1895年,以工科见长、理工结合,是国家\"双一流\"建设高校。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 42,
"total_tokens": 67
}
}Python SDK 调用
使用 OpenAI Python SDK
由于接口兼容 OpenAI 格式,你可直接使用 OpenAI Python SDK:
bash
pip install openaipython
from openai import OpenAI
client = OpenAI(
api_key="tk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://ai.tju.edu.cn/api/agent2026/{仓库名称}"
)
response = client.chat.completions.create(
model="tju-llm",
messages=[
{"role": "system", "content": "你是一个有用的AI助手。"},
{"role": "user", "content": "用一句话介绍天津大学"}
],
temperature=0.7,
max_tokens=200
)
print(response.choices[0].message.content)
print(f"Token用量: {response.usage.total_tokens}")使用 requests 库
python
import requests
API_URL = "https://ai.tju.edu.cn/api/agent2026/{仓库名称}/chat/completions"
API_KEY = "tk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
data = {
"model": "tju-llm",
"messages": [
{"role": "user", "content": "你好!"}
],
"temperature": 0.7
}
response = requests.post(API_URL, headers=headers, json=data)
result = response.json()
print(result["choices"][0]["message"]["content"])
print(f"Token用量: {result['usage']['total_tokens']}")JavaScript / Node.js 调用
javascript
const API_URL = "https://ai.tju.edu.cn/api/agent2026/{仓库名称}/chat/completions";
const API_KEY = "tk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const response = await fetch(API_URL, {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "tju-llm",
messages: [
{ role: "system", content: "你是一个有用的AI助手。" },
{ role: "user", content: "你好!" }
],
temperature: 0.7,
max_tokens: 200
})
});
const data = await response.json();
console.log(data.choices[0].message.content);
console.log(`Token用量: ${data.usage.total_tokens}`);请求参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | ✅ | 固定为tju-llm |
messages | array | ✅ | 对话消息列表,支持 system/user/assistant 角色 |
temperature | number | ❌ | 采样温度,0—2,默认 0.7;越高越随机 |
max_tokens | number | ❌ | 最大输出 Token 数,默认不限制 |
top_p | number | ❌ | 核采样参数,0—1,默认 1 |
stream | boolean | ❌ | 是否流式输出,默认 false |
Messages 格式
json
{
"messages": [
{"role": "system", "content": "设定助手的行为与角色"},
{"role": "user", "content": "用户的问题"},
{"role": "assistant", "content": "助手的回复"},
{"role": "user", "content": "追问"}
]
}流式输出
设置 stream: true 即可启用 SSE 流式输出:
python
from openai import OpenAI
client = OpenAI(
api_key="tk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
base_url="https://ai.tju.edu.cn/api/agent2026/{仓库名称}"
)
stream = client.chat.completions.create(
model="tju-llm",
messages=[{"role": "user", "content": "写一首关于代码的诗"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")Function Calling
tju-llm 支持函数调用(Function Calling),可用于构建 Agent 应用:
python
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称"
}
},
"required": ["city"]
}
}
}
]
response = client.chat.completions.create(
model="tju-llm",
messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
tools=tools,
tool_choice="auto"
)
print(response.choices[0].message.tool_calls)用量查看与计分
💡 Token 调用量是评分标准的一部分,系统会根据你使用的专属 API 地址统计调用量。请确保所有请求都经过你的专属地址,否则将无法计入有效得分。
登录智能体广场 ai.tju.edu.cn 可查看:
- 比赛专用端点
- 调用方式样例
常见错误与处理
| HTTP 状态码 | 含义 | 处理方式 |
|---|---|---|
| 200 | 成功 | — |
| 401 | API Key 无效或已过期 | 检查 Key 是否正确,联系组委会重置 |
| 429 | 速率限制超限 | 降低请求频率,等待配额恢复 |
| 500 | 服务内部错误 | 稍后重试,持续报错请联系技术支持 |
安全提醒
- ⚠️ 绝对不要将 API Key 提交到 Git 仓库(尤其是 Public 仓库)
- ⚠️ 绝对不要在前端代码中硬编码 API Key
- ✅ 推荐使用环境变量或配置文件(已加入
.gitignore)管理 Key - ✅ API URL 可以直接写在代码中,不影响安全性
bash
# 在 .env 文件中
API_KEY=tk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
API_URL=https://ai.tju.edu.cn/api/agent2026/{仓库名称}/chat/completions