Improve agent reliability and token efficiency
This commit is contained in:
47
tests/test_ollama.py
Normal file
47
tests/test_ollama.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
from assistant_bot.ollama import OllamaClient
|
||||
|
||||
|
||||
class OllamaClientTests(unittest.TestCase):
|
||||
def test_chat_logs_token_and_timing_metrics(self) -> None:
|
||||
client = OllamaClient("http://localhost:11434")
|
||||
response = {
|
||||
"message": {"content": " готово "},
|
||||
"prompt_eval_count": 2004,
|
||||
"eval_count": 12,
|
||||
"prompt_eval_duration": 91_400_000,
|
||||
"eval_duration": 25_000_000,
|
||||
"total_duration": 130_000_000,
|
||||
"load_duration": 4_000_000,
|
||||
}
|
||||
|
||||
with (
|
||||
patch.object(
|
||||
client,
|
||||
"_request_json",
|
||||
return_value=response,
|
||||
) as request_json,
|
||||
self.assertLogs(
|
||||
"assistant_bot.ollama",
|
||||
level="INFO",
|
||||
) as captured,
|
||||
):
|
||||
answer = client._chat(
|
||||
"qwen3.5:9b",
|
||||
[{"role": "user", "content": "Привет"}],
|
||||
json_mode=True,
|
||||
)
|
||||
|
||||
self.assertEqual(answer, "готово")
|
||||
payload = request_json.call_args.args[2]
|
||||
self.assertEqual(payload["format"], "json")
|
||||
self.assertIn("input_tokens=2004", captured.output[0])
|
||||
self.assertIn("output_tokens=12", captured.output[0])
|
||||
self.assertIn("total_tokens=2016", captured.output[0])
|
||||
self.assertIn("prompt_eval_ms=91.4", captured.output[0])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user