g2i commited on
Commit
c8fd960
·
verified ·
1 Parent(s): f63da78

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -17
app.py CHANGED
@@ -2,10 +2,12 @@ import requests
2
  import json
3
  import uuid
4
  import time
 
5
  from flask import Flask, request, jsonify, Response
6
 
7
  # 1. 初始化Flask应用
8
  app = Flask(__name__)
 
9
 
10
  # 2. gpt-oss.com API的固定配置 (移除了Cookie)
11
  GPT_OSS_API_URL = "https://api.gpt-oss.com/chatkit"
@@ -22,11 +24,16 @@ BASE_GPT_OSS_HEADERS = {
22
  # 3. 根路由,包含新的使用说明
23
  @app.route('/', methods=['GET'])
24
  def root():
 
 
 
 
25
  return jsonify({
26
  "message": "欢迎使用 GPT-OSS to OpenAI 格式代理API",
27
  "status": "ok",
28
- "authentication_method": "使用动态API Key作为Session",
29
- "api_key_format": "在'Authorization: Bearer'后填入 '你的user_id|你的session令牌'"
 
30
  })
31
 
32
  # 辅助函数:创建标准的OpenAI流式数据块
@@ -37,23 +44,13 @@ def create_openai_chunk(content, model="gpt-oss-120b"):
37
  "choices": [{"index": 0, "delta": {"content": content}, "finish_reason": None}]
38
  }
39
 
40
- # 4. 核心API端点 (包含新的认证逻辑)
41
  @app.route('/v1/chat/completions', methods=['POST'])
42
  def chat_completions_proxy():
43
- # --- 关键改动:解析API Key作为Session ---
44
- auth_header = request.headers.get('Authorization')
45
- if not auth_header or not auth_header.startswith('Bearer '):
46
- return jsonify({"error": "缺少或格式错误的Authorization Header。请提供 'Bearer 你的组合密钥'。"}), 401
47
-
48
- combined_key = auth_header.split('Bearer ')[1]
49
- if '|' not in combined_key:
50
- return jsonify({"error": "API Key格式错误。正确格式为 '你的user_id|你的session令牌'。"}), 401
51
-
52
- try:
53
- user_id, session_token = combined_key.split('|', 1)
54
- except ValueError:
55
- return jsonify({"error": "API Key格式解析失败。请确保格式为 'user_id|session_token'。"}), 401
56
-
57
  # --- 动态构建本次请求的Headers ---
58
  request_headers = BASE_GPT_OSS_HEADERS.copy()
59
  request_headers['cookie'] = f"user_id={user_id}; session={session_token}"
 
2
  import json
3
  import uuid
4
  import time
5
+ import jwt
6
  from flask import Flask, request, jsonify, Response
7
 
8
  # 1. 初始化Flask应用
9
  app = Flask(__name__)
10
+ app.config['SECRET_KEY'] = str(uuid.uuid4()) # 随机生成一个secret key用于JWT
11
 
12
  # 2. gpt-oss.com API的固定配置 (移除了Cookie)
13
  GPT_OSS_API_URL = "https://api.gpt-oss.com/chatkit"
 
24
  # 3. 根路由,包含新的使用说明
25
  @app.route('/', methods=['GET'])
26
  def root():
27
+ # 生成示例user_id和session
28
+ example_user_id = str(uuid.uuid4())
29
+ example_session = jwt.encode({'user_id': example_user_id}, app.config['SECRET_KEY'], algorithm='HS256')
30
+
31
  return jsonify({
32
  "message": "欢迎使用 GPT-OSS to OpenAI 格式代理API",
33
  "status": "ok",
34
+ "authentication_method": "无需认证,系统会自动生成用户ID和会话令牌",
35
+ "example_user_id": example_user_id,
36
+ "example_session_token": example_session
37
  })
38
 
39
  # 辅助函数:创建标准的OpenAI流式数据块
 
44
  "choices": [{"index": 0, "delta": {"content": content}, "finish_reason": None}]
45
  }
46
 
47
+ # 4. 核心API端点 (移除了认证逻辑)
48
  @app.route('/v1/chat/completions', methods=['POST'])
49
  def chat_completions_proxy():
50
+ # 自动生成user_id和session
51
+ user_id = str(uuid.uuid4())
52
+ session_token = jwt.encode({'user_id': user_id}, app.config['SECRET_KEY'], algorithm='HS256')
53
+
 
 
 
 
 
 
 
 
 
 
54
  # --- 动态构建本次请求的Headers ---
55
  request_headers = BASE_GPT_OSS_HEADERS.copy()
56
  request_headers['cookie'] = f"user_id={user_id}; session={session_token}"