feat: add generate_text method to AIProvider for non-JSON responses

The AI Chat Builder needs conversational text responses, not JSON-only.
Gemini's generate_json forces response_mime_type='application/json'
which is incompatible. The new generate_text method omits this constraint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-02-27 03:49:35 -05:00
parent b7e48fae0e
commit babfd0c6d9
2 changed files with 81 additions and 3 deletions

View File

@@ -242,7 +242,7 @@ async def start_chat_session(
provider_name = settings.AI_PROVIDER
messages = [{"role": "user", "content": primer}]
response_text, input_tokens, output_tokens = await provider.generate_json(
response_text, input_tokens, output_tokens = await provider.generate_text(
system_prompt=system_prompt,
messages=messages,
max_tokens=1500,
@@ -291,7 +291,7 @@ async def send_message(
]
provider = get_ai_provider()
response_text, input_tokens, output_tokens = await provider.generate_json(
response_text, input_tokens, output_tokens = await provider.generate_text(
system_prompt=system_prompt,
messages=provider_messages,
max_tokens=2000,
@@ -371,7 +371,7 @@ Also provide metadata as a separate JSON object after the tree:
provider = get_ai_provider()
for attempt in range(2): # One try + one retry
response_text, input_tokens, output_tokens = await provider.generate_json(
response_text, input_tokens, output_tokens = await provider.generate_text(
system_prompt=system_prompt,
messages=provider_messages,
max_tokens=8000,