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