前言
人工智能时代已经到来。ChatGPT 的发布具有划时代的意义,其影响力堪比蒸汽机的发明。
ChatGPT 发布短短一年内,已渗透至互联网各个角落。国内大厂纷纷跟进,推出了各自的大模型产品。虽然数量众多,但质量参差不齐,部分存在套壳嫌疑。
你对大模型的印象是否还停留在聊天阶段?实际上,大模型的发展已远超预期。本文侧重于应用场景和落地实践,辅以少量代码帮助理解,并包含个人测试结论。
System Prompt 与人设设定
在与模型交互时,可以通过预先设置 system 角色来定义模型的身份、风格和约束条件。这是大模型在多方面应用的基础。
例如,通过 system 消息将模型身份设置为助手:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Who won the world series in 2020?"
}
]
}'
在工程应用中,Prompt 是至关重要的一环。通过编写特定的人设或约束,可以自定义具备特定功能的聊天机器人,而无需复杂的编程技术。
Function Call 与工具调用
如果说大模型相当于人的大脑,那么 Function Call 就相当于手脚。该功能允许模型根据思考结果执行具体操作,如查询天气、计算数据等。
当用户询问 今天天气怎么样? 时,模型本身无法直接获取实时数据。但如果我们定义了查询天气的工具接口,模型会判断是否需要调用该方法,并按要求生成参数。
在 API 请求中,需携带 tools 参数:
request.tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"format": {
"type": ,
: [, ],
:
}
},
: []
}
}
}
]


