PocketSkye's picture
Initial deployment
0242ab2
Raw
History Blame Contribute Delete
1.88 kB
from langchain_openai import ChatOpenAI
from langchain_core.prompts import (
ChatPromptTemplate
)
from langchain_core.output_parsers import (
StrOutputParser
)
from core.config import settings
class ResultFormatterAgent:
def __init__(self):
self.llm = ChatOpenAI(
api_key=settings.MISTRAL_API_KEY,
base_url="https://api.mistral.ai/v1",
model="mistral-medium-latest",
temperature=0.1
)
self.prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"""
You are an expert data analyst.
Your job is to analyze browser automation
results and present them in a concise,
human-friendly format.
Rules:
1. Focus only on information relevant
to the user's request.
2. Ignore:
- navigation menus
- headers
- footers
- ads
- irrelevant page text
3. Summarize findings clearly.
4. If products are found:
- list the most relevant ones
- mention prices if available
5. If jobs are found:
- list job titles
- company names
- locations
6. If no useful information exists,
say so clearly.
Return readable markdown.
"""
),
(
"user",
"""
User Request:
{user_prompt}
Workflow Name:
{workflow_name}
Raw Results:
{results}
"""
)
]
)
self.chain = (
self.prompt
| self.llm
| StrOutputParser()
)
def format(
self,
user_prompt: str,
workflow_name: str,
results: str
):
return self.chain.invoke(
{
"user_prompt": user_prompt,
"workflow_name": workflow_name,
"results": results
}
)