Skip to content

Commit 421c3a7

Browse files
add prompt in chat function
1 parent 9a44eeb commit 421c3a7

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

app/agent/agent.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ def get_llm() -> ChatOpenAI:
2929
)
3030

3131

32+
def _get_system_message() -> SystemMessage:
33+
return SystemMessage(content=langfuse.get_prompt("neuralearn_ai_system_prompt").prompt)
34+
35+
3236
def _parse_messages(messages: list[dict]) -> list[BaseMessage]:
3337
parsed = []
3438
for message in messages:
@@ -84,7 +88,7 @@ def ask_agent(question: str) -> str:
8488
logger.info("[%s] Pergunta recebida: %s", trace_id, question)
8589

8690
messages = [
87-
SystemMessage(content=langfuse.get_prompt("neuralearn_ai_system_prompt").prompt),
91+
_get_system_message(),
8892
HumanMessage(content=question),
8993
]
9094

@@ -96,6 +100,6 @@ def ask_agent_with_messages(messages: list[dict]) -> str:
96100
trace_id = str(uuid.uuid4())
97101
logger.info("[%s] Lista de mensagens recebida (total=%d)", trace_id, len(messages))
98102

99-
parsed_messages = _parse_messages(messages)
103+
parsed_messages = [_get_system_message(), *_parse_messages(messages)]
100104
response = _invoke_llm(parsed_messages, trace_id)
101105
return response.content

tests/test_agent.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,12 @@ def test_ask_agent_with_messages_returns_llm_content(mocker):
6363
fake_llm.invoke.return_value = fake_response
6464

6565
mocker.patch.object(agent, "get_llm", return_value=fake_llm)
66+
mocker.patch.object(
67+
agent.langfuse, "get_prompt", return_value=MagicMock(prompt="prompt do sistema")
68+
)
6669
mocker.patch.object(agent, "get_langfuse_handler", return_value=None)
6770

6871
messages = [
69-
{"role": "system", "content": "voce e um assistente"},
7072
{"role": "user", "content": "oi"},
7173
{"role": "assistant", "content": "ola, como posso ajudar?"},
7274
{"role": "user", "content": "qual a capital do Brasil?"},
@@ -76,21 +78,30 @@ def test_ask_agent_with_messages_returns_llm_content(mocker):
7678

7779
assert result == "resposta do llm"
7880
sent_messages = fake_llm.invoke.call_args.args[0]
79-
assert [m.content for m in sent_messages] == [m["content"] for m in messages]
8081
assert sent_messages[0].type == "system"
82+
assert sent_messages[0].content == "prompt do sistema"
83+
assert [m.content for m in sent_messages[1:]] == [m["content"] for m in messages]
8184
assert sent_messages[1].type == "human"
8285
assert sent_messages[2].type == "ai"
8386
assert sent_messages[3].type == "human"
8487

8588

86-
def test_ask_agent_with_messages_rejects_invalid_role():
89+
def test_ask_agent_with_messages_rejects_invalid_role(mocker):
90+
mocker.patch.object(
91+
agent.langfuse, "get_prompt", return_value=MagicMock(prompt="prompt do sistema")
92+
)
93+
8794
messages = [{"role": "foo", "content": "oi"}]
8895

8996
with pytest.raises(ValueError):
9097
agent.ask_agent_with_messages(messages)
9198

9299

93-
def test_ask_agent_with_messages_requires_content():
100+
def test_ask_agent_with_messages_requires_content(mocker):
101+
mocker.patch.object(
102+
agent.langfuse, "get_prompt", return_value=MagicMock(prompt="prompt do sistema")
103+
)
104+
94105
messages = [{"role": "user"}]
95106

96107
with pytest.raises(ValueError):

0 commit comments

Comments
 (0)