Pinecone

Code

1from os import getenv
2
3from kern.agent import Agent
4from kern.knowledge.knowledge import Knowledge
5from kern.vectordb.pineconedb import PineconeDb
6
7api_key = getenv("PINECONE_API_KEY")
8index_name = "thai-recipe-index"
9
10vector_db = PineconeDb(
11 name=index_name,
12 dimension=1536,
13 metric="cosine",
14 spec={"serverless": {"cloud": "aws", "region": "us-east-1"}},
15 api_key=api_key,
16)
17
18knowledge = Knowledge(
19 name="My Pinecone Knowledge Base",
20 description="This is a knowledge base that uses a Pinecone Vector DB",
21 vector_db=vector_db,
22)
23
24knowledge.insert(
25 name="Recipes",
26 url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf",
27 metadata={"doc_type": "recipe_book"},
28)
29
30agent = Agent(
31 knowledge=knowledge,
32 search_knowledge=True,
33 read_chat_history=True,
34)
35
36agent.print_response("How do I make pad thai?", markdown=True)
37
38vector_db.delete_by_name("Recipes")
39# or
40vector_db.delete_by_metadata({"doc_type": "recipe_book"})

Usage

Set up your virtual environment

1uv venv --python 3.12
2source .venv/bin/activate
1uv venv --python 3.12
2.venv\Scripts\activate

Install dependencies

1uv pip install -U pinecone-client pypdf openai kern-ai

Set environment variables

1export PINECONE_API_KEY="your-pinecone-api-key"
2export OPENAI_API_KEY=xxx

Run Agent

1python cookbook/08_knowledge/vector_db/pinecone_db/pinecone_db.py