微信扫码
与创始人交个朋友
我要投稿
上一篇文章11.4k star! 部署清华开源的ChatGLM3,用私有化大模型无缝替换openai,我们部署了ChatGLM3模型,其中的function call特性支持调用自定义代码实现定制化功能,由于大模型本身没有互联网的实时数据,今天我们用function call实现一个查询实时天气的功能,并简单分析一下其实现原理,openai的工具调用原理也一样。
cd openai_api_demonohup python api_server.py &
cd tools_using_demopython openai_api_demo.py
openai.UnprocessableEntityError: Error code: 422 - ... 'msg': 'Input should be a valid dictionary'
出现这个错误可能是openai包的版本不正确,用以下命令指定安装1.8.0的openai,再重新运行:
pip install openai==1.8.0python openai_api_demo.py
实现一个查询系统,前端一个输入框,让用户用自然语言描写自己想查什么,服务端有根据城市查询天气、根据IP查询地理位置两个方法,服务端要根据用户的描述来确定应该调用哪个方法,传递什么参数,比如用户输入"我想查一下北京的天气",服务端就要调用getWeather("北京")。
以上就是function calling的实现原理,理论上如果没有这个特性,通过写prompt也可以实现。
4. 代码解析
Function Call Response: {'arguments': '{"city_name": "北京"}', 'name': 'get_weather'}
根据方法名和参数就可以调用自己写的方法,获取到返回值
Tool Call Response: {'current_condition': {'temp_C': '14', 'FeelsLikeC': '13', 'humidity': '38', 'weatherDesc': [{'value': 'Clear'}], 'observation_time': '02:00 PM'}}
因为方法的返回值不是自然语言,所以再将方法返回值发给大模型,让大模型总结一下,最后输出方便理解的自然语言。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-04-12
2024-05-28
2024-04-25
2024-05-14
2024-07-18
2024-04-26
2024-08-13