Spaces:
Sleeping
Sleeping
| import g4f | |
| import json | |
| def generate_response(prompt): | |
| try: | |
| # panggil api g4f untuk mendapatkan response | |
| response = g4f.ChatCompletion.create( | |
| model="o3-mini", | |
| provider=g4f.Provider.Liaobots, # pilih provider yang didukung | |
| messages=[ | |
| {"role": "system", "content": ""}, | |
| {"role": "user", "content": prompt}, | |
| ], | |
| ) | |
| print("raw response:", response) # debug: lihat response asli | |
| # jika response berupa string, coba parse sebagai json | |
| if isinstance(response, str): | |
| try: | |
| response = json.loads(response) | |
| except json.JSONDecodeError: | |
| return {"response": response} # anggap response itu teks biasa | |
| # pastikan response adalah dict dan memiliki key 'choices' | |
| if isinstance(response, dict) and "choices" in response: | |
| choices = response["choices"] | |
| if isinstance(choices, list) and choices: | |
| first_choice = choices[0] | |
| if isinstance(first_choice, dict) and "message" in first_choice and "content" in first_choice["message"]: | |
| return {"response": first_choice["message"]["content"]} | |
| else: | |
| return {"response": "error: key 'message' atau 'content' tidak ditemukan di response"} | |
| else: | |
| return {"response": "error: 'choices' kosong atau tidak berbentuk list"} | |
| else: | |
| return {"response": "error: format response tidak sesuai, tidak ada key 'choices'"} | |
| except Exception as e: | |
| return {"response": f"error: exception saat memproses response: {str(e)}"} | |