创建一个访问openai格式接口的gradio页面

from typing import Iterator
import gradio as gr

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-p', '--client_port', type=int, default='8005')
args = parser.parse_args()
client_port = args.client_port


from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://127.0.0.1:8000/v1"
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)


def login(username, password):
     # 校验代码
     return True

def generate(
    message: str,
    chat_history: list,
    request:gr.Request,
    max_new_tokens: int = 4096,
) -> Iterator[str]:
    model = "deepseek-coder-33B-instruct-AWQ"
    system_prompt = "You are an AI programming assistant, utilizing the Deepseek Coder model, developed by Deepseek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer."
    messages = [ {"role": "system", "content": system_prompt}]
    messages = []
    for human, assistant in chat_history:
        messages.append({"role": "user", "content": human })
        messages.append({"role": "assistant", "content":assistant})
    messages.append({"role": "user", "content": message})
    chat_response = client.chat.completions.create(
    user=request.username,
    model=model,
    messages=messages,
    max_tokens=max_new_tokens,
    stop=['<|BOT|>','<|EOT|>','<|im_end|>','<|endoftext|>'],
    #top_p=top_p,
    stream=True
    )

    outputs=''
    for chunk in chat_response:
        bot_message = chunk.choices[0].delta.content if chunk.choices[0].delta.content is not None else ""
        outputs += bot_message
        yield outputs


chat_interface = gr.ChatInterface(
    concurrency_limit=10,
    fn=generate,
    title="Deepseek代码助手",
    theme="soft",
    examples=[
        ["用python给我写一个快排代码"], ["什么是二叉树"],["nginx允许跨域吗"]]
)


if __name__ == "__main__":
    chat_interface.queue().launch(server_name="0.0.0.0",
    server_port=client_port,root_path="/chat_code_web",
    auth=login)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值