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.pineconedb import PineconeDB
api_key = os.getenv("PINECONE_API_KEY")
index_name = "thai-recipe-index"
vector_db = PineconeDB(
name=index_name,
dimension=1536,
metric="cosine",
spec={"serverless": {"cloud": "aws", "region": "us-east-1"}},
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=False, upsert=True)
def pinecone_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,
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(pinecone_agent)
PineconeDB Params
| Parameter | Type | Default | Description |
|---|
name | str | - | The name of the Pinecone index |
dimension | int | - | The dimension of the embeddings |
spec | Union[Dict, ServerlessSpec, PodSpec] | - | The index spec |
embedder | Optional[Embedder] | None | Embedder instance for creating embeddings (defaults to OpenAIEmbedder if not provided) |
metric | Optional[str] | "cosine" | The metric used for similarity search |
additional_headers | Optional[Dict[str, str]] | None | Additional headers to pass to the Pinecone client |
pool_threads | Optional[int] | 1 | The number of threads to use for the Pinecone client |
namespace | Optional[str] | None | The namespace for the Pinecone index |
timeout | Optional[int] | None | The timeout for Pinecone operations |
index_api | Optional[Any] | None | The Index API object |
api_key | Optional[str] | None | The Pinecone API key |
host | Optional[str] | None | The Pinecone host |
config | Optional[Config] | None | The Pinecone config |
use_hybrid_search | bool | False | Whether to use hybrid search |
hybrid_alpha | float | 0.5 | The alpha value for hybrid search |