利用 MongoDB Atlas 进行大模型语义搜索和RAG
from datetime import datetime
from bson.objectid import ObjectId
from atlasclient.client import AtlasClient
# 初始化Atlas客户端
client = AtlasClient('mongodb+srv://username:password@cluster0.mongodb.net/test?retryWrites=true&w=majority')
# 创建一个文档
def create_document(collection, title, text):
document = {
'title': title,
'text': text,
'created_at': datetime.utcnow()
}
return collection.insert_one(document).inserted_id
# 更新文档
def update_document(collection, document_id, title, text):
filter = {'_id': ObjectId(document_id)}
update = {'$set': {'title': title, 'text': text}}
collection.update_one(filter, update)
# 删除文档
def delete_document(collection, document_id):
filter = {'_id': ObjectId(document_id)}
collection.delete_one(filter)
# 获取文档
def get_document(collection, document_id):
filter = {'_id': ObjectId(document_id)}
return collection.find_one(filter)
# 获取所有文档
def get_all_documents(collection):
return list(collection.find())
# 使用示例
collection = client.get_collection('articles')
document_id = create_document(collection, '大型语言模型', 'LLM的最新研究成果')
update_document(collection, document_id, '大型语言模型研究', 'LLM研究进展概述')
delete_document(collection, document_id)
print(get_document(collection, document_id))
print(get_all_documents(collection))
这个代码示例展示了如何使用atlasclient
库与MongoDB Atlas进行交互。它演示了创建、更新、删除和查询文档的基本操作。在实际应用中,你需要替换username
, password
, cluster0
以及数据库名称为你的Atlas配置信息。
评论已关闭