123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import os
- from unittest.mock import patch
- import pytest
- from langchain.schema import HumanMessage, SystemMessage
- from embedchain.config import BaseLlmConfig
- from embedchain.llm.anthropic import AnthropicLlm
- @pytest.fixture
- def anthropic_llm():
- os.environ["ANTHROPIC_API_KEY"] = "test_api_key"
- config = BaseLlmConfig(temperature=0.5, model="claude-instant-1", token_usage=False)
- return AnthropicLlm(config)
- def test_get_llm_model_answer(anthropic_llm):
- with patch.object(AnthropicLlm, "_get_answer", return_value="Test Response") as mock_method:
- prompt = "Test Prompt"
- response = anthropic_llm.get_llm_model_answer(prompt)
- assert response == "Test Response"
- mock_method.assert_called_once_with(prompt, anthropic_llm.config)
- def test_get_messages(anthropic_llm):
- prompt = "Test Prompt"
- system_prompt = "Test System Prompt"
- messages = anthropic_llm._get_messages(prompt, system_prompt)
- assert messages == [
- SystemMessage(content="Test System Prompt", additional_kwargs={}),
- HumanMessage(content="Test Prompt", additional_kwargs={}, example=False),
- ]
- def test_get_llm_model_answer_with_token_usage(anthropic_llm):
- test_config = BaseLlmConfig(
- temperature=anthropic_llm.config.temperature, model=anthropic_llm.config.model, token_usage=True
- )
- anthropic_llm.config = test_config
- with patch.object(
- AnthropicLlm, "_get_answer", return_value=("Test Response", {"input_tokens": 1, "output_tokens": 2})
- ) as mock_method:
- prompt = "Test Prompt"
- response, token_info = anthropic_llm.get_llm_model_answer(prompt)
- assert response == "Test Response"
- assert token_info == {
- "prompt_tokens": 1,
- "completion_tokens": 2,
- "total_tokens": 3,
- "total_cost": 1.265e-05,
- "cost_currency": "USD",
- }
- mock_method.assert_called_once_with(prompt, anthropic_llm.config)
|