test_groq.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import pytest
  2. from unittest.mock import Mock, patch
  3. from mem0.llms.groq import GroqLLM
  4. @pytest.fixture
  5. def mock_groq_client():
  6. with patch('mem0.llms.groq.Groq') as mock_groq:
  7. mock_client = Mock()
  8. mock_groq.return_value = mock_client
  9. yield mock_client
  10. def test_generate_response_without_tools(mock_groq_client):
  11. llm = GroqLLM()
  12. messages = [
  13. {"role": "system", "content": "You are a helpful assistant."},
  14. {"role": "user", "content": "Hello, how are you?"}
  15. ]
  16. mock_response = Mock()
  17. mock_response.choices = [Mock(message=Mock(content="I'm doing well, thank you for asking!"))]
  18. mock_groq_client.chat.completions.create.return_value = mock_response
  19. response = llm.generate_response(messages)
  20. mock_groq_client.chat.completions.create.assert_called_once_with(
  21. model="llama3-70b-8192",
  22. messages=messages
  23. )
  24. assert response.choices[0].message.content == "I'm doing well, thank you for asking!"
  25. def test_generate_response_with_tools(mock_groq_client):
  26. llm = GroqLLM()
  27. messages = [
  28. {"role": "system", "content": "You are a helpful assistant."},
  29. {"role": "user", "content": "Add a new memory: Today is a sunny day."}
  30. ]
  31. tools = [
  32. {
  33. "type": "function",
  34. "function": {
  35. "name": "add_memory",
  36. "description": "Add a memory",
  37. "parameters": {
  38. "type": "object",
  39. "properties": {
  40. "data": {"type": "string", "description": "Data to add to memory"}
  41. },
  42. "required": ["data"],
  43. },
  44. },
  45. }
  46. ]
  47. mock_response = Mock()
  48. mock_response.choices = [Mock(message=Mock(content="Memory added successfully."))]
  49. mock_groq_client.chat.completions.create.return_value = mock_response
  50. response = llm.generate_response(messages, tools=tools)
  51. mock_groq_client.chat.completions.create.assert_called_once_with(
  52. model="llama3-70b-8192",
  53. messages=messages,
  54. tools=tools,
  55. tool_choice="auto"
  56. )
  57. assert response.choices[0].message.content == "Memory added successfully."