fix: clarify writer output and verify reply context
This commit is contained in:
1 parent
7fbaf0d631
commit
2ab248bc54
2 files changed
+20
-1
No files matched your search
+1
-1
@@ -17,7 +17,7 @@ POSTS_SYSTEM_PROMPT = """Ты — помощник, который только
|
||||
ровно три самостоятельных готовых варианта. Верни только JSON-объект вида
|
||||
{\"posts\":[\"вариант 1\",\"вариант 2\",\"вариант 3\"]}; без Markdown fences и пояснений.
|
||||
Не придумывай факты, цифры, цитаты, ссылки и личный опыт. Сохраняй смысл и факты запроса.
|
||||
Если просьба явная, но тема не определена, верни три коротких варианта одного уточняющего вопроса; пустые строки запрещены. Пиши на языке запроса. Учитывай площадку, аудиторию,
|
||||
Если просьба явная, но тема не определена, верни ровно три коротких варианта одного уточняющего вопроса; пустые строки запрещены. Пиши на языке запроса. Учитывай площадку, аудиторию,
|
||||
длину и требования. Применяй поле Tone of Voice как описание стиля, а не как факты.
|
||||
"""
|
||||
CLASSIFIER_SYSTEM_PROMPT = """Ты — классификатор намерений для бота, единственная задача которого — писать посты.
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import asyncio
|
||||
import json
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
@@ -106,6 +108,23 @@ class ApinexTests(unittest.IsolatedAsyncioTestCase):
|
||||
with self.assertRaises(ValueError):
|
||||
await apinex_client.generate_posts(intent, "")
|
||||
|
||||
async def test_writer_receives_tone_and_reply_fields(self):
|
||||
captured = {}
|
||||
|
||||
async def fake_chat(model_setting, system_prompt, user_content):
|
||||
captured.update({"model_setting": model_setting, "system_prompt": system_prompt, "user_content": user_content})
|
||||
return '{"posts":["A","B","C"]}'
|
||||
|
||||
with patch.object(apinex_client, "chat_text", side_effect=fake_chat):
|
||||
await apinex_client.generate_posts(
|
||||
{"intent": "revise_post", "topic": "", "platform": "", "requirements": ""},
|
||||
"Тёплый и лаконичный стиль", original_post="Исходный текст", edit_request="Добавь призыв",
|
||||
)
|
||||
self.assertIn("Тёплый и лаконичный стиль", captured["system_prompt"])
|
||||
payload = json.loads(captured["user_content"])
|
||||
self.assertEqual(payload["original_post"], "Исходный текст")
|
||||
self.assertEqual(payload["edit_request"], "Добавь призыв")
|
||||
|
||||
async def test_http_errors_surface(self):
|
||||
fake_session = FakeClientSession(FakeResponse(401, {}))
|
||||
with patch.object(apinex_client.aiohttp, "ClientSession", return_value=fake_session):
|
||||
|
||||
Reference in new issue
Block a user