1tbfree commited on
Commit
41236a1
·
verified ·
1 Parent(s): 0fa7fd4

Create api.py

Browse files
Files changed (1) hide show
  1. api.py +50 -0
api.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, render_template, request, jsonify
2
+ import requests
3
+ import os
4
+
5
+ app = Flask(__name__)
6
+
7
+ # Get the API key from an environment variable (more secure)
8
+ GEMINI_API_KEY = os.environ.get("GEMINI_API_KEY")
9
+ if not GEMINI_API_KEY:
10
+ raise ValueError("No GEMINI_API_KEY environment variable set!")
11
+
12
+ @app.route('/', methods=['GET', 'POST'])
13
+ def index():
14
+ if request.method == 'POST':
15
+ user_message = request.form.get('message')
16
+ if not user_message:
17
+ return "No message provided", 400
18
+
19
+ # Construct the Gemini API request
20
+ url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={GEMINI_API_KEY}"
21
+ headers = {'Content-Type': 'application/json'}
22
+ data = {
23
+ "contents": [{
24
+ "parts": [{"text": user_message}]
25
+ }]
26
+ }
27
+
28
+ try:
29
+ response = requests.post(url, headers=headers, json=data)
30
+ response.raise_for_status() # Raise an exception for bad status codes
31
+
32
+ # Extract text from AI response (adjust based on actual response format)
33
+ ai_response_data = response.json()
34
+
35
+ try:
36
+ ai_text = ai_response_data['candidates'][0]['content']['parts'][0]['text']
37
+ except (KeyError, IndexError):
38
+ ai_text = "Error extracting text from AI response."
39
+
40
+ return render_template('index.html', message=user_message, ai_response=ai_text)
41
+
42
+ except requests.exceptions.RequestException as e:
43
+ print(f"API request failed: {e}")
44
+ return f"API request failed: {e}", 500
45
+
46
+ else:
47
+ return render_template('index.html')
48
+
49
+ if __name__ == '__main__':
50
+ app.run(debug=True) #Remove debug=True for production