abdullahalioo commited on
Commit
20d0b59
·
verified ·
1 Parent(s): 194ad81

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -18
app.py CHANGED
@@ -6,25 +6,22 @@ import asyncio
6
 
7
  app = FastAPI()
8
 
9
- async def generate_ai_response(prompt: str):
10
- # Get GitHub token from environment variable
11
- token = os.getenv("GITHUB_TOKEN")
12
- endpoint = "https://models.github.ai/inference"
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"The sample encountered an error: {err}"
39
 
40
  @app.post("/generate")
41
  async def generate_response(request: Request):
42
- data = await request.json()
43
- prompt = data.get("prompt", "what is ai") # Default prompt if none provided
44
-
45
- return StreamingResponse(
46
- generate_ai_response(prompt),
47
- media_type="text/event-stream"
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
+