开发文档
欢迎使用TIFA AI API。本文档将指导您如何接入和使用我们的服务。TIFA AI提供强大的自然语言处理能力,支持多种场景应用。
当前版本:v1.0
最后更新:2024-03-20
主要特性
- ✨ 支持流式输出,实时响应
- ✨ 超长上下文支持,最大支持200K tokens
- ✨ 多语言支持,支持中英日韩等10+种语言
- ✨ 99.9%的服务可用性保证
- ✨ 格式控制功能,支持JSON、Markdown等结构化输出
- ✨ Few-Shot学习,通过示例引导模型输出
- ✨ 规则引擎,精确控制输出风格和内容
- ✨ 避免词功能,智能过滤不当词汇,提升输出质量
认证方式
所有API请求都需要使用API密钥进行认证。您可以在控制台获取API密钥。
⚠️ 请妥善保管您的API密钥,不要在客户端代码中明文存储。
注意事项:
- API密钥具有完整的账户权限,请勿泄露
- 建议使用环境变量或配置文件存储API密钥
- 定期轮换API密钥以提升安全性
- 可以为不同应用创建不同的API密钥
API Endpoint
POST https://api.leftnorth.com/v1/chat/completions
请求说明:
- 支持HTTPS协议
- 请求体必须是JSON格式
- 响应编码为UTF-8
- 支持跨域请求(CORS)
对话接口
接口地址: https://api.leftnorth.com/v1/chat/completions
请求方式: POST
Content-Type: application/json
对话接口支持单轮和多轮对话,可以通过调整不同参数来控制AI的行为表现。支持流式输出和普通输出两种模式。
参数说明
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
model | string | 是 | 模型名,例如"tifa-ultra-v2-20250323" |
messages | array | 是 | 对话历史,包含role和content字段 |
temperature | number | 否 | 温度参数,控制随机性,范围0-2,默认0.7 |
top_p | number | 否 | 核采样参数,控制多样性,范围0-1,默认0.95 |
max_tokens | integer | 否 | 生成文本的最大长度,默认2000 |
repetition_penalty | number | 否 | 重复惩罚,范围1-2,默认1.03 |
rule | string | 否 | 输出规则,控制格式、风格等 |
examples | array | 否 | 示例对话,用于Few-Shot学习 |
stream | boolean | 否 | 是否启用流式输出,默认false |
extra_body.bad_words | array | 否 | 避免词列表,包含word(词汇)和weight(权重1-999)字段,权重越高避免程度越强 |
返回格式:
{
"id": "chat_12345678",
"object": "chat.completion",
"created": 1679478935,
"model": "tifa-ultra-v2-20250323",
"choices": [{
"message": {
"role": "assistant",
"content": "AI的回复内容"
},
"finish_reason": "stop",
"index": 0
}],
"usage": {
"prompt_tokens": 56,
"completion_tokens": 31,
"total_tokens": 87
}
}
示例代码
curl -X POST "https://api.leftnorth.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "tifa-ultra-v2-20250323", "messages": [ { "role": "user", "content": "你好,请介绍一下你自己" } ], "temperature": 0.7, "max_tokens": 1000, "extra_body": { "bad_words": [ {"word": "牛逼", "weight": 7.0}, {"word": "666", "weight": 8.0}, {"word": "yyds", "weight": 9.0} ] } }'
import requests import json url = "https://api.leftnorth.com/v1/chat/completions" headers = { "Content-Type": "application/json", "Authorization": "Bearer YOUR_API_KEY" } data = { "model": "tifa-ultra-v2-20250323", "messages": [ { "role": "user", "content": "你好,请介绍一下你自己" } ], "temperature": 0.7, "max_tokens": 1000, "extra_body": { "bad_words": [ {"word": "牛逼", "weight": 7.0}, {"word": "666", "weight": 8.0}, {"word": "yyds", "weight": 9.0} ] } } response = requests.post(url, headers=headers, json=data) result = response.json() print(result)
const response = await fetch('https://api.leftnorth.com/v1/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ model: 'tifa-ultra-v2-20250323', messages: [ { role: 'user', content: '你好,请介绍一下你自己' } ], temperature: 0.7, max_tokens: 1000, extra_body: { bad_words: [ {word: "牛逼", weight: 7.0}, {word: "666", weight: 8.0}, {word: "yyds", weight: 9.0} ] } }) }); const result = await response.json(); console.log(result);
代码说明:
- 示例中包含了基本的错误处理
- 建议在生产环境中添加重试机制
- 可以根据需要调整超时设置
- stream模式下建议使用异步处理
- 规则功能可以精确控制输出格式
- 示例功能适用于Few-Shot学习场景
- 避免词功能可以过滤不当词汇,权重越高避免程度越强
高级功能
格式控制 (rule)
通过 rule 参数精确控制输出格式、字数、风格等
data = { "model": "tifa-ultra-v2-20250323", "messages": [ {"role": "user", "content": "介绍人工智能"} ], "rule": "格式:分3个段落\n字数:每段100字\n风格:专业但易懂", "temperature": 0.4 }
curl -X POST "https://api.leftnorth.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "tifa-ultra-v2-20250323", "messages": [ {"role": "user", "content": "介绍人工智能"} ], "rule": "格式:分3个段落\\n字数:每段100字\\n风格:专业但易懂", "temperature": 0.4 }'
Few-Shot 学习 (examples)
通过示例让模型学习特定的回答模式
data = { "model": "tifa-ultra-v2-20250323", "messages": [ {"role": "user", "content": "评价这个产品"} ], "examples": [ {"role": "user", "content": "评价iPhone"}, {"role": "assistant", "content": "优点:\\n1. 系统流畅\\n2. 生态完善\\n\\n缺点:\\n1. 价格较高\\n2. 充电速度一般"} ], "temperature": 0.5 }
curl -X POST "https://api.leftnorth.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "tifa-ultra-v2-20250323", "messages": [ {"role": "user", "content": "评价这个产品"} ], "examples": [ {"role": "user", "content": "评价iPhone"}, {"role": "assistant", "content": "优点:\\n1. 系统流畅\\n2. 生态完善\\n\\n缺点:\\n1. 价格较高\\n2. 充电速度一般"} ], "temperature": 0.5 }'
流式输出 (stream)
实时获取模型生成的内容,提升用户体验
const response = await fetch('/v1/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ model: 'tifa-ultra-v2-20250323', messages: [{role: 'user', content: '写一个故事'}], stream: true }) }); const reader = response.body.getReader(); const decoder = new TextDecoder(); while (true) { const { done, value } = await reader.read(); if (done) break; const chunk = decoder.decode(value); // 处理流式数据 console.log(chunk); }
import requests response = requests.post( 'https://api.leftnorth.com/v1/chat/completions', headers={'Authorization': 'Bearer YOUR_API_KEY'}, json={ 'model': 'tifa-ultra-v2-20250323', 'messages': [{'role': 'user', 'content': '写一个故事'}], 'stream': True }, stream=True ) for line in response.iter_lines(): if line: print(line.decode('utf-8'))
避免词过滤 (bad_words)
智能过滤不当词汇,提升输出质量和内容安全性
data = { "model": "tifa-ultra-v2-20250323", "messages": [ {"role": "user", "content": "评价一下这个产品"} ], "extra_body": { "bad_words": [ {"word": "牛逼", "weight": 7.0}, {"word": "666", "weight": 8.0}, {"word": "yyds", "weight": 9.0}, {"word": "绝绝子", "weight": 20.0} ] }, "temperature": 0.7 }
curl -X POST "https://api.leftnorth.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "tifa-ultra-v2-20250323", "messages": [ {"role": "user", "content": "评价一下这个产品"} ], "extra_body": { "bad_words": [ {"word": "牛逼", "weight": 7.0}, {"word": "666", "weight": 8.0}, {"word": "yyds", "weight": 9.0}, {"word": "绝绝子", "weight": 20.0} ] }, "temperature": 0.7 }'
权重说明:权重范围为1-100,数值越高避免程度越强。建议:
- 轻微避免:1-5
- 中等避免:6-15
- 强烈避免:16-20
- 完全避免:20+
参数调优
提供丰富的参数配置,实现个性化的输出控制。
- temperature: 控制输出随机性 (0-2)
- top_p: 控制输出多样性 (0-1)
- max_tokens: 控制输出长度
- repetition_penalty: 控制重复度 (1-2)
💡 这些高级功能可以组合使用,实现更精确的输出控制
错误处理
常见错误码:
错误码 | 说明 | 处理建议 |
---|---|---|
400 | 请求参数错误 | 检查请求格式和参数 |
401 | 未授权 | 检查API密钥是否正确 |
429 | 请求过于频繁 | 实现请求限流 |
500 | 服务器错误 | 稍后重试或联系支持 |
使用限制
为了保证服务质量,API访问有以下限制:
- 每个API密钥每分钟最多60次请求
- 每月总使用量根据套餐不同有所限制
- 单次请求最大tokens数为200K
- 并发请求数限制为10个
💡 如需更高配额,请联系商务团队升级套餐
最佳实践
1. 错误处理
- 实现完善的错误处理机制
- 对网络错误进行重试
- 设置合理的超时时间
- 记录详细的错误日志
2. 性能优化
- 使用连接池复用连接
- 启用gzip压缩
- 实现请求缓存
- 采用异步处理方式
3. 安全建议
- 使用环境变量存储密钥
- 启用HTTPS传输
- 实现请求签名机制
- 定期更新API密钥
4. 开发建议
- 合理使用规则功能控制输出
- 利用示例功能提升输出质量
- 做好开发环境与生产环境隔离
- 实现优雅的降级机制
💡 这些最佳实践将帮助您构建更稳定可靠的应用