
引言
LangChain和CrewAI等框架的兴起,让构建AI智能体变得比以往任何时候都更容易。然而,开发这些智能体往往会遇到API调用频率限制、高维数据管理,或需要将本地服务器暴露到互联网等问题。
NWU - 选择各类AI课程
选择种类繁多的AI课程。
无需在原型开发阶段为云服务付费,也无需让依赖项污染你的主机,你可以利用Docker来解决这些问题。只需一条命令,你就能启动让智能体更智能的基础设施。
以下是每个AI智能体开发者都应纳入工具包的5个必备Docker容器。
1. Ollama:运行本地语言模型

在构建智能体时,将每个提示都发送到OpenAI等云服务提供商,不仅成本高昂,速度也较慢。有时,你需要一个快速、私密的模型来处理特定任务——例如语法校正或分类任务。
Ollama允许你在本地机器上直接运行开源大型语言模型(LLM)——如Llama 3、Mistral或Phi。通过在容器中运行它,你可以保持系统整洁,并且无需复杂的Python环境配置,就能轻松在不同模型之间切换。
隐私和成本是构建智能体时的主要关注点。Ollama Docker镜像让你可以通过REST API轻松部署Llama 3或Mistral等模型。
说明它对智能体开发者的重要性
无需将敏感数据发送到OpenAI等外部API,你可以为智能体配备一个“大脑”,这个“大脑”就运行在你自己的基础设施内部。这对于处理专有数据的企业级智能体来说至关重要。通过运行docker run ollama/ollama,你立即拥有一个本地端点,你的智能体代码可以调用该端点来生成文本或推理任务。
快速开始
要通过Ollama容器拉取并运行Mistral模型,请使用以下命令。该命令会映射端口,并将模型持久化存储在你的本地驱动器上。
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
容器运行后,你需要在容器内部执行命令来拉取模型:
docker exec -it ollama ollama run mistral
说明它对智能体开发者的实用性
现在,你可以将智能体的LLM客户端指向http://localhost:11434。这为你提供了一个本地、API兼容的端点,用于快速原型开发,并确保你的数据永远不会离开你的机器。
核心优势总结
数据隐私:确保你的提示词和数据安全
成本效益:推理过程无需支付API费用
延迟低:在本地GPU上运行时,响应速度更快
2. Qdrant:用于记忆的向量数据库

智能体需要记忆来回忆过去的对话和领域知识。要为智能体提供长期记忆,你需要一个向量数据库。这些数据库存储文本的数值表示(嵌入向量),允许你的智能体在后续搜索语义相似的信息。
Qdrant是一个基于Rust构建的高性能开源向量数据库。它速度快、可靠性高,并提供gRPC和REST两种API。通过Docker运行它,你可以立即为智能体获得一个生产级别的记忆系统。
说明它对智能体开发者的重要性
要构建检索增强生成(RAG)智能体,你需要存储文档嵌入向量并快速检索它们。Qdrant就相当于智能体的长期记忆。当用户提出问题时,智能体会将其转换为向量,在Qdrant中搜索相似向量——这些向量代表相关知识——并利用这些上下文来组织答案。通过Docker运行它,可使这个记忆层与你的应用代码解耦,从而提高系统的稳健性。
快速开始
你可以通过一条命令启动Qdrant。该命令会在6333端口暴露API和仪表板,在6334端口暴露gRPC接口。
docker run -d -p 6333:6333 -p 6334:6334 qdrant/qdrant
运行后,你可以将智能体连接到localhost:6333。当智能体学到新东西时,将嵌入向量存储到Qdrant中。下次用户提问时,智能体可以在这个数据库中搜索相关“记忆”并将其纳入提示词,使其真正具备对话能力。
3. n8n:将工作流连接起来

智能体工作流很少孤立存在。有时你需要智能体检查你的电子邮件、更新Google表格中的一行数据,或发送Slack消息。虽然你可以手动编写API调用,但这个过程通常很繁琐。
n8n是一个公平代码(fair-code)工作流自动化工具。它允许你通过可视化UI连接不同的服务。通过在本地运行它,你可以创建复杂的工作流——例如“如果智能体检测到销售线索,就将其添加到HubSpot并发送Slack提醒”——无需编写一行集成代码。
快速开始
要持久化你的工作流,你应该挂载一个卷。以下命令使用SQLite作为数据库来设置n8n。
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
说明它对智能体开发者的实用性
你可以设计智能体调用n8n的webhook URL。智能体只需发送数据,n8n就会处理与第三方API交互的复杂逻辑。这将“大脑”(LLM)与“双手”(集成操作)分离开来。
在http://localhost:5678访问编辑器,开始自动化工作流。
4. Firecrawl:将网站转换为适用于大型语言模型的数据

智能体最常见的任务之一是研究。然而,智能体难以读取原始HTML或ja vasc ript渲染的网站。它们需要干净、markdown格式的文本。
Firecrawl是一个API服务,它接收一个URL,爬取该网站,并将内容转换为干净的markdown或结构化数据。它会自动处理ja vasc ript渲染,并移除广告和导航栏等冗余内容。在本地运行它,可以避开云版本的使用限制。
快速开始
Firecrawl需要使用docker-compose.yml文件,因为它包含多个服务,包括应用程序、Redis和Playwright。克隆代码仓库并运行它。
git clone https://github.com/mendableai/firecrawl.git
cd firecrawl
docker compose up
说明它对智能体开发者的实用性
让你的智能体具备获取实时网络数据的能力。如果你正在构建一个研究型智能体,你可以让它调用本地的Firecrawl实例来获取网页、转换为干净文本、进行分块,并自动存储到你的Qdrant实例中。
5. PostgreSQL和pgvector:实现关系型记忆

有时,仅靠向量搜索是不够的。你可能需要一个既能处理结构化数据——如用户档案或交易日志——又能处理向量嵌入的数据库。PostgreSQL搭配pgvector扩展,就能实现这一点。
无需分别运行一个向量数据库和一个SQL数据库,你可以同时拥有两者的优势。你可以将用户的姓名和年龄存储在表的一列中,将他们的对话嵌入向量存储在另一列中,然后执行混合搜索(例如“找到纽约用户关于退款的对话”)。
快速开始
官方PostgreSQL镜像默认不包含pgvector。你需要使用特定的镜像,例如pgvector组织提供的镜像。
docker run -d --name postgres-pgvector -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword pgvector/pgvector:pg16
说明它对智能体开发者的实用性
这是有状态智能体的终极后端。你的智能体可以将其记忆和内部状态写入存储应用程序数据的同一数据库中,确保数据一致性并简化你的架构。
总结
构建复杂的AI智能体并不需要庞大的云预算。Docker生态系统提供了生产级别的替代方案,这些方案在开发者的笔记本电脑上就能完美运行。
将这五个容器添加到你的工作流中,你将获得:
大脑:Ollama用于本地推理
记忆:Qdrant用于向量搜索
双手:n8n用于工作流自动化
眼睛:Firecrawl用于网页数据获取
存储:PostgreSQL搭配pgvector用于结构化数据
启动你的容器,将你的LangChain或CrewAI代码指向localhost,见证你的智能体焕发生命力吧。
推荐学习书籍 《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~ !



雷达卡





京公网安备 11010802022788号







