@@ -24,15 +24,21 @@ def post(self, request):
2424 return Response ({'error' : 'Content is required' }, status = status .HTTP_400_BAD_REQUEST )
2525
2626 try :
27+ print (f"[AI Generate] Provider: { provider } , Type: { question_type } , Count: { count } , Content length: { len (content )} " )
28+
2729 if provider == 'claude' :
2830 questions = self ._generate_with_claude (content , question_type , count , difficulty , examples )
2931 elif provider == 'openai' :
3032 questions = self ._generate_with_openai (content , question_type , count , difficulty , examples )
3133 else :
3234 return Response ({'error' : 'Invalid provider' }, status = status .HTTP_400_BAD_REQUEST )
3335
36+ print (f"[AI Generate] Success: { len (questions )} questions generated" )
3437 return Response ({'questions' : questions })
3538 except Exception as e :
39+ import traceback
40+ print (f"[AI Generate] Error: { str (e )} " )
41+ traceback .print_exc ()
3642 return Response ({'error' : str (e )}, status = status .HTTP_500_INTERNAL_SERVER_ERROR )
3743
3844 def _build_prompt (self , content , question_type , count , difficulty , examples ):
@@ -162,15 +168,31 @@ def _generate_with_claude(self, content, question_type, count, difficulty, examp
162168 client = anthropic .Anthropic (api_key = settings .ANTHROPIC_API_KEY )
163169 prompt = self ._build_prompt (content , question_type , count , difficulty , examples )
164170
165- message = client .messages .create (
166- model = "claude-sonnet-4-20250514" ,
167- max_tokens = 4096 ,
168- messages = [
169- {"role" : "user" , "content" : prompt }
170- ]
171- )
171+ print (f"[Claude] Sending request, prompt length: { len (prompt )} " )
172+
173+ try :
174+ message = client .messages .create (
175+ model = "claude-sonnet-4-20250514" ,
176+ max_tokens = 4096 ,
177+ messages = [
178+ {"role" : "user" , "content" : prompt }
179+ ]
180+ )
181+ except Exception as api_error :
182+ print (f"[Claude] API error: { api_error } " )
183+ raise ValueError (f"Claude API error: { str (api_error )} " )
184+
185+ print (f"[Claude] Response received, stop_reason: { message .stop_reason } " )
186+
187+ if not message .content :
188+ raise ValueError ("Claude returned empty content" )
172189
173190 response_text = message .content [0 ].text
191+ print (f"[Claude] Response text length: { len (response_text ) if response_text else 0 } " )
192+
193+ if not response_text :
194+ raise ValueError ("Claude returned empty text in response" )
195+
174196 return self ._parse_json_response (response_text )
175197
176198 def _generate_with_openai (self , content , question_type , count , difficulty , examples ):
0 commit comments