jiang1002 commited on
Commit
6e6d483
·
verified ·
1 Parent(s): 35d4a3d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -22
app.py CHANGED
@@ -1,27 +1,36 @@
1
  import gradio as gr
2
- import os
3
- import requests
 
 
4
 
5
- def predict(message, history):
6
- # 这里保持你之前的调用逻辑
7
- api_url = "https://router.huggingface.co/jiang1002/chatglm-6b-adgen"
8
- headers = {"Authorization": f"Bearer {os.environ.get('HF_TOKEN')}"}
9
- payload = {"inputs": message, "options": {"wait_for_model": True}}
10
-
11
- try:
12
- response = requests.post(api_url, headers=headers, json=payload, timeout=60)
13
- if response.status_code == 200:
14
- result = response.json()
15
- # 兼容处理返回结果
16
- return result[0].get("generated_text") if isinstance(result, list) else str(result)
17
- else:
18
- return f"Error: {response.status_code}"
19
- except Exception as e:
20
- return f"发生错误: {str(e)}"
21
 
22
- # 创建界面
23
- demo = gr.ChatInterface(fn=predict, title="ChatGLM 广告生成助手")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
  if __name__ == "__main__":
26
- # 必须设置 server_name 和 server_port,否则 Docker 内部访问不到
27
- demo.launch(server_name="0.0.0.0", server_port=7860)
 
1
  import gradio as gr
2
+ from fastapi import FastAPI, Request
3
+ import uvicorn
4
+ from transformers import AutoTokenizer, AutoModel
5
+ import torch
6
 
7
+ # 初始化 FastAPI
8
+ app = FastAPI()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
+ # 加载模型 (这是为了让你的 Space 真正拥有处理能力)
11
+ model_path = "jiang1002/chatglm-6b-adgen"
12
+ tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
13
+ model = AutoModel.from_pretrained(model_path, trust_remote_code=True).float()
14
+ model.eval()
15
+
16
+ # --- 核心:给别人用的 API 接口 ---
17
+ @app.post("/generate")
18
+ async def generate(request: Request):
19
+ data = await request.json()
20
+ prompt = data.get("text", "")
21
+ # 调用本地加载好的模型生成
22
+ response, _ = model.chat(tokenizer, prompt, history=[])
23
+ return {"result": response}
24
+
25
+ # --- 同时也保留网页界面方便你自己测 ---
26
+ def chat_func(msg, hist):
27
+ res, _ = model.chat(tokenizer, msg, history=hist)
28
+ return res
29
+
30
+ demo = gr.ChatInterface(fn=chat_func, title="ChatGLM API Server")
31
+
32
+ # 把 Gradio 挂载到 FastAPI 上
33
+ app = gr.mount_gradio_app(app, demo, path="/")
34
 
35
  if __name__ == "__main__":
36
+ uvicorn.run(app, host="0.0.0.0", port=7860)