You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
5 months ago | |
---|---|---|
.idea | 5 months ago | |
llmagent | 5 months ago | |
llmtools | 5 months ago | |
.gitignore | 5 months ago | |
LICENSE | 5 months ago | |
Pipfile | 5 months ago | |
README.md | 5 months ago | |
env.toml | 5 months ago | |
log_conf.py | 5 months ago | |
main.py | 5 months ago | |
requirements.txt | 5 months ago | |
vector_db.py | 5 months ago |
README.md
LLM function calling 示例
功能介绍
本项目用于验证语音控制大屏后端模块。获取用户输入后,由LLM进行意图识别,并通过function calling调用相关函数,实现语音控制大屏。
使用的LLM是阿里开源QwQ-32B,模型特点为有一定的推理能力并且运行速度快。DeepSeek-R1由于不是天生支持function calling所以不考虑。
安装
- clone 本项目
git clone http://1.14.96.249:3000/old-tom/llmFunctionCallDemo.git
- 创建虚拟环境
- 这里使用的是pipenv,可以换成uv或者conda
- python 版本为 3.10或以上稳定版即可
cd llmFunctionCallDemo (clone的代码目录)
pipenv install --python 3.10
- 安装依赖
pip install -r requirements.txt
- 向量库部署和初始化 (docker)
docker run --name marqo -it --privileged -p 8882:8882 --add-host host.docker.internal:host-gateway marqoai/marqo:latest
初始化:执行vector_db.py create_and_set_index()方法
测试:执行vector_db.py query_vector_db() 方法,参数为任意字符串
- 配置文件 env.toml
[base]
# 多轮对话历史存储类型(memory:内存)
history_chat_store = 'memory'
# 相似度阈值
similarity_threshold = 0.93
# dev
dev = true
####### 模型配置 #######
[siliconflow]
# 硅基流动
# 密钥
api_key = ''
# 模型名称
model = ''
# API地址
base_url = ''
# 最大token数
max_tokens = 4096
# 温度系数
temperature = 0.6
# 是否流式返回
streaming = true
TestCase
参考main.py
- 多轮对话
dsr = ChatAgent()
dsr.multi_with_stream('你是什么模型', 1)
dsr.multi_with_stream('你能做什么', 1)
dsr.multi_with_stream('我的上一个问题是什么?请直接返回问题,不要有多余输出及思考过程', 1)
dsr.multi_with_stream('我的第一个问题是什么?请直接返回问题,不要有多余输出及思考过程', 1)
- 多轮对话并调用工具
dsr = ChatAgent()
dsr.multi_with_tool_call_stream('播放南卡口相机', 1)
dsr.multi_with_tool_call_stream('1', 1)
TODO
- 模型输出不稳定,提示词还需要进一步优化
- 日志跟踪
- 升级历史对话存储(redis或sqllite)