yym68686 commited on
Commit
bafce90
·
1 Parent(s): e86d80a

Fix the error of name not defined

Browse files

Add support for configuring CORS middleware

Files changed (2) hide show
  1. main.py +15 -1
  2. request.py +4 -0
main.py CHANGED
@@ -14,7 +14,8 @@ from response import fetch_response, fetch_response_stream
14
 
15
  from typing import List, Dict
16
  from urllib.parse import urlparse
17
- from fastapi.responses import StreamingResponse
 
18
 
19
  @asynccontextmanager
20
  async def lifespan(app: FastAPI):
@@ -27,6 +28,15 @@ async def lifespan(app: FastAPI):
27
 
28
  app = FastAPI(lifespan=lifespan)
29
 
 
 
 
 
 
 
 
 
 
30
  async def process_request(request: RequestModel, provider: Dict):
31
  print("provider: ", provider['provider'])
32
  url = provider['base_url']
@@ -144,6 +154,10 @@ model_handler = ModelRequestHandler()
144
  async def request_model(request: RequestModel, token: str = Depends(verify_api_key)):
145
  return await model_handler.request_model(request, token)
146
 
 
 
 
 
147
  @app.post("/v1/models")
148
  async def list_models(token: str = Depends(verify_api_key)):
149
  models = get_all_models(token)
 
14
 
15
  from typing import List, Dict
16
  from urllib.parse import urlparse
17
+ from fastapi.responses import StreamingResponse, JSONResponse
18
+ from fastapi.middleware.cors import CORSMiddleware
19
 
20
  @asynccontextmanager
21
  async def lifespan(app: FastAPI):
 
28
 
29
  app = FastAPI(lifespan=lifespan)
30
 
31
+ # 配置 CORS 中间件
32
+ app.add_middleware(
33
+ CORSMiddleware,
34
+ allow_origins=["*"], # 允许所有来源
35
+ allow_credentials=True,
36
+ allow_methods=["*"], # 允许所有 HTTP 方法
37
+ allow_headers=["*"], # 允许所有头部字段
38
+ )
39
+
40
  async def process_request(request: RequestModel, provider: Dict):
41
  print("provider: ", provider['provider'])
42
  url = provider['base_url']
 
154
  async def request_model(request: RequestModel, token: str = Depends(verify_api_key)):
155
  return await model_handler.request_model(request, token)
156
 
157
+ @app.options("/v1/chat/completions")
158
+ async def options_handler():
159
+ return JSONResponse(status_code=200, content={"detail": "OPTIONS allowed"})
160
+
161
  @app.post("/v1/models")
162
  async def list_models(token: str = Depends(verify_api_key)):
163
  models = get_all_models(token)
request.py CHANGED
@@ -46,6 +46,7 @@ async def get_gemini_payload(request, engine, provider):
46
 
47
  messages = []
48
  for msg in request.messages:
 
49
  if isinstance(msg.content, list):
50
  content = []
51
  for item in msg.content:
@@ -117,6 +118,7 @@ async def get_gpt_payload(request, engine, provider):
117
 
118
  messages = []
119
  for msg in request.messages:
 
120
  if isinstance(msg.content, list):
121
  content = []
122
  for item in msg.content:
@@ -164,6 +166,7 @@ async def get_openrouter_payload(request, engine, provider):
164
 
165
  messages = []
166
  for msg in request.messages:
 
167
  if isinstance(msg.content, list):
168
  content = []
169
  for item in msg.content:
@@ -247,6 +250,7 @@ async def get_claude_payload(request, engine, provider):
247
 
248
  messages = []
249
  for msg in request.messages:
 
250
  if isinstance(msg.content, list):
251
  content = []
252
  for item in msg.content:
 
46
 
47
  messages = []
48
  for msg in request.messages:
49
+ name = None
50
  if isinstance(msg.content, list):
51
  content = []
52
  for item in msg.content:
 
118
 
119
  messages = []
120
  for msg in request.messages:
121
+ name = None
122
  if isinstance(msg.content, list):
123
  content = []
124
  for item in msg.content:
 
166
 
167
  messages = []
168
  for msg in request.messages:
169
+ name = None
170
  if isinstance(msg.content, list):
171
  content = []
172
  for item in msg.content:
 
250
 
251
  messages = []
252
  for msg in request.messages:
253
+ name = None
254
  if isinstance(msg.content, list):
255
  content = []
256
  for item in msg.content: