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 typer
from rich.prompt import Prompt
from typing import Optional
from phi.agent import Agent
from phi.knowledge.pdf import PDFUrlKnowledgeBase
from phi.vectordb.lancedb import LanceDb
# type: ignore
db_url = "/tmp/lancedb"
knowledge_base = PDFUrlKnowledgeBase(
urls=["https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
vector_db=LanceDb(table_name="recipes", uri=db_url),
)
# Comment out after first run
knowledge_base.load(recreate=False)
def pdf_agent(user: str = "user"):
run_id: Optional[str] = None
agent = Agent(
run_id=run_id,
user_id=user,
knowledge_base=knowledge_base,
use_tools=True,
show_tool_calls=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(pdf_agent)
LanceDb Params
| Parameter | Type | Default | Description |
|---|
uri | str | - | The URI to connect to. |
table | LanceTable | - | The Lance table to use. |
table_name | str | - | The name of the table to use. |
connection | DBConnection | - | The database connection to use. |
api_key | str | - | The API key to use. |
embedder | Embedder | - | The embedder to use. |
search_type | SearchType | vector | The search type to use. |
distance | Distance | cosine | The distance to use. |
nprobes | int | - | The number of probes to use. More Info |
reranker | Reranker | - | The reranker to use. More Info |
use_tantivy | bool | - | Whether to use tantivy. |