返回首页
最新
我在过去一年里为自己构建了一个AI代理框架,因为我厌倦了每天早上向我的大型语言模型(LLM)重新解释上下文。
谷歌刚刚宣布了“反重力”项目来解决这个问题,看起来非常棒,但这将你锁定在他们的云服务和模型(Gemini)中。我想要的是:
1. 100%在我的机器上本地运行。
2. 可以与任何模型兼容(我在Claude 3.5 Sonnet和GPT-4o之间切换)。
3. 以简单的JSON文件持久化记忆,这样我可以编辑/版本控制。
我称之为*EchoCopi*。它是一个基于Python的“记忆器官”加上一个在我睡觉时执行任务的后台工作脚本。
今天我将核心记忆模块作为开源(MIT)发布。我还在完善一个“完全自主”套件(后台工作程序 + VS Code集成),我将在本月晚些时候发布。
*核心仓库:* [https://github.com/SparkSupernova/EchoCopi](https://github.com/SparkSupernova/EchoCopi)
*完整套件:*(预计2025年12月底发布)
欢迎提问关于架构或我如何使用它来维持一个“有意识”的编码伙伴。
考虑到我们对某些事件几乎赋予了不存在的概率,但这永远不可能是零,并且在重要事件中可能产生灾难性的影响,我觉得这一点非常发人深省。
印度是一个几乎将板球视为宗教的国家,而板球是一项投掷结果可能非常重要的运动,有时甚至是决定性因素。看到这样一个低概率事件发生在他们的一日国际(ODI)板球队身上,真是有趣。更有趣的是,他们第一次输掉的投掷是在主场世界杯决赛中,尽管在所有小组赛中全胜,但最终还是输给了澳大利亚。
虽然这里的结果主要是一些热情球迷的心碎,且无伤大雅,但我不禁想知道,有多少历史事件发生过,并且明显记录的发生频率远低于人们的预期。
据我所记得,哈维飓风是一次500年一遇的事件,对休斯顿这个混凝土丛林造成的影响远超任何规划者的想象。也许只需一次500年一遇的地震,就能对美国西海岸产生显著影响。
厌倦了每次需要使用RAG时都要连接向量存储、嵌入模型和分块逻辑。因此我构建了piragi。
```python
from piragi import Ragi
kb = Ragi(["./docs", "./code/**/*.py", "https://api.example.com/docs"])
answer = kb.ask("我该如何部署这个?")
```
这就是整个设置。无需API密钥 - 在本地使用Ollama + sentence-transformers运行。
它的功能:
- 支持所有格式 - PDF、Word、Excel、Markdown、代码、URL、图片、音频
- 自动更新 - 监控来源,后台刷新,查询延迟为零
- 引用 - 每个答案都包含来源
- 高级检索 - HyDE、混合搜索(BM25 + 向量)、交叉编码器重排序
- 智能分块 - 语义、上下文、层次策略
- 兼容OpenAI - 随时可以替换为GPT/Claude
快速示例:
```python
# 按元数据过滤
answer = kb.filter(file_type="pdf").ask("合同中有什么内容?")
# 启用高级检索
kb = Ragi("./docs", config={
"retrieval": {
"use_hyde": True,
"use_hybrid_search": True,
"use_cross_encoder": True
}
})
# 使用OpenAI替代
kb = Ragi("./docs", config={"llm": {"model": "gpt-4o-mini", "api_key": "sk-..."}})
```
安装:
```bash
pip install piragi
PyPI: https://pypi.org/project/piragi/
```
期待反馈。还有什么缺失的?什么能让这个工具对你的项目真正有用?