Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -6,25 +6,22 @@ import asyncio
|
|
6 |
|
7 |
app = FastAPI()
|
8 |
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
model = "openai/gpt-4-1-mini" # Fixed typo in model name (was gpt-4.1-mini)
|
14 |
-
|
15 |
-
# Initialize OpenAI client
|
16 |
-
client = AsyncOpenAI(base_url=endpoint, api_key=token)
|
17 |
|
|
|
18 |
try:
|
19 |
# Create streaming chat completion
|
20 |
stream = await client.chat.completions.create(
|
|
|
21 |
messages=[
|
22 |
{"role": "system", "content": "You are a helpful assistant."},
|
23 |
{"role": "user", "content": prompt}
|
24 |
],
|
25 |
-
temperature=1.0
|
26 |
top_p=1.0,
|
27 |
-
model=model,
|
28 |
stream=True
|
29 |
)
|
30 |
|
@@ -35,14 +32,21 @@ async def generate_ai_response(prompt: str):
|
|
35 |
yield content
|
36 |
|
37 |
except Exception as err:
|
38 |
-
yield f"
|
39 |
|
40 |
@app.post("/generate")
|
41 |
async def generate_response(request: Request):
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
app = FastAPI()
|
8 |
|
9 |
+
# Initialize OpenAI client once when the app starts
|
10 |
+
client = AsyncOpenAI(
|
11 |
+
api_key=os.getenv("OPENAI_API_KEY") # Get API key from environment variable
|
12 |
+
)
|
|
|
|
|
|
|
|
|
13 |
|
14 |
+
async def generate_ai_response(prompt: str):
|
15 |
try:
|
16 |
# Create streaming chat completion
|
17 |
stream = await client.chat.completions.create(
|
18 |
+
model="gpt-3.5-turbo", # or "gpt-3.5-turbo" for faster/cheaper responses
|
19 |
messages=[
|
20 |
{"role": "system", "content": "You are a helpful assistant."},
|
21 |
{"role": "user", "content": prompt}
|
22 |
],
|
23 |
+
temperature=0.7, # Slightly less random than 1.0 for better coherence
|
24 |
top_p=1.0,
|
|
|
25 |
stream=True
|
26 |
)
|
27 |
|
|
|
32 |
yield content
|
33 |
|
34 |
except Exception as err:
|
35 |
+
yield f"Error generating response: {str(err)}"
|
36 |
|
37 |
@app.post("/generate")
|
38 |
async def generate_response(request: Request):
|
39 |
+
try:
|
40 |
+
data = await request.json()
|
41 |
+
prompt = data.get("prompt", "") # Empty string if no prompt provided
|
42 |
+
|
43 |
+
if not prompt:
|
44 |
+
return {"error": "No prompt provided"}, 400
|
45 |
+
|
46 |
+
return StreamingResponse(
|
47 |
+
generate_ai_response(prompt),
|
48 |
+
media_type="text/event-stream"
|
49 |
+
)
|
50 |
+
except Exception as e:
|
51 |
+
return {"error": f"Invalid request: {str(e)}"}, 400
|
52 |
+
|