平台特色
OpenAI 兼容模式
Flum-API采用 OpenAI 兼容格式,让您可以用统一的接口调用200+主流大模型:
支持的模型厂商:
🤖 OpenAI :gpt-4o、gpt-5-chat-latest、gpt-3.5-turbo 等
🧠 Anthropic :claude-sonnet-4-20250514、claude-opus-4-1-20250805 等
💎 Google :gemini-2.5-pro、gemini-2.5-flash 等
🚀 xAI :grok-4-0709、grok-3 等
🔍 DeepSeek :deepSeek-r1、deepSeek-v3 等
🌟 阿里 :Qwen系列模型
💬 Moonshot :Kimi、Kimi-v2模型等
✅ 支持的功能:
💬 对话补全 :Chat Completions接口
🖼️ 图像生成 :gpt-image-1等
🔊 语音处理 :Whisper转录
📊 嵌入向量 :文本向量化
⚡ 函数调用 :Function Calling
📡 流式输出 :实时响应
🔧 OpenAI 参数 :temperature、top_p、max_tokens 等
🆕 Responses端点 :OpenAI最新功能
❌ 不支持的功能:
🔧 微调接口 (Fine-tuning)
📁 Files管理接口
🏢 组织管理接口
💳 计费管理接口
简单切换模型
核心优势:一套代码,多种模型
用OpenAI格式跑通后,只需要更换模型名称 即可切换到其他大模型:
# 使用GPT-4o
response = client.chat.completions.create(
model = "gpt-4o" , # OpenAI模型
messages = [ ... ]
)
# 切换到Claude,其他代码完全不变!
response = client.chat.completions.create(
model = "claude-3.5-sonnet" , # 只改模型名
messages = [ ... ]
)
# 切换到Gemini
response = client.chat.completions.create(
model = "gemini-1.5-pro" , # 只改模型名
messages = [ ... ]
)
💡 这种设计让您可以轻松对比不同模型的效果,或根据成本和性能需求灵活切换模型,无需重写代码!
快速开始
获取 API Key
访问 Flum-API控制台
登录您的账户
在令牌管理页面点击”新增”创建API Key
复制生成的API Key用于接口调用
查看请求示例
在本页面,您可以快速获取各种编程语言的代码示例:
支持的编程语言:
cURL - 命令行测试
Python (SDK) - 使用官方OpenAI库
**Python (requests) **- 使用 requests 库
**Node.js **- JavaScript/TypeScript
Java - Java 应用开发
C# - .NET应用开发
Go - Go语言开发
PHP - Web开发
Ruby - Ruby应用开发
以及更多语言…
代码示例特点:
✅ 完整可运行:复制粘贴即可使用
✅ 参数说明:详细的参数配置
✅ 错误处理:包含异常处理逻辑
✅ 最佳实践:遵循各语言开发规范
建议开发者优先查看后台的请求示例,这些示例会根据最新的API版本实时更新,确保代码的准确性和可用性。
基础信息
API 端点
主要端点 :https://flum.store/v1
认证方式
所有 API 请求需要在 Header 中包含认证信息:
Authorization : Bearer YOUR_API_KEY
请求格式
Content-Type :application/json
编码格式 :UTF-8
请求方法 :POST(大部分接口)
核心接口
1. 对话补全(Chat Completions)
创建一个对话补全请求,支持多轮对话。
请求端点
POST /v1/chat/completions
请求参数
参数 类型 必填 说明 model string 是 模型名称,如 gpt-3.5-turbo messages array 是 对话消息数组 temperature number 否 采样温度,0-2之间,默认1 max_tokens integer 否 最大生成令牌数 stream boolean 否 是否流式返回,默认false top_p number 否 核采样参数,0-1之间 n integer 否 生成数量,默认1 stop string/array 否 停止序列 presence_penalty number 否 存在惩罚,-2到2之间 frequency_penalty number 否 频率惩罚,-2到2之间
消息格式
{
"role" : "system|user|assistant" ,
"content" : "消息内容"
}
完整代码示例
cURL
Python(SDK)
Python(requests)
Node.js
Java
C#
Go
PHP
Ruby
curl -X POST "https://flum.store/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{"role": "system", "content": "你是一个有用的AI助手。"},
{"role": "user", "content": "你好!请介绍一下自己。"}
],
"temperature": 0.7,
"max_tokens": 1000
}'
响应示例
{
"id" : "chatcmpl-123" ,
"object" : "chat.completion" ,
"created" : 1699000000 ,
"model" : "gpt-4o-mini" ,
"choices" : [{
"index" : 0 ,
"message" : {
"role" : "assistant" ,
"content" : "Hello! How can I help you today?"
},
"finish_reason" : "stop"
}],
"usage" : {
"prompt_tokens" : 20 ,
"completion_tokens" : 10 ,
"total_tokens" : 30
}
}
2. 文本补全(Completions)
为兼容旧版接口保留,建议使用 Chat Completions。
请求端点
POST /v1/completions
请求参数
参数 类型 必填 说明 model string 是 模型名称 prompt string/array 是 提示文本 max_tokens integer 否 最大生成长度 temperature number 否 采样温度 top_p number 否 核采样参数 n integer 否 生成数量 stream boolean 否 流式输出 stop string/array 否 停止序列
3. 嵌入向量(Embeddings)
将文本转换为向量表示。
请求端点
请求参数
参数 类型 必填 说明 model string 是 模型名称,如 text-embedding-ada-002 input string/array 是 输入文本 encoding_format string 否 编码格式,float 或 base64
完整代码示例
cURL
Python(SDK)
Python(requests)
Node.js
curl -X POST "https://flum.store/v1/embeddings" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-ada-002",
"input": "这是一段需要向量化的文本示例"
}'
4. 图像生成(Images)
生成、编辑或变换图像。
生成图像
POST /v1/images/generations
请求参数
参数 类型 必填 说明 model string 是 模型名称,推荐 gpt-image-1 prompt string 是 图像描述提示词 n integer 否 生成数量,默认1 size string 否 图像尺寸:1024x1024, 1792x1024, 1024x1792 quality string 否 质量:standard或 hd style string 否 风格:vivid 或 natural
推荐使用 gpt-image-1 模型进行图像生成。更多图像生成功能和参数说明,请查看 GPT图像生成详细文档 。
完整代码示例
curl -X POST "https://flum.store/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-1",
"prompt": "一只可爱的橙色小猫坐在阳光明媚的花园里",
"n": 1,
"size": "1024x1024",
"quality": "hd"
}'
5. 音频转文字(Audio)
语音识别和转录。
转录音频
POST /v1/audio/transcriptions
参数 类型 必填 说明 file file 是 音频文件 model string 是 模型名称,如 whisper-1 language string 否 语言代码 prompt string 否 指导提示 response_format string 否 响应格式 temperature number 否 采样温度
6. 模型列表
获取可用模型列表。
请求端点
响应示例
{
"object" : "list" ,
"data" : [
{
"id" : "gpt-3.5-turbo" ,
"object" : "model" ,
"created" : 1677610602 ,
"owned_by" : "openai"
},
{
"id" : "gpt-4o" ,
"object" : "model" ,
"created" : 1687882411 ,
"owned_by" : "openai"
}
]
}
流式响应
开启流式输出
在请求中设置 stream: true:
{
"model" : "gpt-3.5-turbo" ,
"messages" : [{ "role" : "user" , "content" : "Hello" }],
"stream" : true
}
流式响应格式
响应将以 Server-Sent Events (SSE) 格式返回:
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-3.5-turbo","choices":[{"delta":{"content":"Hello"},"index":0}]}
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-3.5-turbo","choices":[{"delta":{"content":"there"},"index":0}]}
data: [DONE]
处理流式响应
import requests
import json
response = requests.post(
'https://flum.store/v1/chat/completions' ,
headers = {
'Authorization' : f 'Bearer { api_key } ' ,
'Content-Type' : 'application/json'
},
json = {
'model' : 'gpt-4o-mini' ,
'messages' : [{ 'role' : 'user' , 'content' : 'Hello' }],
'stream' : True
},
stream = True
)
for line in response.iter_lines():
if line:
line = line.decode( 'utf-8' )
if line.startswith( 'data: ' ):
data = line[ 6 :]
if data != '[DONE]' :
chunk = json.loads(data)
content = chunk[ 'choices' ][ 0 ][ 'delta' ].get( 'content' , '' )
print (content, end = '' )
错误处理
错误响应格式
{
"error" : {
"message" : "Invalid API key provided" ,
"type" : "invalid_request_error" ,
"param" : null ,
"code" : "invalid_api_key"
}
}
常见错误码
错误码 HTTP状态码 说明 invalid_api_key 401 API密钥无效 insufficient_quota 429 额度不足 model_not_found 404 模型不存在 invalid_request_error 400 请求参数错误 server_error 500 服务器内部错误 rate_limit_exceeded 429 请求频率过高
错误处理示例
try :
response = client.chat.completions.create(
model = "gpt-4o-mini" ,
messages = [{ "role" : "user" , "content" : "Hello" }]
)
except Exception as e:
if hasattr (e, 'status_code' ):
if e.status_code == 401 :
print ( "API密钥无效" )
elif e.status_code == 429 :
print ( "请求过于频繁或额度不足" )
elif e.status_code == 500 :
print ( "服务器错误,请稍后重试" )
else :
print ( f "未知错误: { str (e) } " )
最佳实践
1. 请求优化
合理设置 max_tokens :避免不必要的长输出
使用 temperature :控制输出的随机性
批量处理 :合并多个请求减少调用次数
2. 错误重试
实现指数退避的重试机制:
import time
import random
def retry_with_backoff ( func , max_retries = 3 ):
for i in range (max_retries):
try :
return func()
except Exception as e:
if i == max_retries - 1 :
raise e
wait_time = ( 2 ** i) + random.uniform( 0 , 1 )
time.sleep(wait_time)
3. 安全建议
保护API密钥 :使用环境变量存储
限制权限 :为不同应用创建不同的密钥
监控使用 :定期检查API使用日志
4. 性能优化
使用流式输出 :提升用户体验
缓存响应 :对相同请求缓存结果
并发控制 :合理控制并发请求数
速率限制
Flum-API 实施以下速率限制:
限制类型 限制值 说明 RPM (每分钟请求数) 3000 每个API密钥 TPM (每分钟令牌数) 1000000 每个API密钥 并发请求数 100 同时处理的请求
超出限制时会返回 429 错误,请合理控制请求频率。
需要帮助?
本手册持续更新中,请关注最新版本以获取新功能和改进。