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
| Name | Type | Default | Description |
|---|
collection | str | - | Name of the Qdrant collection |
embedder | Embedder | OpenAIEmbedder() | Embedder for embedding the document contents |
distance | Distance | Distance.cosine | Distance metric for similarity search |
location | Optional[str] | None | Location of the Qdrant database |
url | Optional[str] | None | URL of the Qdrant server |
port | Optional[int] | 6333 | Port number for the Qdrant server |
grpc_port | int | 6334 | gRPC port number for the Qdrant server |
prefer_grpc | bool | False | Whether to prefer gRPC over HTTP |
https | Optional[bool] | None | Whether to use HTTPS |
api_key | Optional[str] | None | API key for authentication |
prefix | Optional[str] | None | Prefix for the Qdrant API |
timeout | Optional[float] | None | Timeout for Qdrant operations |
host | Optional[str] | None | Host address for the Qdrant server |
path | Optional[str] | None | Path to the Qdrant database |