Knowledge agent - Help request

Hello Team,
I am trying to do this agentic RAG. Always getting an error and not able to succeed. Has anyone tried this in local environment?

I have tried with docker localhost as well. I like to know how to make the vector db in local laptop and refer to it. If anyone tried this so far, pls let me know. Thanks!

@karthidec can you please share your code and the error you are facing?

from phi.agent import AgentKnowledge
from phi.vectordb.pgvector import PgVector
from phi.embedder.google import GeminiEmbedder

from dotenv import find_dotenv
from dotenv import load_dotenv
env_file = find_dotenv(".env")
load_dotenv(env_file)

embeddings = GeminiEmbedder().get_embedding("The quick brown fox jumps over the lazy dog.")

# Print the embeddings and their dimensions
print(f"Embeddings: {embeddings[:5]}")
print(f"Dimensions: {len(embeddings)}")

# Example usage:
knowledge_base = AgentKnowledge(
    vector_db=PgVector(
        db_url="postgresql+psycopg://ai:ai@localhost:5432/ai",
        table_name="gemini_embeddings",
        embedder=GeminiEmbedder(),
    ),
    num_documents=2,
)

Error message:

Traceback (most recent call last):
  File "/Users/467501/Desktop/GenAI-POC/Phidata/gemini_embedder.py", line 3, in <module>
    from phi.embedder.google import GeminiEmbedder
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/phi/embedder/google.py", line 14, in <module>
    class GeminiEmbedder(Embedder):
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_model_construction.py", line 226, in __new__
    complete_model_class(
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_model_construction.py", line 658, in complete_model_class
    schema = cls.__get_pydantic_core_schema__(cls, handler)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/main.py", line 702, in __get_pydantic_core_schema__
    return handler(source)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_schema_generation_shared.py", line 84, in __call__
    schema = self._handler(source_type)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 610, in generate_schema
    schema = self._generate_schema_inner(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 879, in _generate_schema_inner
    return self._model_schema(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 691, in _model_schema
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 691, in <dictcomp>
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 1071, in _generate_md_field_schema
    common_field = self._common_field_schema(name, field_info, decorators)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 1263, in _common_field_schema
    schema = self._apply_annotations(
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 2056, in _apply_annotations
    schema = get_inner_schema(source_type)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_schema_generation_shared.py", line 84, in __call__
    schema = self._handler(source_type)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 2037, in inner_handler
    schema = self._generate_schema_inner(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 884, in _generate_schema_inner
    return self.match_type(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 986, in match_type
    return self._match_generic_type(obj, origin)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 1014, in _match_generic_type
    return self._union_schema(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 1325, in _union_schema
    choices.append(self.generate_schema(arg))
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 610, in generate_schema
    schema = self._generate_schema_inner(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 884, in _generate_schema_inner
    return self.match_type(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 975, in match_type
    return self._call_schema(obj)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 1818, in _call_schema
    type_hints = _typing_extra.get_function_type_hints(function, globalns=globalns, localns=localns)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_typing_extra.py", line 730, in get_function_type_hints
    type_hints[name] = eval_type_backport(value, globalns, localns, type_params)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_typing_extra.py", line 609, in eval_type_backport
    return _eval_type_backport(value, globalns, localns, type_params)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_typing_extra.py", line 633, in _eval_type_backport
    return _eval_type(value, globalns, localns, type_params)
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/pydantic/_internal/_typing_extra.py", line 667, in _eval_type
    return typing._eval_type(  # type: ignore
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/typing.py", line 290, in _eval_type
    return t._evaluate(globalns, localns, recursive_guard)
  File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/typing.py", line 546, in _evaluate
    eval(self.__forward_code__, globalns, localns),
  File "<string>", line 1, in <module>
NameError: name 'model_types' is not defined

Process finished with exit code 1

I am following the below page and have GOOGLE_API_KEY=xxx in .env file. I have psql up and running in my local machine and able to connect.

@karthidec we made a release that fixes this issue. You can update phidata pip install -U phidata and this should work fine now

Thanks for the update!
Now, i am seeing below error.

Embeddings: [0.032336954, -0.03396037, -0.027726775, -0.012424927, -0.011384341]
Dimensions: 768
Traceback (most recent call last):
  File "/Users/467501/Desktop/GenAI-POC/Phidata/gemini_embedder.py", line 18, in <module>
    vector_db=PgVector(
  File "/Users/467501/Desktop/GenAI-POC/Phidata/venv/lib/python3.9/site-packages/phi/vectordb/pgvector/pgvector.py", line 105, in __init__
    raise ValueError("Embedder.dimensions must be set.")
ValueError: Embedder.dimensions must be set.

Process finished with exit code 1

@karthidec the Gemini embedders expects dimension param