硅基流动(SiliconCloud)是硅基流动公司推出的一站式大模型云服务平台,致力于为开发者和企业提供高效、低成本且全面的生成式人工智能(GenAI)模型服务,包括 IaaS、PaaS 和 MaaS。其核心目标是通过优化大模型使用体验,帮助用户实现 “Token 自由”,即以更低成本和更高效率使用先进的大语言模型(LLMs)及其他生成式人工智能(AI)模型。
硅基流动提供了一系列高效、低成本的AI解决方案,主要包括:
前往想要调用的大模型厂商的官网注册登录申请 api key,查看调用文档记录base_url 和 api_key。 以硅基流动举例,网站:https://docs.siliconflow.cn/quickstart(该网站送14元,并且有免费模型,后续如果收费的话可以酌情操作),根据快速上手获取API。其它网站都差不多,例如百度的千帆。在模型广场中找“只看免费”的,这里可以看到Qwen2.5-7B是免费的。

申请一个秘钥:

同时可以查看API手册以获取自己想要对接的功能:

使用Linux的的terminal运行以下命令:
curl --request POST \
--url https://api.siliconflow.cn/v1/chat/completions \
--header 'Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"model": "Qwen/Qwen2-7B-Instruct",
"stream": false,
"max_tokens": 512,
"enable_thinking": true,
"thinking_budget": 512,
"min_p": 0.05,
"temperature": 0.7,
"top_p": 0.7,
"top_k": 50,
"frequency_penalty": 0.5,
"n": 1,
"stop": [],
"messages": [
{
"role": "user",
"content": "你好啊。"
}
]
}'
注意:header 参数替换为自己APK-KEY。运行效果如下:

安装依赖:
pip install requests
示例代码:
import requests
url = "https://api.siliconflow.cn/v1/chat/completions"
payload = {
"model": "Qwen/Qwen2-7B-Instruct",
"stream": False,
"max_tokens": 512,
"enable_thinking": True,
"thinking_budget": 512,
"min_p": 0.05,
"temperature": 0.7,
"top_p": 0.7,
"top_k": 50,
"frequency_penalty": 0.5,
"n": 1,
"stop": [],
"messages": [
{
"role": "user",
"content": "请介绍一下你自己。"
}
]
}
headers = {
"Authorization": "Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
运行效果:
{"id":"0196953487a24998a0699509694bc7e2","object":"chat.completion","created":1746259969,"model":"Qwen/Qwen2-7B-Instruct","choices":[{"index":0,"message":{"role":"assistant","content":"我是一个大模型,我叫通义千问。我是阿里云推出的一种超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。我是在海量的互联网文本上进行训练得到的,所以可以生成各种主题的高质量文本。同时,我也经过了多轮调优和优化,以提供更准确、流畅的回答。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。"},"finish_reason":"stop"}],"usage":{"prompt_tokens":23,"completion_tokens":92,"total_tokens":115},"system_fingerprint":""}
安装依赖:
pip install openai==1.77.0
示例代码:
# 使用openai接口请求
from openai import OpenAI
api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
base_url = 'https://api.siliconflow.cn/v1'
client = OpenAI(api_key=api_key, base_url=base_url)
# # 发送请求到GPT模型, 流式输出
# response = client.chat.completions.create(
# model='Qwen/Qwen2.5-7B-Instruct', # 使用的模型,可以选择gpt-3.5-turbo等
# messages=[
# {"role": "system", "content": "You are a helpful assistant."},
# {"role": "user", "content": "你好"},
# ],
# max_tokens=150, # 返回文本的最大长度
# temperature=0.7, # 控制生成文本的随机性,值越低,输出越确定
# stream=True
# )
# # 逐块打印返回结果
# for chunk in response:
# print(chunk)
# 发送请求到GPT模型, 非流式输出
response = client.chat.completions.create(
model='Qwen/Qwen2.5-7B-Instruct', # 使用的模型,可以选择gpt-3.5-turbo等
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "请介绍一下你自己"},
],
max_tokens=150, # 返回文本的最大长度
temperature=0.7, # 控制生成文本的随机性,值越低,输出越确定
stream=False
)
print(response)
运行效果:
ChatCompletion(id='0196953a5732e802d971c2b5e057c10c', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='我叫通义千问,是阿里云推出的一种超大规模语言模型。作为一个AI助手,我的目标是帮助用户获得准确、有用的信息,解决他们的问题和困惑。无论是提供知识解答、撰写文章,还是进行创意头脑风暴,我都希望可以成为您的得力助手。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。', refusal=None, role='assistant', annotations=None, audio=None, function_call=None, tool_calls=None))], created=1746260350, model='Qwen/Qwen2.5-7B-Instruct', object='chat.completion', service_tier=None, system_fingerprint='', usage=CompletionUsage(completion_tokens=76, prompt_tokens=22, total_tokens=98, completion_tokens_details=None, prompt_tokens_details=None))
使用 OpenAI 接口时,可以通过不同的参数来调整生成的结果: - model: 指定使用的模型。 - messages: 数组类型,必填项。包含对话历史描述的消息列表。 - role 字符串类型,必填项。该消息作者的角色。可选值为 system、user 或assistant。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 监视和检测滥用。
解析响应 返回的响应是一个 JSON 格式的数据,其中包含生成的文本。主要结构如下: - choices: 返回生成的文本列表,每个元素对应一个生成的响应。 - usage: 显示请求消耗的 token 数量,包括输入和输出。