📢 转载信息
原文链接:https://www.kdnuggets.com/5-useful-docker-containers-for-agentic-developers
原文作者:Shittu Olumide
Image by Author
# Introduction
随着 LangChain 和 CrewAI 等框架的兴起,构建 AI 智能体比以往任何时候都更加容易。然而,开发这些智能体常常会遇到 API 速率限制、高维数据管理或需要将本地服务器暴露给互联网等问题。
在原型开发阶段,您可以避免为云服务付费,或避免在本地机器上安装大量依赖项,而可以利用 Docker。只需一个命令,您就可以启动能够让您的智能体更智能的基础设施。
以下是每位 AI 智能体开发者都应掌握的 5 个必备 Docker 容器。
# 1. Ollama:运行本地语言模型
Ollama dashboard
在构建智能体时,将每个提示发送给像 OpenAI 这样的云提供商可能会非常昂贵且效率低下。有时,您需要一个快速、私密的模型来处理特定任务,例如语法纠正或分类任务。
Ollama 允许您直接在本地机器上运行开源的大型语言模型(LLMs),如 Llama 3、Mistral 或 Phi。通过在容器中运行它,您可以保持系统整洁,并可以轻松地在不同模型之间切换,而无需复杂的 Python 环境设置。
隐私和成本是在构建智能体时需要考虑的主要问题。Ollama Docker 镜像 可以轻松地通过 REST API 提供 Llama 3 或 Mistral 等模型。
// Explanation Why It Matters for Agentic Developers
您无需将敏感数据发送给 OpenAI 等外部 API,而是可以为您的智能体提供一个“大脑”,该大脑可以驻留在您自己的基础设施内部。这对于处理专有数据的企业级智能体尤其重要。通过运行 docker run ollama/ollama,您可以立即获得一个本地端点,您的智能体代码可以调用它来生成文本或进行任务推理。
// Initiating a Quick Start
要通过 Ollama 容器拉取并运行 Mistral 模型,请使用以下命令。这会将端口映射并使模型持久化到您的本地驱动器。
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
在容器运行后,您需要通过在容器内执行命令来拉取模型:
docker exec -it ollama ollama run mistral
// Explanation Why It's Useful for Agentic Developers
您现在可以将智能体的 LLM 客户端指向 http://localhost:11434。这为您提供了一个本地、API 兼容的端点,用于快速原型开发,并确保您的数据永远不会离开您的机器。
// Reviewing Key Benefits
- 数据隐私:确保您的提示和数据安全
- 成本效益:推理无 API 费用
- 延迟:在使用本地 GPU 时响应更快
了解更多:Ollama Docker Hub
# 2. Qdrant:用于记忆的向量数据库
Qdrant dashboard
智能体需要记忆来回忆过去的对话和领域知识。为了赋予智能体长期记忆,您需要一个 向量数据库。这些数据库存储文本的数值表示(嵌入),使您的智能体以后能够搜索语义上相似的信息。
Qdrant 是一个用 Rust 构建的高性能开源向量数据库。它快速、可靠,并提供 gRPC 和 REST API。在 Docker 中运行它,可以立即为您的智能体提供生产级的记忆系统。
// Explanation Why It Matters for Agentic Developers
要构建一个检索增强生成(RAG)智能体,您需要存储文档嵌入并快速检索它们。Qdrant 作为智能体的长期记忆。当用户提问时,智能体将其转换为向量,在 Qdrant 中搜索相似向量(代表相关知识),并利用该上下文来形成答案。在 Docker 中运行它可以使此内存层与您的应用程序代码解耦,使其更加健壮。
// Initiating a Quick Start
您只需一个命令即可启动 Qdrant。这将通过端口 6333 暴露 API 和仪表板,并通过端口 6334 暴露 gRPC 接口。
docker run -d -p 6333:6333 -p 6334:6334 qdrant/qdrant
运行此命令后,您可以通过 localhost:6333 连接您的智能体。当智能体学习到新东西时,将其嵌入存储在 Qdrant 中。下次用户提问时,智能体可以搜索此数据库以获取相关的“记忆”并将其包含在提示中,使其真正具有对话能力。
# 3. n8n:粘合工作流
n8n dashboard
智能体工作流很少独立存在。有时您需要智能体检查您的电子邮件、更新 Google Sheet 中的某一行或发送 Slack 消息。虽然您可以手动编写 API 调用,但这个过程通常很繁琐。
n8n 是一款公平代码(fair-code)工作流自动化工具。它允许您通过可视化界面连接不同的服务。通过在本地运行它,您可以创建复杂的工作流(例如“如果智能体检测到销售线索,则将其添加到 HubSpot 并发送 Slack 警报”),而无需编写任何集成代码。
// Initiating a Quick Start
为了持久化您的工作流,您应该挂载一个卷。以下命令使用 SQLite 作为其数据库设置 n8n。
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
// Explanation Why It's Useful for Agentic Developers
您可以设计您的智能体调用 n8n 的 Webhook URL。智能体只需发送数据,n8n 负责处理与第三方 API 通信的复杂逻辑。这会将“大脑”(LLM)与“手”(集成)分开。
访问编辑器:http://localhost:5678,开始自动化。
了解更多:n8n Docker Hub
# 4. Firecrawl:将网站转换为适合大型语言模型的数据
Firecrawl dashboard
智能体最常见的任务之一是研究。然而,智能体难以读取原始 HTML 或 JavaScript 渲染的网站。它们需要干净、Markdown 格式的文本。
Firecrawl 是一个 API 服务,它接受一个 URL,爬取网站,并将内容转换为干净的 Markdown 或结构化数据。它会自动处理 JavaScript 渲染并删除样板内容,如广告和导航栏。在本地运行它可以绕过云版本的用法限制。
// Initiating a Quick Start
Firecrawl 使用 docker-compose.yml 文件,因为它由多个服务组成,包括应用程序、Redis 和 Playwright。克隆仓库并运行它。
git clone https://github.com/mendableai/firecrawl.git cd firecrawl docker compose up
// Explanation Why It's Useful for Agentic Developers
赋予您的智能体摄取实时网络数据的能力。如果您正在构建一个研究智能体,您可以让它调用您的本地 Firecrawl 实例来获取网页,将其转换为干净的文本,分块,并自主地存储在您的 Qdrant 实例中。
# 5. PostgreSQL 和 pgvector:实现关系型记忆
PostgreSQL dashboard
有时,单独的向量搜索是不够的。您可能需要一个数据库,它能够同时处理结构化数据(如用户配置文件或事务日志)和向量嵌入。PostgreSQL 配合 pgvector 扩展,可以帮助您实现这一点。
您无需运行单独的向量数据库和单独的 SQL 数据库,而是可以获得两者的优势。您可以在表列中存储用户的姓名和年龄,并在另一个列中存储他们的对话嵌入,然后执行混合搜索(例如,“查找纽约用户关于退款的对话”)。
// Initiating a Quick Start
官方 PostgreSQL 镜像默认不包含 pgvector。您需要使用一个特定的镜像,例如来自 pgvector 组织的镜像。
docker run -d --name postgres-pgvector -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword pgvector/pgvector:pg16
// Explanation Why It's Useful for Agentic Developers
这是有状态智能体的终极后端。您的智能体可以将它的记忆和内部状态写入您的应用程序数据所在的同一个数据库,确保一致性并简化您的架构。
# Wrapping Up
您无需庞大的云预算即可构建复杂的 AI 智能体。Docker 生态系统提供了生产级的替代方案,可以在开发者的笔记本电脑上完美运行。
通过将这五个容器添加到您的工作流中,您将拥有:
- 大脑:Ollama 用于本地推理
- 记忆:Qdrant 用于向量搜索
- 双手:n8n 用于工作流自动化
- 眼睛:Firecrawl 用于网络数据抓取
- 存储:PostgreSQL 和 pgvector 用于结构化数据
启动您的容器,将您的 LangChain 或 CrewAI 代码指向 localhost,然后看着您的智能体栩栩如生。
// Further Reading
Shittu Olumide 是一位软件工程师和技术作家,热衷于利用尖端技术来 crafting 动人的叙事,他注重细节,善于简化复杂的概念。您也可以在 Twitter 上找到 Shittu。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区