Gemini原生格式 API 文档
普通对话 流式输出
基础信息
- Base URL:
www.dmxapi.cn - 模型名称: gemini-2.5-flash
- 请求方式: POST
接口地址
/v1beta/models/{model}:streamGenerateContent?key=******&alt=sse请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 模型名称 |
| key | string | 是 | API密钥(已隐藏) |
| alt | string | 是 | 返回格式(sse) |
请求示例 (Python)
python
import json
import requests
# 配置参数
model = "gemini-2.5-flash" # 使用的AI模型名称
API_KEY = "sk-********************************" # 替换为你的API密钥
# 构建API请求URL,包含模型名称、API密钥和流式响应格式
url = f"https://www.dmxapi.cn/v1beta/models/{model}:streamGenerateContent?key={API_KEY}&alt=sse"
# 构建请求体数据
payload = json.dumps({
"system_instruction": { # 系统指令,定义AI助手的角色和行为
"parts": [{"text": "你是我的助手,你叫 小巴。"}]
},
"contents": [ # 用户输入的对话内容
{"role": "user", "parts": [{"text": "随机生成300个字"}]}
]
})
# 设置HTTP请求头,指定内容类型为JSON
headers = {"Content-Type": "application/json"}
# 发送POST请求到API端点
# stream=True 启用流式响应,可以实时接收数据
response = requests.post(url, headers=headers, data=payload, stream=True)
response.encoding = 'utf-8' # 设置正确的编码格式,确保中文字符正确显示
# 解析SSE(Server-Sent Events)流式响应的函数
def parse_sse_response(response):
"""
解析Server-Sent Events格式的响应
Args:
response: requests响应对象,包含流式数据
Returns:
str: 完整的AI生成文本
"""
full_text = "" # 用于存储完整的响应文本
# 逐行读取流式响应数据
for line in response.iter_lines(decode_unicode=True):
# 检查是否是SSE数据行(以'data: '开头)
if line.startswith('data: '):
# 提取data后的JSON内容,去掉'data: '前缀
json_str = line[6:]
try:
# 解析JSON数据
data = json.loads(json_str)
# 检查响应数据结构并提取文本内容
if 'candidates' in data and len(data['candidates']) > 0:
candidate = data['candidates'][0] # 获取第一个候选响应
# 检查候选响应是否包含内容和部分
if 'content' in candidate and 'parts' in candidate['content']:
# 遍历内容的各个部分
for part in candidate['content']['parts']:
# 如果部分包含文本,则提取并处理
if 'text' in part:
text = part['text']
full_text += text # 累积完整文本
print(text, end='', flush=True) # 实时输出文本片段,不换行
except json.JSONDecodeError:
# 如果JSON解析失败,跳过该行继续处理下一行
continue
return full_text # 返回完整的生成文本
# 调用解析函数处理响应并获取结果
result_text = parse_sse_response(response)
# 输出完整的AI回复内容
print(f"\n\n完整回复:{result_text}")注意事项
- 请妥善保管API密钥,不要泄露
- 请求体需使用JSON格式
- 响应格式为SSE(Server-Sent Events)
