geqintan commited on
Commit
c81e769
·
1 Parent(s): f656f34
Files changed (4) hide show
  1. .gitignore +0 -0
  2. Dockerfile +5 -0
  3. app.py +43 -0
  4. requirements.txt +5 -0
.gitignore ADDED
File without changes
Dockerfile ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+ WORKDIR /app
3
+ COPY . .
4
+ RUN pip install -r requirements.txt
5
+ CMD ["python", "app.py"]
app.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, request, jsonify
2
+ import requests
3
+ import os
4
+
5
+ app = Flask(__name__)
6
+ GEMINI_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent"
7
+
8
+ @app.route('/proxy/chat', methods=['POST'])
9
+ def reverse_proxy():
10
+ try:
11
+ # 验证 API 密钥
12
+ api_key = os.getenv("GEMINI_API_KEY")
13
+ if not api_key:
14
+ return jsonify({"error": "Missing API key"}), 500
15
+
16
+ # 转发请求到 Gemini
17
+ headers = {
18
+ "Content-Type": "application/json",
19
+ "x-goog-api-key": api_key
20
+ }
21
+
22
+ # 添加速率限制或自定义逻辑
23
+ payload = {
24
+ "contents": [{
25
+ "parts": [{
26
+ "text": request.json.get("prompt", "")
27
+ }]
28
+ }]
29
+ }
30
+
31
+ response = requests.post(
32
+ GEMINI_URL,
33
+ headers=headers,
34
+ json=payload,
35
+ timeout=30
36
+ )
37
+
38
+ return jsonify(response.json()), response.status_code
39
+
40
+ except requests.exceptions.Timeout:
41
+ return jsonify({"error": "Request timeout"}), 504
42
+ except Exception as e:
43
+ return jsonify({"error": str(e)}), 500
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # requirements.txt
2
+ flask>=2.0.0
3
+ google-generativeai>=0.3.0
4
+ python-dotenv>=0.19.0
5
+ requests>=2.26.0