mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
Python: Update _provider.py (#2548)
* Update _provider.py * Update test_mem0_context_provider.py * Update test_mem0_context_provider.py Ruff linting fixes * Update test_mem0_context_provider.py --------- Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
Unverified
parent
a81279d960
commit
3cfd34836f
@@ -146,6 +146,10 @@ class Mem0Provider(ContextProvider):
|
||||
messages_list = [messages] if isinstance(messages, ChatMessage) else list(messages)
|
||||
input_text = "\n".join(msg.text for msg in messages_list if msg and msg.text and msg.text.strip())
|
||||
|
||||
# Validate input text is not empty before searching (possible for function approval responses)
|
||||
if not input_text.strip():
|
||||
return Context(messages=None)
|
||||
|
||||
search_response: MemorySearchResponse_v1_1 | MemorySearchResponse_v2 = await self.mem0_client.search( # type: ignore[misc]
|
||||
query=input_text,
|
||||
user_id=self.user_id,
|
||||
|
||||
@@ -406,6 +406,32 @@ class TestMem0ProviderModelInvoking:
|
||||
assert isinstance(context, Context)
|
||||
assert not context.messages
|
||||
|
||||
async def test_model_invoking_function_approval_response_returns_none_instructions(
|
||||
self, mock_mem0_client: AsyncMock
|
||||
) -> None:
|
||||
"""Test invoking with function approval response content messages returns context with None instructions."""
|
||||
from agent_framework import FunctionApprovalResponseContent, FunctionCallContent
|
||||
|
||||
provider = Mem0Provider(user_id="user123", mem0_client=mock_mem0_client)
|
||||
function_call = FunctionCallContent(call_id="1", name="test_func", arguments='{"arg1": "value1"}')
|
||||
message = ChatMessage(
|
||||
role=Role.USER,
|
||||
contents=[
|
||||
FunctionApprovalResponseContent(
|
||||
id="approval_1",
|
||||
function_call=function_call,
|
||||
approved=True,
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
mock_mem0_client.search.return_value = []
|
||||
|
||||
context = await provider.invoking(message)
|
||||
|
||||
assert isinstance(context, Context)
|
||||
assert not context.messages
|
||||
|
||||
async def test_model_invoking_filters_empty_message_text(self, mock_mem0_client: AsyncMock) -> None:
|
||||
"""Test that empty message text is filtered out from query."""
|
||||
provider = Mem0Provider(user_id="user123", mem0_client=mock_mem0_client)
|
||||
|
||||
Reference in New Issue
Block a user