Skip to content

✨ 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 openai
python
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}`);

请求参数说明

参数类型必填说明
modelstring固定为tju-llm
messagesarray对话消息列表,支持 system/user/assistant 角色
temperaturenumber采样温度,0—2,默认 0.7;越高越随机
max_tokensnumber最大输出 Token 数,默认不限制
top_pnumber核采样参数,0—1,默认 1
streamboolean是否流式输出,默认 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成功
401API 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

天津大学信息与网络中心