تخطَّ إلى المحتوى

أداة البحث المتجهي في MongoDB

تنفيذ استعلامات التشابه المتجهي على مجموعات MongoDB Atlas. تدعم أدوات مساعدة لإنشاء الفهارس وإدراج النصوص المضمنة بكميات كبيرة.

يدعم MongoDB Atlas البحث المتجهي الأصلي. اعرف المزيد: https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-overview/

قم بالتثبيت مع إضافة MongoDB:

Terminal window
pip install crewai-tools[mongodb]

أو

Terminal window
uv add crewai-tools --extra mongodb
  • connection_string (str, مطلوب)
  • database_name (str, مطلوب)
  • collection_name (str, مطلوب)
  • vector_index_name (str, الافتراضي vector_index)
  • text_key (str, الافتراضي text)
  • embedding_key (str, الافتراضي embedding)
  • dimensions (int, الافتراضي 1536)
  • query (str, مطلوب): استعلام بلغة طبيعية لتضمينه والبحث عنه.
from crewai_tools import MongoDBVectorSearchTool
tool = MongoDBVectorSearchTool(
connection_string="mongodb+srv://...",
database_name="mydb",
collection_name="docs",
)
print(tool.run(query="how to create vector index"))

أدوات مساعدة لإنشاء الفهارس

Section titled “أدوات مساعدة لإنشاء الفهارس”

استخدم create_vector_search_index(...) لإنشاء فهرس بحث متجهي في Atlas بالأبعاد والتشابه الصحيحين.

  • فشل المصادقة: تأكد من أن قائمة الوصول إلى عناوين IP في Atlas تسمح بخادمك وأن سلسلة الاتصال تتضمن بيانات الاعتماد.
  • الفهرس غير موجود: أنشئ الفهرس المتجهي أولاً؛ يجب أن يتطابق الاسم مع vector_index_name.
  • عدم تطابق الأبعاد: قم بمحاذاة أبعاد نموذج التضمين مع dimensions.
from crewai_tools import MongoDBVectorSearchTool
tool = MongoDBVectorSearchTool(
database_name="example_database",
collection_name="example_collection",
connection_string="<your_mongodb_connection_string>",
)
from crewai_tools import MongoDBVectorSearchConfig, MongoDBVectorSearchTool
query_config = MongoDBVectorSearchConfig(limit=10, oversampling_factor=2)
tool = MongoDBVectorSearchTool(
database_name="example_database",
collection_name="example_collection",
connection_string="<your_mongodb_connection_string>",
query_config=query_config,
vector_index_name="my_vector_index",
)
rag_agent = Agent(
name="rag_agent",
role="You are a helpful assistant that can answer questions with the help of the MongoDBVectorSearchTool.",
goal="...",
backstory="...",
tools=[tool],
)

تحميل قاعدة البيانات مسبقاً وإنشاء الفهرس

Section titled “تحميل قاعدة البيانات مسبقاً وإنشاء الفهرس”
import os
from crewai_tools import MongoDBVectorSearchTool
tool = MongoDBVectorSearchTool(
database_name="example_database",
collection_name="example_collection",
connection_string="<your_mongodb_connection_string>",
)
# Load text content from a local folder and add to MongoDB
texts = []
for fname in os.listdir("knowledge"):
path = os.path.join("knowledge", fname)
if os.path.isfile(path):
with open(path, "r", encoding="utf-8") as f:
texts.append(f.read())
tool.add_texts(texts)
# Create the Atlas Vector Search index (e.g., 3072 dims for text-embedding-3-large)
tool.create_vector_search_index(dimensions=3072)
from crewai import Agent, Task, Crew
from crewai_tools import MongoDBVectorSearchTool
tool = MongoDBVectorSearchTool(
connection_string="mongodb+srv://...",
database_name="mydb",
collection_name="docs",
)
agent = Agent(
role="RAG Agent",
goal="Answer using MongoDB vector search",
backstory="Knowledge retrieval specialist",
tools=[tool],
verbose=True,
)
task = Task(
description="Find relevant content for 'indexing guidance'",
expected_output="A concise answer citing the most relevant matches",
agent=agent,
)
crew = Crew(
agents=[agent],
tasks=[task],
verbose=True,
)
result = crew.kickoff()