本地部署deepseek及动态调用本地方法
自己闲来无事打算搞个自动化测试框架玩玩,想着目前AI盛行,要是把AI集成到自动化框架中,测试用例,测试过程,测试报告等都让AI自己决定,我只需要用自然语言和AI交流就好了。想想就舒服。但是这里面就涉及到如何让AI调用本地方法,上网查了一下,deepseekI发布过Function Calling这一功能。允许开发者定义自定义函数,并且通过模型生成的结构化参数实现与本地代码的无缝集成,说人话就是你把
自己闲来无事打算搞个自动化测试框架玩玩,想着目前AI盛行,要是把AI集成到自动化框架中,测试用例,测试过程,测试报告等都让AI自己决定,我只需要用自然语言和AI交流就好了。想想就舒服。但是这里面就涉及到如何让AI调用本地方法,上网查了一下,OpenAI发布过Function Calling这一功能。允许开发者定义自定义函数,并且通过模型生成的结构化参数实现与本地代码的无缝集成,后来查了一下deepseek也有这么个功能。说人话就是你把本地函数一起给AI传过去。
本地部署AI
这一块网上很多教程,我就不详细说了,简单过一下。
下载ollama
链接在这里Download Ollama on Windows
https://ollama.com/download
这玩意默认是安装在C盘的,所以先给C盘空间预留点空间(4.7G),当然也可以切换安装路径,就是安装好之后从C盘拷到你想安装的盘就行,不过记得改环境变量。
安装完成之后记得在命令行查看一下。输入ollama回车,展示ollama信息就说明安装好了
安装AI模型(我用的DeepSeek-R1)
先说明AI大模型不建议安装到C盘。修改一下环境变量。新建OLLAMA_MODELS环境变量,值为模型安装位置。

根据自己的电脑配置选择适合自己的模型,命令行直接运行ollama run deepseek-r1:7b(模型名)命令就行,没有会直接安装的,当然,ollama pull 也能拉取,但是拉取完之后还得ollama run,所以不如直接使用ollama run 。
链接奉上:deepseek-r1
https://ollama.com/library/deepseek-r1
安装之后可以在命令行直接开始聊天

但是很明显我们不用这种方式。
使用python调通本地deepseek
先导入openai,url默认为:http://127.0.0.1:11434/v1
from openai import OpenAI
client = OpenAI(api_key="asdasda", base_url="http://127.0.0.1:11434/v1")
#因为是本地部署,api_key随便写,但是不要为空
客户端创建好之后就可以调用API进行发送消息啦。核心代码就这些,至于其他参数可以参考官方文档。
completion = client.chat.completions.create(
model="deepseek-r1:1.5b",#模型名称,一定要写自己的模型名称
messages=[
{"role": "system", "content":"你是有用的AI助手"},#system表示系统提示,可以简单理解为你想让AI在这里面扮演什么角色
{"role": "user", "content": "你好"}#user表示用户
],
"tools": null,#希望AI使用工具的集合,最多支持128个function
"tool_choice": "none",#控制模型调用 tool 的行为
)
tools使用规则:
Function Calling | DeepSeek API Docs
https://api-docs.deepseek.com/zh-cn/guides/function_calling
优化
如果说我有很多函数,或者说我新建很多函数,那么这个tools列表就要不停更新,那有啥办法让他自己更新吗?有的兄弟,有的。装饰器啊。在想要加入tools列表的方法加个装饰器就好啦。这样AI就能根据你的需要自己判断使用哪个函数了。
如果你不想用tools这个参数,也可以这么做:

利用系统消息直接告知AI,让他使用你所规定的函数列表即可。
更多推荐


所有评论(0)