44
55import asyncio
66import json
7+ import logging
78from dataclasses import dataclass
89from typing import Any
910
1011from agentunit .datasets .base import DatasetCase , DatasetSource
1112
1213
14+ logger = logging .getLogger (__name__ )
15+
1316try :
1417 import openai
1518
@@ -114,6 +117,8 @@ async def generate(
114117 if constraints :
115118 prompt += "\n \n Additional 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 } \n Response: { 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 \n Seed 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 } \n Response: { 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