Spaces:
Paused
Paused
from hugchat import hugchat | |
from hugchat.login import Login | |
from fastapi import FastAPI, HTTPException | |
from pydantic import BaseModel | |
import uvicorn | |
# 登录 Hugging Face 并授权 huggingchat | |
EMAIL = "your email" | |
PASSWD = "your password" | |
cookie_path_dir = "./cookies/" | |
sign = Login(EMAIL, PASSWD) | |
cookies = sign.login(cookie_dir_path=cookie_path_dir, save_cookies=True) | |
# 创建 ChatBot | |
chatbot = hugchat.ChatBot(cookies=cookies.get_dict()) | |
class RequestBody(BaseModel): | |
prompt: str | |
max_tokens: int | |
class Choice(BaseModel): | |
text: str | |
class CompletionResponse(BaseModel): | |
choices: list[Choice] | |
app = FastAPI() | |
async def completions(body: RequestBody): | |
try: | |
response = chatbot.chat(body.prompt, max_length=body.max_tokens).wait_until_done() | |
return CompletionResponse(choices=[Choice(text=response)]) | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
if __name__ == "__main__": | |
uvicorn.run(app, host="0.0.0.0", port=8000) | |