Improve agent reliability and token efficiency
This commit is contained in:
@@ -16,6 +16,7 @@ class FakeCompletion:
|
||||
self.configuration = None
|
||||
self.messages = None
|
||||
self.timeout = None
|
||||
self.result = [SimpleNamespace(text=" готово ")]
|
||||
|
||||
def configure(self, **kwargs):
|
||||
self.configuration = kwargs
|
||||
@@ -24,7 +25,7 @@ class FakeCompletion:
|
||||
async def run(self, messages, timeout):
|
||||
self.messages = messages
|
||||
self.timeout = timeout
|
||||
return [SimpleNamespace(text=" готово ")]
|
||||
return self.result
|
||||
|
||||
|
||||
class FakeChatCompletions:
|
||||
@@ -131,6 +132,38 @@ class YandexAIClientTests(unittest.IsolatedAsyncioTestCase):
|
||||
["gpt://folder-id/qwen3.6-35b-a3b/latest"],
|
||||
)
|
||||
|
||||
async def test_chat_logs_reported_token_usage(self) -> None:
|
||||
class FakeResult(list):
|
||||
pass
|
||||
|
||||
completion = FakeCompletion()
|
||||
completion.result = FakeResult(
|
||||
[SimpleNamespace(text="готово")]
|
||||
)
|
||||
completion.result.usage = SimpleNamespace(
|
||||
prompt_tokens=120,
|
||||
completion_tokens=8,
|
||||
total_tokens=128,
|
||||
)
|
||||
completions = FakeChatCompletions(completion, self._list_models)
|
||||
sdk = SimpleNamespace(
|
||||
chat=SimpleNamespace(completions=completions),
|
||||
)
|
||||
client = YandexAIClient(folder_id="folder-id", sdk=sdk)
|
||||
|
||||
with self.assertLogs(
|
||||
"assistant_bot.yandex_ai",
|
||||
level="INFO",
|
||||
) as captured:
|
||||
await client.chat(
|
||||
"yandexgpt",
|
||||
[{"role": "user", "content": "Привет"}],
|
||||
)
|
||||
|
||||
self.assertIn("input_tokens=120", captured.output[0])
|
||||
self.assertIn("output_tokens=8", captured.output[0])
|
||||
self.assertIn("total_tokens=128", captured.output[0])
|
||||
|
||||
async def test_list_models_returns_sorted_uris(self) -> None:
|
||||
sdk = SimpleNamespace(
|
||||
chat=SimpleNamespace(
|
||||
|
||||
Reference in New Issue
Block a user