aimanathar commited on
Commit
7c8d3c5
·
verified ·
1 Parent(s): 5b71c4b

Create server.py

Browse files
Files changed (1) hide show
  1. server.py +61 -0
server.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, Request
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ import requests
4
+ import openai # or use llama API
5
+ import os
6
+ from pydantic import BaseModel
7
+
8
+ app = FastAPI()
9
+
10
+ # Allow Gradio frontend access
11
+ app.add_middleware(
12
+ CORSMiddleware,
13
+ allow_origins=["*"],
14
+ allow_credentials=True,
15
+ allow_methods=["*"],
16
+ allow_headers=["*"],
17
+ )
18
+
19
+ # Load environment variables
20
+ openai.api_key = os.getenv("OPENAI_API_KEY")
21
+
22
+ class FeedbackRequest(BaseModel):
23
+ message: str
24
+
25
+ @app.post("/auto_feedback")
26
+ async def auto_feedback(data: FeedbackRequest):
27
+ user_message = data.message
28
+
29
+ # ---- Step 1: Generate AI response (Llama/OpenAI) ----
30
+ ai_prompt = f"User feedback: {user_message}\nGive short reflection + improvement suggestion."
31
+ try:
32
+ completion = openai.ChatCompletion.create(
33
+ model="gpt-3.5-turbo",
34
+ messages=[{"role": "user", "content": ai_prompt}]
35
+ )
36
+ ai_text = completion.choices[0].message["content"]
37
+ except Exception as e:
38
+ ai_text = f"Error generating feedback: {e}"
39
+
40
+ # ---- Step 2: Send data to Pulse Survey API ----
41
+ pulse_payload = {
42
+ "feedback_text": user_message,
43
+ "ai_feedback": ai_text,
44
+ "source": "HuggingFace_Chatbot"
45
+ }
46
+ try:
47
+ pulse_response = requests.post(
48
+ "https://your-pulse-survey-api.com/api/save_feedback",
49
+ json=pulse_payload,
50
+ timeout=10
51
+ )
52
+ pulse_status = pulse_response.status_code
53
+ except Exception as e:
54
+ pulse_status = f"Failed to send: {e}"
55
+
56
+ # ---- Step 3: Return structured response ----
57
+ return {
58
+ "user_feedback": user_message,
59
+ "ai_response": ai_text,
60
+ "pulse_status": pulse_status
61
+ }