Q&A
字数
622 字
阅读时间
3 分钟
- Q:为什么选用conda创建虚拟环境而不使用venv A:我入门 Python 是跟着学校的《Python 数据分析》课程走的,那时候老师推荐装 Anaconda,自然就习惯了 conda。后来我做的项目(比如这个语音相关/深度学习的项目)需要装 PyTorch 这类库,conda 可以直接把非 Python 的依赖也一起处理好,不用我自己去配环境变量,比较省事。我开发环境是 Windows,conda 在 Windows 上管理环境感觉更顺手一些,venv 有时候会遇到一些路径或者权限的小问题。当然我也了解 venv 是 Python 原生的,轻量、不需要额外安装,如果是做纯 Python 开发或者部署到服务器上,venv 其实更合适。我这个项目用 conda 主要是个人倾向,当然venv我也可以用。
- Q:为什么安装django和langchain依赖包需要在conda虚拟环境中安装? A:我习惯在虚拟环境里装依赖,主要是考虑到项目隔离。比如我这个项目用 LangChain 0.2 版本,但 LangChain 更新很快,如果装全局,以后做别的项目用新版本,可能和这个旧项目冲突。虚拟环境能保证每个项目的依赖是独立、可控的。 注记理解:简单说:装虚拟环境 = 每个项目住独立单间,不互相打扰。 看一下Langchain的最新版本号,看一下迭代速度
- Q:你在项目里搭建使用了一个Agent智能体,能不能说说这个智能体的功能,再说说如果你要给LLM大模型决策错误导致调用了错误的tools工具从而导致输出答案出错,这种情况该如何避免? A: 为了避免死循环,给LLM调用工具设置了一个最大调用次数限制,超出这个次数,就会直接结束循环。当然也可以设定一个工作流,让大模型根据工作流流程操作,这样也不会陷入死循环。
- LangChain为什么使用Tool装饰器函数创建tool工具,而不使用BaseTool子类化或是从MCP服务端获得?