Skip to content

Commit b2f79e2

Browse files
authored
Logging added for prompts, raw responses and parsing errors (#73)
* logging added for prompts, raw responses and parsing errors * formatting done * fix error logging message and formatting.
1 parent 3767aab commit b2f79e2

1 file changed

Lines changed: 23 additions & 6 deletions

File tree

src/agentunit/generators/llm_generator.py

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44

55
import asyncio
66
import json
7+
import logging
78
from dataclasses import dataclass
89
from typing import Any
910

1011
from agentunit.datasets.base import DatasetCase, DatasetSource
1112

1213

14+
logger = logging.getLogger(__name__)
15+
1316
try:
1417
import openai
1518

@@ -114,6 +117,8 @@ async def generate(
114117
if constraints:
115118
prompt += "\n\nAdditional constraints:\n" + "\n".join(f"- {c}" for c in constraints)
116119

120+
logger.debug("Llama generated prompt:\n%s", prompt)
121+
117122
# Generate with Llama
118123
response = await asyncio.to_thread(
119124
self.client.text_generation,
@@ -123,6 +128,7 @@ async def generate(
123128
temperature=self.config.temperature,
124129
return_full_text=False,
125130
)
131+
logger.debug("Llama raw response:\n%s", response)
126132

127133
# Parse JSON response
128134
try:
@@ -154,9 +160,14 @@ async def generate(
154160
cases, name=f"llama_generated_{domain.replace(' ', '_')}"
155161
)
156162

157-
except json.JSONDecodeError as e:
158-
msg = f"Failed to parse generated dataset: {e}\nResponse: {response}"
159-
raise ValueError(msg)
163+
except json.JSONDecodeError:
164+
# msg = f"Failed to parse generated dataset: {e}\nResponse: {response}"
165+
logger.error(
166+
"Failed to parse Llama response JSON. Raw response:\n%s",
167+
response,
168+
exc_info=True,
169+
)
170+
raise
160171

161172
def generate_sync(
162173
self, domain: str, task_description: str, constraints: list[str] | None = None
@@ -251,6 +262,7 @@ async def generate(
251262
if seed_examples:
252263
messages[1]["content"] += f"\n\nSeed examples:\n{json.dumps(seed_examples, indent=2)}"
253264

265+
logger.debug("OpenAI generated prompt (messages):\n%s", json.dumps(messages, indent=2))
254266
# Generate with GPT
255267
response = await self.client.chat.completions.create(
256268
model=self.model,
@@ -261,6 +273,7 @@ async def generate(
261273
)
262274

263275
response_text = response.choices[0].message.content
276+
logger.debug("OpenAI raw response text:\n%s", response_text)
264277

265278
# Parse JSON response
266279
try:
@@ -294,9 +307,13 @@ async def generate(
294307
cases, name=f"openai_generated_{domain.replace(' ', '_')}"
295308
)
296309

297-
except json.JSONDecodeError as e:
298-
msg = f"Failed to parse generated dataset: {e}\nResponse: {response_text}"
299-
raise ValueError(msg)
310+
except json.JSONDecodeError:
311+
logger.error(
312+
"Failed to parse OpenAI response JSON. Raw response:\n%s",
313+
response_text,
314+
exc_info=True,
315+
)
316+
raise
300317

301318
def generate_sync(
302319
self,

0 commit comments

Comments
 (0)