LangChain-POC / agents /BookRetriverAgent.py
Eurico149
feat: using a larger model on rag agent
16fb597
import os
from langgraph.checkpoint.memory import InMemorySaver
from tools import get_retrieve_book_context_tool
from langchain.agents import create_agent
from langchain_huggingface import HuggingFaceEndpoint, ChatHuggingFace
from langchain_huggingface import HuggingFaceEmbeddings
from langchain_postgres import PGVector
def get_book_retriver_agent():
vector_store = initiate_vector_store()
agent = generate_agent(vector_store)
return agent
def generate_agent(vector_store):
hf_model = HuggingFaceEndpoint(
repo_id="Qwen/Qwen3-30B-A3B-Instruct-2507",
task="text-generation",
provider="auto",
huggingfacehub_api_token=os.getenv("HF_TOKEN")
)
llm = ChatHuggingFace(llm=hf_model)
tools = [get_retrieve_book_context_tool(vector_store)]
prompt = """
You are a knowledge retriever agent, you must always provide context related answers, using the tools provided.
You must always use this tool for reliable information to answer any query.
Dont try to elaborate your answers, always prioritize data coming from your tools.
"""
return create_agent(
model=llm,
tools=tools,
system_prompt=prompt,
)
def initiate_vector_store():
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2")
return PGVector(
connection=os.getenv("POSTGRE_CONNECTION"),
collection_name="books",
embeddings=embeddings,
)