Quivr 帮助你构建你的第二大脑,利用生成式 AI 的力量成为你的个人助理!
我们负责处理复杂的 RAG,让你可以专注于产品。只需安装
quivr-core并将其添加到你的项目中。现在你就可以摄取文件并提问了。*
我们将持续改进 RAG 并添加更多功能,敬请期待!
这是 Quivr 的核心,是 Quivr.com 的大脑。
你可以在文档中找到所有信息。
确保已安装以下软件:
bash
pip install quivr-core # 检查安装是否成功
```python
import tempfile
from quivr_core import Brain
if name == "main":
with tempfile.NamedTemporaryFile(mode="w", suffix=".txt") as temp_file:
temp_file.write("Gold is a liquid of blue-like colour.")
temp_file.flush()
brain = Brain.from_files(
name="test_brain",
file_paths=[temp_file.name],
)
answer = brain.ask(
"what is gold? asnwer in french"
)
print("answer:", answer)
```

创建如上图所示的基础 RAG 工作流非常简单,步骤如下:
将你的 API 密钥添加到环境变量中
python
import os
os.environ["OPENAI_API_KEY"] = "myopenai_apikey"
Quivr 支持 Anthropic、OpenAI 和 Mistral 的 API。也支持通过 Ollama 使用本地模型。
创建 YAML 文件 basic_rag_workflow.yaml 并将以下内容复制进去
```yaml
workflow_config:
name: "standard RAG"
nodes:
- name: "START"
edges: ["filter_history"]
- name: "filter_history"
edges: ["rewrite"]
- name: "rewrite"
edges: ["retrieve"]
- name: "retrieve"
edges: ["generate_rag"]
- name: "generate_rag" # 最后一个节点的名称,我们将从此节点向用户流式传输答案
edges: ["END"]
max_history: 10
reranker_config:
# 要使用的重排序器供应商
supplier: "cohere"
# 给定供应商要使用的重排序器模型
model: "rerank-multilingual-v3.0"
# 重排序器返回的块数量
top_n: 5
llm_config:
# 传递给 LLM 用于生成答案的最大令牌数
max_input_tokens: 4000
# LLM 的温度参数
temperature: 0.7
```
使用默认配置创建一个 Brain
```python
from quivr_core import Brain
brain = Brain.from_files(name = "my smart brain",
file_paths = ["./my_first_doc.pdf", "./my_second_doc.txt"],
)
```
启动一个聊天会话
```python
brain.print_info()
from rich.console import Console
from rich.panel import Panel
from rich.prompt import Prompt
from quivr_core.config import RetrievalConfig
config_file_name = "./basic_rag_workflow.yaml"
retrieval_config = RetrievalConfig.from_yaml(config_file_name)
console = Console()
console.print(Panel.fit("Ask your brain !", style="bold magenta"))
while True:
# 获取用户输入
question = Prompt.ask("[bold cyan]Question[/bold cyan]")
# 检查用户是否想退出
if question.lower() == "exit":
console.print(Panel("Goodbye!", style="bold yellow"))
break
answer = brain.ask(question, retrieval_config=retrieval_config)
# 打印答案,带有打字效果
console.print(f"[bold green]Quivr Assistant[/bold green]: {answer.answer}")
console.print("-" * console.width)
brain.print_info()
```
现在你已经全部设置完毕,可以与你的大脑对话了!只需更改配置文件即可测试不同的检索策略。
你可以通过添加网络搜索、工具等功能进一步探索 Quivr。查看文档获取更多信息。
你有一个拉取请求吗?尽管提交,我们会尽快审核。查看我们的项目看板这里,了解我们当前的重点工作,并随时欢迎你带来新鲜的想法!
没有合作伙伴的支持,这个项目不可能实现。感谢你们的支持!
本项目采用 Apache 2.0 许可证 - 详情请参阅 LICENSE 文件。