buildersai / app /llm /agents /general.py
Kushal
Initial deployment: FastAPI backend with Docker
f3997d4
Raw
History Blame Contribute Delete
1.8 kB
from typing import Dict, List
import os
from app.llm.client import llm_client
class GeneralAgent:
"""Agent for general construction questions and conversations."""
def __init__(self):
"""Initialize general agent with prompt template."""
prompt_path = os.path.join(
os.path.dirname(__file__),
"..",
"prompts",
"general.txt"
)
with open(prompt_path, "r") as f:
self.system_prompt = f.read()
def answer(self, query: str, chat_history: List[Dict] = None) -> Dict[str, any]:
"""
Generate answer for general construction queries.
Args:
query: User query string
chat_history: Optional chat history for context
Returns:
Dictionary with 'answer' and 'agent' keys
"""
try:
messages = [{"role": "system", "content": self.system_prompt}]
# Add chat history if provided
if chat_history:
messages.extend(chat_history[-6:]) # Last 3 exchanges
messages.append({"role": "user", "content": query})
answer = llm_client.get_completion(
messages=messages,
temperature=0.7,
max_tokens=1024
)
return {
"answer": answer,
"agent": "general"
}
except Exception as e:
print(f"General agent error: {e}")
return {
"answer": "I apologize, but I encountered an error. Please try again.",
"agent": "general"
}
# Global general agent instance
general_agent = GeneralAgent()