sreamlit的qwen简陋问答界面

 后续接入langchain

import streamlit as st
from modelscope import AutoModelForCausalLM, AutoTokenizer
import torch
# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-1_8B-Chat", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen-1_8B-Chat",
    device_map="cpu",
    trust_remote_code=True
).to('cpu').eval()  # 将模型移动到CPU上
model = model.to(torch.device("cpu"))
def generate_response(input_text):
    input_ids = tokenizer.encode(input_text, return_tensors='pt').to('cpu')  # 转换为PyTorch张量并移到CPU
    output = model.generate(input_ids, max_length=100, num_return_sequences=1, pad_token_id=tokenizer.eos_token_id)
    response = tokenizer.decode(output[0], skip_special_tokens=True)
    return response

# 在Streamlit应用中添加输入框和显示区域
st.title("千问7B聊天模型")
user_input = st.text_input("请输入你想说的话:")

if user_input:
    response = generate_response(user_input)
    st.write("模型回复:", response)

在CPU跑,sreamlit跑不动,可以在gradio跑

import os
import gradio as gr


from loguru import logger
history = None
from modelscope import AutoModelForCausalLM, AutoTokenizer, GenerationConfig

tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-1_8B-Chat", revision='master', trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-1_8B-Chat", revision='master', device_map="auto", trust_remote_code=True).eval()
logger.debug(f'模型加载完毕')
def predict(text):
    global history
    response, history = model.chat(tokenizer, text, history=history)
    logger.debug(f'history:{history}')
    history_str = [ f'第{i}轮对话\n'+ '用户:' +history[i][0] +'\n大模型:' +history[i][1] +'\n' for i in range(len(history))]
    return response ,''.join(history_str)

# 写一个界面
iface = gr.Interface(fn=predict, inputs=gr.Textbox(label="本轮输入"), outputs=[gr.Textbox(label="本轮输出"), gr.Textbox(label="全部对话")],
                      title="Qwen-1.8B-Chat")

# 运行界面
iface.launch()

 

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值