Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.phidata.com/llms.txt

Use this file to discover all available pages before exploring further.

import os
import typer
from typing import Optional
from rich.prompt import Prompt

from phi.agent import Agent
from phi.knowledge.pdf import PDFUrlKnowledgeBase
from phi.vectordb.qdrant import Qdrant

api_key = os.getenv("QDRANT_API_KEY")
qdrant_url = os.getenv("QDRANT_URL")
collection_name = "thai-recipe-index"

vector_db = Qdrant(
collection=collection_name,
url=qdrant_url,
api_key=api_key,
)

knowledge_base = PDFUrlKnowledgeBase(
urls=["https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
vector_db=vector_db,
)

# Comment out after first run

knowledge_base.load(recreate=True, upsert=True)

def qdrant_agent(user: str = "user"):
run_id: Optional[str] = None

    agent = Agent(
        run_id=run_id,
        user_id=user,
        knowledge_base=knowledge_base,
        tool_calls=True,
        use_tools=True,
        show_tool_calls=True,
        debug_mode=True,
        # Uncomment the following line to use traditional RAG
        # add_references_to_prompt=True,
    )

    if run_id is None:
        run_id = agent.run_id
        print(f"Started Run: {run_id}\n")
    else:
        print(f"Continuing Run: {run_id}\n")

    while True:
        message = Prompt.ask(f"[bold] :sunglasses: {user} [/bold]")
        if message in ("exit", "bye"):
            break
        agent.print_response(message)

if **name** == "**main**":
typer.run(qdrant_agent)

Qdrant Params

NameTypeDefaultDescription
collectionstr-Name of the Qdrant collection
embedderEmbedderOpenAIEmbedder()Embedder for embedding the document contents
distanceDistanceDistance.cosineDistance metric for similarity search
locationOptional[str]NoneLocation of the Qdrant database
urlOptional[str]NoneURL of the Qdrant server
portOptional[int]6333Port number for the Qdrant server
grpc_portint6334gRPC port number for the Qdrant server
prefer_grpcboolFalseWhether to prefer gRPC over HTTP
httpsOptional[bool]NoneWhether to use HTTPS
api_keyOptional[str]NoneAPI key for authentication
prefixOptional[str]NonePrefix for the Qdrant API
timeoutOptional[float]NoneTimeout for Qdrant operations
hostOptional[str]NoneHost address for the Qdrant server
pathOptional[str]NonePath to the Qdrant database