الانتقال إلى المحتوى الرئيسي

LlamaIndexTool

الوصف

صُممت LlamaIndexTool لتكون غلافاً عاماً حول أدوات ومحركات استعلام LlamaIndex، مما يتيح لك الاستفادة من موارد LlamaIndex من حيث خطوط أنابيب RAG/الوكيلية كأدوات للتوصيل بوكلاء CrewAI. تتيح لك هذه الأداة دمج قدرات معالجة واسترجاع البيانات القوية من LlamaIndex في سير عمل CrewAI بسلاسة.

التثبيت

لاستخدام هذه الأداة، تحتاج إلى تثبيت LlamaIndex:
uv add llama-index

خطوات البدء

لاستخدام LlamaIndexTool بفعالية، اتبع الخطوات التالية:
  1. تثبيت LlamaIndex: ثبّت حزمة LlamaIndex باستخدام الأمر أعلاه.
  2. إعداد LlamaIndex: اتبع وثائق LlamaIndex لإعداد خط أنابيب RAG/وكيلي.
  3. إنشاء أداة أو محرك استعلام: أنشئ أداة أو محرك استعلام LlamaIndex تريد استخدامه مع CrewAI.

مثال

توضح الأمثلة التالية كيفية تهيئة الأداة من مكونات LlamaIndex مختلفة:

من أداة LlamaIndex

Code
from crewai_tools import LlamaIndexTool
from crewai import Agent
from llama_index.core.tools import FunctionTool

# Example 1: Initialize from FunctionTool
def search_data(query: str) -> str:
    """Search for information in the data."""
    # Your implementation here
    return f"Results for: {query}"

# Create a LlamaIndex FunctionTool
og_tool = FunctionTool.from_defaults(
    search_data,
    name="DataSearchTool",
    description="Search for information in the data"
)

# Wrap it with LlamaIndexTool
tool = LlamaIndexTool.from_tool(og_tool)

# Define an agent that uses the tool
@agent
def researcher(self) -> Agent:
    '''
    This agent uses the LlamaIndexTool to search for information.
    '''
    return Agent(
        config=self.agents_config["researcher"],
        tools=[tool]
    )

من أدوات LlamaHub

Code
from crewai_tools import LlamaIndexTool
from llama_index.tools.wolfram_alpha import WolframAlphaToolSpec

# Initialize from LlamaHub Tools
wolfram_spec = WolframAlphaToolSpec(app_id="your_app_id")
wolfram_tools = wolfram_spec.to_tool_list()
tools = [LlamaIndexTool.from_tool(t) for t in wolfram_tools]

من محرك استعلام LlamaIndex

Code
from crewai_tools import LlamaIndexTool
from llama_index.core import VectorStoreIndex
from llama_index.core.readers import SimpleDirectoryReader

# Load documents
documents = SimpleDirectoryReader("./data").load_data()

# Create an index
index = VectorStoreIndex.from_documents(documents)

# Create a query engine
query_engine = index.as_query_engine()

# Create a LlamaIndexTool from the query engine
query_tool = LlamaIndexTool.from_query_engine(
    query_engine,
    name="Company Data Query Tool",
    description="Use this tool to lookup information in company documents"
)

طرق الفئة

توفر LlamaIndexTool طريقتي فئة رئيسيتين لإنشاء المثيلات:

from_tool

تنشئ LlamaIndexTool من أداة LlamaIndex.
Code
@classmethod
def from_tool(cls, tool: Any, **kwargs: Any) -> "LlamaIndexTool":
    # Implementation details

from_query_engine

تنشئ LlamaIndexTool من محرك استعلام LlamaIndex.
Code
@classmethod
def from_query_engine(
    cls,
    query_engine: Any,
    name: Optional[str] = None,
    description: Optional[str] = None,
    return_direct: bool = False,
    **kwargs: Any,
) -> "LlamaIndexTool":
    # Implementation details

المعاملات

تقبل طريقة from_query_engine المعاملات التالية:
  • query_engine: مطلوب. محرك استعلام LlamaIndex المراد تغليفه.
  • name: اختياري. اسم الأداة.
  • description: اختياري. وصف الأداة.
  • return_direct: اختياري. ما إذا كان يتم إرجاع الاستجابة مباشرة. القيمة الافتراضية False.

الخلاصة

توفر LlamaIndexTool طريقة قوية لدمج قدرات LlamaIndex في وكلاء CrewAI. من خلال تغليف أدوات ومحركات استعلام LlamaIndex، تمكّن الوكلاء من الاستفادة من وظائف استرجاع ومعالجة البيانات المتطورة، مما يعزز قدرتهم على التعامل مع مصادر المعلومات المعقدة.