免费第三方api-key(硅基流动)使用OpenAI
格式,还能控制大模型的输出格式,不能说真香
,只能说 真香Plus!
API-Key
领取方法看这篇教程 【1024送福利】硅基流动送2000万token啦!撒花✿✿ 附使用教程
支持十几个免费的大模型
尤其是通义千问Qwen2.5-7b 和 智谱glm-4
详见模型广场
通过 OpenAI
接口调用,就能使用跟OpenAI类似的函数功能
如response_format
,这不比LangChain
的Parse
方便多啦!
代码如下
import json
from openai import OpenAI
client = OpenAI(
api_key="sk-pkyxxxcje", # 从https://cloud.siliconflow.cn/account/ak获取
base_url="https://api.siliconflow.cn/v1"
)
response = client.chat.completions.create(
model="THUDM/glm-4-9b-chat", # 各种大模型
messages=[
{"role": "system", "content": "You are a helpful assistant designed to output JSON."},
{"role": "user", "content": "? 2020 年世界奥运会乒乓球男子和女子单打冠军分别是谁? "
"Please respond in the format {\"男子冠军\": ..., \"女子冠军\": ...}"}
],
response_format={"type": "json_object"}
)
print(response.choices[0].message.content)
print(type(response.choices[0].message.content))
output_dict = json.loads(response.choices[0].message.content)
print('\n',output_dict)
print(type(output_dict))
print('男子冠军:',output_dict["男子冠军"])
输出如下
{"男子冠军": "马龙", "女子冠军": "陈梦"}
<class 'str'>
{'男子冠军': '马龙', '女子冠军': '陈梦'}
<class 'dict'>
男子冠军: 马龙
用json.loads
转一下,就能取到dict
中的值了