huggingface-Inference api简易使用web部署,

我看好多不会用,随便弄个脚本给新手

1. 安装依赖

pip install openai gradio

2. 替换 API 密钥

在脚本中,找到以下代码行:

api_key="替换成你的api"

3.新建脚本文件

nano r1-web.py

复制粘贴下面脚本

import re
from openai import OpenAI
import gradio as gr

# 初始化 OpenAI 客户端,base_url 指向 Hugging Face Together 接口
client = OpenAI(
    base_url="https://huggingface.co/api/inference-proxy/together",
    api_key="替换成你的api"
)

# 全局对话上下文
conversation = [{"role": "system", "content": "You are a helpful assistant."}]

def process_message(user_message, chat_history):
    global conversation
    # 将用户消息加入上下文
    conversation.append({"role": "user", "content": user_message})
    
    # 调用接口,获取回复(同步调用)
    response = client.chat.completions.create(
        model="deepseek-ai/DeepSeek-R1",
        messages=conversation,
        max_tokens=500,
        stream=False
    )
    response_text = response.choices[0].message.content
    # 去除返回内容中的 <think> 标签
    response_text = re.sub(r"</?think>", "", response_text)
    conversation.append({"role": "assistant", "content": response_text})
    
    # 更新对话历史用于页面展示,chat_history 格式为 [(用户, 回复), ...]
    chat_history.append((user_message, response_text))
    return "", chat_history

# 自定义CSS样式,使页面更现代化、居中美观
custom_css = """
body { background-color: #f0f2f5; }
.gradio-container { max-width: 800px; margin: 40px auto; background: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
h1 { text-align: center; }
.gradio-chatbot { font-size: 1.1em; }
.gradio-textbox { border-radius: 5px; }
.gr-button { border-radius: 5px; }
"""

with gr.Blocks(css=custom_css) as demo:
    gr.Markdown("<h1>DeepSeek R1</h1>")
    
    with gr.Row():
        chatbot = gr.Chatbot(elem_id="chatbot", show_label=False)
    
    with gr.Row():
        with gr.Column(scale=9):
            msg = gr.Textbox(placeholder="请输入消息...", show_label=False)
        with gr.Column(scale=1):
            send_btn = gr.Button("发送")
    
    clear_btn = gr.Button("清空对话")
    
    # 绑定事件:输入框按回车和点击发送按钮均触发回复函数
    msg.submit(process_message, [msg, chatbot], [msg, chatbot])
    send_btn.click(process_message, [msg, chatbot], [msg, chatbot])
    # 清空对话按钮:同时清除页面显示和全局对话历史(这里只清空页面记录,若需全局清理,可自行添加逻辑)
    clear_btn.click(lambda: ([], []), None, [chatbot, gr.State([])])

demo.launch(server_name="0.0.0.0", server_port=7860)

3. 运行脚本

在终端中运行脚本:

python r1-web.py
6 个赞

感谢大佬教程

3 个赞

我发现huggingface-Inference变了,现在会转发到其他云推理商服务器,huggingface没用提供r1的推理点,这个是together的,具体费用额度我没去了解,请使用的自行了解,也可以把模型和推理点改了使用其他的,chat模型都可以这样用,方便点在于,你可以托管在任何地方,

新手可以拿代码去给ai改,比如加个框填promot.或者填api,或者url,还可以上传文件图片之类,python非常好玩

2 个赞

感谢佬友的分享,教程很详细

1 个赞