Groq + Llama 3 实现本地 RAG:Phidata 框架的应用与性能展示
Phidata 主要通过三个方面来增强大语言模型的能力,这三个维度让 LLM 不再只是“聊天机器”,而是真正能干活、能记住、能懂业务的智能助手。

- :把聊天的历史存进数据库,这样模型就能维持长时间的对话,不会聊着聊着就忘了前面说过什么。上下文理解自然更连贯。
记忆
- :将业务相关的信息塞进向量数据库,模型就有了“行业背景知识”,回答专业问题时不至于胡编乱造。
知识
- :赋予模型执行动作的能力——比如调用API获取数据、发邮件、查数据库。模型不再是只动嘴,还能动手做事。
工具
Phidata 工作流程
整个流程其实很简洁:
- 先创建一个助手实例。
- 给它配上工具(各种功能函数)、知识库(向量数据库)和数据存储(传统数据库)。
- 然后通过 Streamlit、FastAPI 或 Django 之类的工具,把AI应用部署上线。
这里值得多说一句:向量数据库专门用来存向量化的信息,能帮模型做语义搜索和动态内容推荐,比如推荐系统或者智能问答场景里很常见。而传统数据库则负责存用户数据、交互历史、应用状态等,这些数据后续可以用来做分析、生成报告,或者为持续对话提供上下文。
Phidata 官方演示
如果光看文字不过瘾,可以直接试试官方提供的在线演示:
https://hn.aidev.run/
https://arxiv.aidev.run/
推荐 Phidata 的一个重要原因是它更新非常积极,并且支持多种主流大模型,想换哪个就换哪个。具体的代码示例和模型用法可以在 GitHub 仓库里找到:
https://github.com/phidatahq/phidata/tree/main/cookbook/llms
安装 Phidata
装起来很简单,一行命令搞定:
pip install -U phidata
Groq 上使用 Llama3 实现 RAG
官方 Cookbook 里提供了一个完整的 RAG 示例,链接在此:
https://github.com/phidatahq/phidata/tree/main/cookbook/llms/groq/rag
词嵌入(Embeddings)这一步,可以选 Ollama 或者 OpenAI。下面按步骤来。
1. 创建虚拟环境
python3 -m venv ~/.venvs/aienv
source ~/.venvs/aienv/bin/activate
2. 导出你的 Groq API 密钥
export GROQ_API_KEY=***
3. 使用 Ollama 或 OpenAI 生成词嵌入
如果选 Ollama,先安装它,然后运行 nomic-embed-text 模型:
ollama run nomic-embed-text
如果选 OpenAI,导出你的 API 密钥:
export OPENAI_API_KEY=sk-***
4. 安装依赖库
pip install -r cookbook/llms/groq/rag/requirements.txt
5. 运行PgVector
先安装 Docker Desktop。然后可以用辅助脚本运行:
./cookbook/run_pgvector.sh
或者直接使用 docker run 命令:
docker run -d
-e POSTGRES_DB=ai
-e POSTGRES_USER=ai
-e POSTGRES_PASSWORD=ai
-e PGDATA=/var/lib/postgresql/data/pgdata
-v pgvolume:/var/lib/postgresql/data
-p 5532:5432
--name pgvector
phidata/pgvector:16
6. 运行RAG应用
streamlit run cookbook/llms/groq/rag/app.py
打开 localhost:8501 就能看到你的RAG应用。接下来,添加网站链接或者上传PDF文件,然后提出问题就可以测试了。
实际体验
运行 streamlit run 时如果提示缺少 psycopg 或 pgvector,直接用 pip install psycopg 和 pip install pgvector 装上就好。
测试时上传了一份2MB的 Phi-3 技术报告PDF,模型在几秒内就完成了文件嵌入处理。之后问问题,几乎是即时得到答案。这主要归功于 Groq 的高速生成能力,在 llama3-70b-8192 模型下,生成速度能达到 280 Tokens/s。实际使用中发现,用英文提问的效果比中文更好。
对网页内容提问
Phidata 提供的示例代码简洁明了,很容易理解。另外,它还优化了输出格式,即使只是在终端运行简单的 Python 文件,也能看到美观整洁的结果。
结语
总的来说,Phidata 提供了一个强大且灵活的框架,能显著增强大语言模型的能力。通过整合记忆、知识和工具,它不光优化了数据处理和交互效率,也极大地拓宽了应用场景。值得亲自上手试试。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名