Spaces:
Sleeping
Sleeping
| """ | |
| A direct implementation using requests to bypass the OpenAI SDK entirely. | |
| This avoids any issues with the OpenAI client configuration. | |
| """ | |
| import requests | |
| import json | |
| def generate_completion(api_key, system_prompt, user_text, model="gpt-4"): | |
| """ | |
| Generate a completion by directly calling the OpenAI API using requests. | |
| This bypasses the OpenAI SDK entirely. | |
| """ | |
| if not api_key or not system_prompt or not user_text: | |
| return "Please provide an API key, select a transformation, and enter some text." | |
| try: | |
| # OpenAI API endpoint | |
| url = "https://api.openai.com/v1/chat/completions" | |
| # Headers with API key | |
| headers = { | |
| "Content-Type": "application/json", | |
| "Authorization": f"Bearer {api_key}" | |
| } | |
| # Request payload | |
| payload = { | |
| "model": model, | |
| "messages": [ | |
| {"role": "system", "content": system_prompt}, | |
| {"role": "user", "content": user_text} | |
| ], | |
| "temperature": 0.7, | |
| "max_tokens": 2000 | |
| } | |
| # Make the API call directly using requests | |
| response = requests.post(url, headers=headers, json=payload) | |
| # Check if the request was successful | |
| if response.status_code == 200: | |
| response_data = response.json() | |
| return response_data["choices"][0]["message"]["content"] | |
| else: | |
| return f"Error: API returned status code {response.status_code}. {response.text}" | |
| except Exception as e: | |
| return f"Error: {str(e)}" | |