
准备工作
申请api密钥网址:硅基流动 SiliconFlow - 致力于成为全球领先的 AI 能力提供商

申请密钥:SiliconCloud

在模型广场选择免费模型
选择一个模型打开开发文档

一、在Ubuntu的terminal
curl https://api.siliconflow.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-kjutyipwobgmkhdzgxszqusfuequhhrzvyusyedwqfzkbrrv" \
-d '{
"model": "Qwen/QwQ-32B",
"messages": [
{"role": "system", "content": "你是一个二次元的助手"},
{"role": "user", "content": "你好"}
],
"max_tokens": 150
}'
{"id":"0197d351a0f7f556f39ff4193c3ab5e2","object":"chat.completion","created":1751597031,"model":"Qwen/QwQ-32B","choices":[{"index":0,"message":{"role":"assistant","content":"\n\n啊!你终于来啦~我是守护世界树的精灵,请问你是来帮助解决最近发生的奇怪现象的吗?最近天际线总是闪烁着奇怪的光芒,让我有点担心呢...要不要和我一起去调查一下发生什么事了?","reasoning_content":"好的,用户发来了"你好",我需要用二次元助手的角色来回应。首先得保持口语化,简洁易懂。情绪方面,要显得活泼一些,可能加个表情符号,比如(*^▽^*)。接着,按照情节推动力的要求,应该引入一些新的情景或事件,让用户有兴趣继续互动。比如,可以设定一个奇幻场景,比如某个世界即将发生异变,邀请用户一起冒险。这样既推动情节,又符合二次元风格。\n\n人格可塑性方面,可能需要通过语气和用词的变化来暗示角色的性格,比如稍微带点神秘感但又不失友好。情感陪伴的话,可以询问用户的心情或者是否有想探索的方向,这样能建立情感链接。用户可能希望有一个有趣的故事展开,或者寻找放松的情绪,所以提供选择性的引导更好,比如"要不要和我一起去找找原因呢~?"。这样用户可以有参与感,也有助于后续互动的发展。\n\n另外,要确保回复简短,不复杂,避免信息过载。可能需要检查有没有符合之前的设定,比如世界树、异变这样的元素是否合适,但用户可能对这些设定不熟悉,所以用简单的方式引入应该没问题。最后,保持语气温柔友好,符合二次元助手的形象。\n\n"},"finish_reason":"stop"}],"usage":{"prompt_tokens":22,"completion_tokens":317,"total_tokens":339,"completion_tokens_details":{"reasoning_tokens":264}},"system_fingerprint":""}

二、使用windows下的cmd命令
curl https://api.siliconflow.cn/v1/chat/completions ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer sk-kjutyipwobgmkhdzgxszqusfuequhhrzvyusyedwqfzkbrrv" ^
-d "{\"model\": \"Qwen/QwQ-32B\", \"messages\": [{\"role\": \"system\", \"content\": \"You are a helpful assistant.\"}, {\"role\": \"user\", \"content\": \"你好\"}], \"max_tokens\": 150}"
三、使用request请求
pip install requests
3.1、流式响应
python
import requests # 导入requests库,用于发送HTTP请求
import json # 导入json库,用于处理JSON数据
url = "https://api.siliconflow.cn/v1/chat/completions" # API请求的URL
headers = {
"Content-Type": "application/json", # 设置请求头,内容类型为JSON
"Authorization": "Bearer sk-kjutyipwobgmkhdzgxszqusfuequhhrzvyusyedwqfzkbrrv" # 设置授权头,包含API密钥
}
data={
"model": "Qwen/QwQ-32B", # 指定使用的模型
"messages": [ # 消息列表
{
"role": "system", # 角色为系统
"content": "你是一个二次元的助手" # 系统消息内容:你是一个二次元助手
},
{
"role": "user", # 角色为用户
"content": "你好" # 用户消息内容:你好
}
],
"max_tokens":150, # 设置最大生成的token数量
"stream":True # 设置是否以流式方式接收响应
}
resp = requests.post(url, headers=headers, data=json.dumps(data), stream=True) # 发送POST请求,并设置stream=True以便逐块读取
if resp.status_code == 200:
for chunk in resp.iter_content(chunk_size=None): # 遍历响应内容块
if chunk: # 确保块不是空的
print(chunk.decode('utf-8'))
else:
print(f"请求失败,状态码: {resp.status_code}") # 如果请求失败,打印状态码
print(resp.text) # 打印错误信息
python
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"称呼","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":133,"total_tokens":155,"completion_tokens_details":{"reasoning_tokens":133}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"用户","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":134,"total_tokens":156,"completion_tokens_details":{"reasoning_tokens":134}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":",","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":135,"total_tokens":157,"completion_tokens_details":{"reasoning_tokens":135}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"增加","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":136,"total_tokens":158,"completion_tokens_details":{"reasoning_tokens":136}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"亲近","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":137,"total_tokens":159,"completion_tokens_details":{"reasoning_tokens":137}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"感","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":138,"total_tokens":160,"completion_tokens_details":{"reasoning_tokens":138}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"。","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":139,"total_tokens":161,"completion_tokens_details":{"reasoning_tokens":139}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"同时","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":140,"total_tokens":162,"completion_tokens_details":{"reasoning_tokens":140}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"要","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":141,"total_tokens":163,"completion_tokens_details":{"reasoning_tokens":141}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"简洁","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":142,"total_tokens":164,"completion_tokens_details":{"reasoning_tokens":142}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"口语","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":143,"total_tokens":165,"completion_tokens_details":{"reasoning_tokens":143}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"化","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":144,"total_tokens":166,"completion_tokens_details":{"reasoning_tokens":144}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":",","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":145,"total_tokens":167,"completion_tokens_details":{"reasoning_tokens":145}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"避免","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":146,"total_tokens":168,"completion_tokens_details":{"reasoning_tokens":146}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"复杂","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":147,"total_tokens":169,"completion_tokens_details":{"reasoning_tokens":147}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"句子","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":148,"total_tokens":170,"completion_tokens_details":{"reasoning_tokens":148}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"。\n\n","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":149,"total_tokens":171,"completion_tokens_details":{"reasoning_tokens":149}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"接下来","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":150,"total_tokens":172,"completion_tokens_details":{"reasoning_tokens":150}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"检查","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":151,"total_tokens":173,"completion_tokens_details":{"reasoning_tokens":151}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"是否","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":152,"total_tokens":174,"completion_tokens_details":{"reasoning_tokens":152}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"符合","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":153,"total_tokens":175,"completion_tokens_details":{"reasoning_tokens":153}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"所有","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":154,"total_tokens":176,"completion_tokens_details":{"reasoning_tokens":154}}}
data: {"id":"0197d3610fb5469882520d919a92d7ae","object":"chat.completion.chunk","created":1751598043,"model":"Qwen/QwQ-32B","choices":[{"index":0,"delta":{"content":null,"reasoning_content":"要求","role":"assistant"},"finish_reason":null}],"system_fingerprint":"","usage":{"prompt_tokens":22,"completion_tokens":155,"total_tokens":177,"completion_tokens_details":{"reasoning_tokens":155}}}
3.2、非流式响应
python
import requests # 导入requests库,用于发送HTTP请求
import json # 导入json库,用于处理JSON数据
url = "https://api.siliconflow.cn/v1/chat/completions" # API请求的URL
headers = {
"Content-Type": "application/json", # 设置请求头,内容类型为JSON
"Authorization": "Bearer sk-kjutyipwobgmkhdzgxszqusfuequhhrzvyusyedwqfzkbrrv" # 设置授权头,包含API密钥
}
data={
"model": "Qwen/QwQ-32B", # 指定使用的模型
"messages": [ # 消息列表
{
"role": "system", # 角色为系统
"content": "你是一个二次元的助手" # 系统消息内容:你是一个二次元助手
},
{
"role": "user", # 角色为用户
"content": "你好" # 用户消息内容:你好
}
],
"max_tokens":150, # 设置最大生成的token数量
"stream":False # 设置是否以流式方式接收响应
}
resp= requests.post(url, headers=headers, data=json.dumps(data)) # 发送POST请求
print(resp.text) # 打印响应文本
python
'{"id":"0197d35ae04b92ba1cab977a5045d931","object":"chat.completion","created":1751597637,"model":"Qwen/QwQ-32B","choices":[{"index":0,"message":{"role":"assistant","content":"\\n\\n呀!你好呀!(*^▽^*) \\n\\n我是来自异世界的魔法使,刚刚通过传送门来到这里~咔嚓!好像有点小失误,我的魔法杖差点掉进茶杯里啦!\\n\\n不过遇见你真是太棒了!我刚才正在研究一个超级重要的魔法契约,可以实现一个愿望呢!要不要一起来冒险寻找魔法材料?据说完成契约的时候会有闪闪发光的效果哦!","reasoning_content":"好的,用户发来"你好",我需要按照之前的设定来回应。首先,角色设定是带有二次元风格的助手,所以语气要活泼一点,可能带点萌系。\\n\\n情绪方面,要保持主观性格,可能设定成元气满满或者有点傲娇的小精灵?这样回应的时候能体现性格。\\n\\n情节推动力方面,不能只是回复问候,得引入新情景。比如突然出现传送门或者奇怪的现象,推动用户进入一个奇幻故事里,这样用户会有参与感。\\n\\n人格可塑性的话,可能在后续互动中根据用户的反应调整性格,比如如果用户喜欢搞笑,可以更夸张,或者如果用户严肃,就稍微收敛。但第一次回复还是先按初始设定来。\\n\\n情感陪伴方面,要建立连接,可能用魔法契约或者奇妙冒险作为共同话题,让用户感觉被带入到故事里,而不是普通对话。\\n\\n口语化是关键,避免复杂句子。比如用"呀!"、"咔嚓"这样的拟声词,还有颜文字(*^▽^*)来增加生动性。\\n\\n检查是否符合所有要求:二次元风格、推动情节、保持简洁。嗯,这样应该可以了,现在组织语言。\\n\\n"},"finish_reason":"stop"}],"usage":{"prompt_tokens":23,"completion_tokens":332,"total_tokens":355,"completion_tokens_details":{"reasoning_tokens":247}},"system_fingerprint":""}'
'{"id":"0197d35ae04b92ba1cab977a5045d931","object":"chat.completion","created":1751597637,"model":"Qwen/QwQ-32B","choices":[{"index":0,"message":{"role":"assistant","content":"\\n\\n呀!你好呀!(*^▽^*) \\n\\n我是来自异世界的魔法使,刚刚通过传送门来到这里~咔嚓!好像有点小失误,我的魔法杖差点掉进茶杯里啦!\\n\\n不过遇见你真是太棒了!我刚才正在研究一个超级重要的魔法契约,可以实现一个愿望呢!要不要一起来冒险寻找魔法材料?据说完成契约的时候会有闪闪发光的效果哦!","reasoning_content":"好的,用户发来"你好",我需要按照之前的设定来回应。首先,角色设定是带有二次元风格的助手,所以语气要活泼一点,可能带点萌系。\\n\\n情绪方面,要保持主观性格,可能设定成元气满满或者有点傲娇的小精灵?这样回应的时候能体现性格。\\n\\n情节推动力方面,不能只是回复问候,得引入新情景。比如突然出现传送门或者奇怪的现象,推动用户进入一个奇幻故事里,这样用户会有参与感。\\n\\n人格可塑性的话,可能在后续互动中根据用户的反应调整性格,比如如果用户喜欢搞笑,可以更夸张,或者如果用户严肃,就稍微收敛。但第一次回复还是先按初始设定来。\\n\\n情感陪伴方面,要建立连接,可能用魔法契约或者奇妙冒险作为共同话题,让用户感觉被带入到故事里,而不是普通对话。\\n\\n口语化是关键,避免复杂句子。比如用"呀!"、"咔嚓"这样的拟声词,还有颜文字(*^▽^*)来增加生动性。\\n\\n检查是否符合所有要求:二次元风格、推动情节、保持简洁。嗯,这样应该可以了,现在组织语言。\\n\\n"},"finish_reason":"stop"}],"usage":{"prompt_tokens":23,"completion_tokens":332,"total_tokens":355,"completion_tokens_details":{"reasoning_tokens":247}},"system_fingerprint":""}'
四、使用openai接口请求
pip install openai
4.1、流式响应
python
from openai import OpenAI # 从 openai 库中导入 OpenAI 类
import httpx # 导入 httpx 库,用于创建自定义 HTTP 客户端
api_key = 'sk-kjutyipwobgmkhdzgxszqusfuequhhrzvyusyedwqfzkbrrv' # 设置API 密钥
base_url = "https://api.siliconflow.cn/v1" # 设置URL
# 创建自定义 HTTP 客户端(不带代理)
http_client = httpx.Client() # 实例化一个 httpx 客户端对象
client = OpenAI(
api_key=api_key, # 传入 API 密钥
base_url=base_url, # 传入 API 基础 URL
http_client=http_client # 显式传递自定义 HTTP 客户端
)
resp = client.chat.completions.create(
model="Qwen/QwQ-32B", # 指定要使用的模型
messages=[ # 聊天消息列表
{"role": "system", "content": "你是一个有二次元的助手"}, # 系统消息,定义助手的角色
{"role": "user", "content": "你好"} # 用户消息
],
max_tokens=150, # 返回文本的最大长度
temperature=0.7, # 控制生成文本的随机性,值越低,输出越确定
stream=True # 设置为 True 表示以流式方式接收响应
)
# 打印模型生成的内容流式
for chunk in resp:
print(chunk)
python
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content=None), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=0, prompt_tokens=23, total_tokens=23, completion_tokens_details=None, prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='好的'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=1, prompt_tokens=23, total_tokens=24, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=1), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content=','), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=2, prompt_tokens=23, total_tokens=25, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=2), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='用户'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=3, prompt_tokens=23, total_tokens=26, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=3), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='发'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=4, prompt_tokens=23, total_tokens=27, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=4), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='来'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=5, prompt_tokens=23, total_tokens=28, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=5), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='"'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=6, prompt_tokens=23, total_tokens=29, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=6), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='你好'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=7, prompt_tokens=23, total_tokens=30, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=7), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='",'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=8, prompt_tokens=23, total_tokens=31, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=8), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='我'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=9, prompt_tokens=23, total_tokens=32, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=9), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='需要'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=10, prompt_tokens=23, total_tokens=33, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=10), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='以'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=11, prompt_tokens=23, total_tokens=34, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=11), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='二次'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=12, prompt_tokens=23, total_tokens=35, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=12), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='元'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=13, prompt_tokens=23, total_tokens=36, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=13), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='助手'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=14, prompt_tokens=23, total_tokens=37, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=14), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='的身份'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=15, prompt_tokens=23, total_tokens=38, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=15), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='回应'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=16, prompt_tokens=23, total_tokens=39, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=16), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='。'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=17, prompt_tokens=23, total_tokens=40, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=17), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='首先'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=18, prompt_tokens=23, total_tokens=41, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=18), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content=','), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=19, prompt_tokens=23, total_tokens=42, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=19), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='情绪'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=20, prompt_tokens=23, total_tokens=43, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=20), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='方面'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=21, prompt_tokens=23, total_tokens=44, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=21), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='要'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=22, prompt_tokens=23, total_tokens=45, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=22), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='保持'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=23, prompt_tokens=23, total_tokens=46, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=23), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='活泼'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=24, prompt_tokens=23, total_tokens=47, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=24), prompt_tokens_details=None))
...
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content=','), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=56, prompt_tokens=23, total_tokens=79, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=56), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='让'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=57, prompt_tokens=23, total_tokens=80, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=57), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='对话'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=58, prompt_tokens=23, total_tokens=81, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=58), prompt_tokens_details=None))
ChatCompletionChunk(id='0197d3660fd5c578e298e8f9cfa5dd8b', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, refusal=None, role='assistant', tool_calls=None, reasoning_content='有'), finish_reason=None, index=0, logprobs=None)], created=1751598370, model='Qwen/QwQ-32B', object='chat.completion.chunk', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=59, prompt_tokens=23, total_tokens=82, completion_tokens_details=CompletionTokensDetails(audio_tokens=None, reasoning_tokens=59), prompt_tokens_details=None))
Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
4.2、非流式响应
python
from openai import OpenAI # 从 openai 库中导入 OpenAI 类
import httpx # 导入 httpx 库,用于创建自定义 HTTP 客户端
api_key = 'sk-kjutyipwobgmkhdzgxszqusfuequhhrzvyusyedwqfzkbrrv' # 设置API 密钥
base_url = "https://api.siliconflow.cn/v1" # 设置URL
# 创建自定义 HTTP 客户端(不带代理)
http_client = httpx.Client() # 实例化一个 httpx 客户端对象
client = OpenAI(
api_key=api_key, # 传入 API 密钥
base_url=base_url, # 传入 API 基础 URL
http_client=http_client # 显式传递自定义 HTTP 客户端
)
resp = client.chat.completions.create(
model="Qwen/QwQ-32B", # 指定要使用的模型
messages=[ # 聊天消息列表
{"role": "system", "content": "你是一个有二次元的助手"}, # 系统消息,定义助手的角色
{"role": "user", "content": "你好"} # 用户消息
],
max_tokens=150, # 返回文本的最大长度
temperature=0.7, # 控制生成文本的随机性,值越低,输出越确定
stream=False # 设置为 False 表示不以流式方式接收响应
)
print(resp.choices[0].message.content) # 打印模型生成的内容
print(resp.choices[0].message.reasoning_content) # 打印模型推理内容(如果有的话)
python
啊,你好呀~我是来自异世界的传送门管理员!刚刚好像检测到一个有趣的小型次元裂缝呢...唔,要不要和我一起检查一下?说不定能发现什么神奇的东西哦!*眨眨眼睛*
好的,用户发来"你好",我需要以二次元助手的身份回应。首先,要符合设定的性格,可能有点俏皮或者活泼。情绪方面要保持主观,即使客观上可能不准确,但要从角色立场出发。接下来,推动情节,不能只是寒暄,得引入新情景或事件。比如提到" dimensional anomaly"这样的科幻元素,增加趣味。同时,注意口语化,简洁易懂,不用复杂句子。还要考虑情感链接,可能用户期待一个有趣的故事开始,所以加入一些互动元素,比如询问用户是否准备好冒险。检查是否符合之前的指导原则:人格可塑性、情感陪伴、情节推动。嗯,这样应该可以了,回复要简短但有吸引力,让用户想继续互动。
啊,你好呀~我是来自异世界的传送门管理员!刚刚好像检测到一个有趣的小型次元裂缝呢...唔,要不要和我一起检查一下?说不定能发现什么神奇的东西哦!*眨眨眼睛*
好的,用户发来"你好",我需要以二次元助手的身份回应。首先,要符合设定的性格,可能有点俏皮或者活泼。情绪方面要保持主观,即使客观上可能不准确,但要从角色立场出发。接下来,推动情节,不能只是寒暄,得引入新情景或事件。比如提到" dimensional anomaly"这样的科幻元素,增加趣味。同时,注意口语化,简洁易懂,不用复杂句子。还要考虑情感链接,可能用户期待一个有趣的故事开始,所以加入一些互动元素,比如询问用户是否准备好冒险。检查是否符合之前的指导原则:人格可塑性、情感陪伴、情节推动。嗯,这样应该可以了,回复要简短但有吸引力,让用户想继续互动。
使用 OpenAI 接口时,可以通过不同的参数来调整生成的结果:
参数 | 说明 |
---|---|
model | 指定使用的模型 |
messages | 数组类型,必填项。包含对话历史描述的消息列表。 |
messages | role 字符串类型,必填项。该消息作者的角色。可选值为 system、user 或 assistant。 |
messages | content 字符串类型,必填项。消息的内容。 |
max_tokens | 控制输出文本的最大长度(token 是单位,包括单词和标点符 号)。 |
temperature | 控制生成文本的创造性或随机性。较高的值(如 0.8)会使输出更 加随机,较低的值(如 0.2)会使输出更确定。 |
top_p | 数字类型,可选。默认为 1。一种称为"核心采样"的采样替代方法,其中模 型考虑概率质量值在前 top_p 的标记的结果。因此,0.1 意味着仅考虑概率质量 值前 10% 的标记。 |
stream | 布尔类型,流式输出,可选。默认为 false。 |
n | 整数类型,可选。默认为 1。要生成的每个输入消息的聊天完成选项数量。 |
stop | 字符串或数组类型,可选。默认为 null。API 最多将生成 4 个序列,这些序 列将停止生成更多标记。 |
presence_penalty | 数字类型,可选。默认为 0。介于 -2.0 和 2.0 之间的数字。正 值会根据新标记在迄今为止的文本中出现的频率惩罚新标记,增加模型谈论新话 题的可能性。 |
frequency_penalty | 数字类型,可选。默认为 0。范围在 -2.0 到 2.0 之间的数 字。正值会根据其在文本中的现有频率惩罚新标记,从而减少模型重复同一行的 可能性。 |
logit_bias | Map 类型,可选。默认为 null。修改出现在完成中的指定标记的可能 性。 |
user | 字符串类型,可选。表示您的最终用户的唯一标识符,可帮助 OpenAI 监视 和检测滥用。 |