通过streamlit实现一个简单的ChatGPT对话界面

之前在某宝上购买的open ai的key一直是中转的。商家提供了一个对话界面,直接在设置中粘贴购买的key就可以实现对话。

但是今天下午购买了直连的key。中转的对话界面就不能使用了。只能通过代码获取回答,自己日常使用很不方便。

因此做了一个简单的streamlit界面用于对话。

主要内容是:调用api获取回答;构建对话界面;将回答传到界面上实现流式输出

界面长这样。

使用到的包。

import sys
import streamlit as st
import os
from langchain.chat_models import ChatOpenAI
from get_response import ask_and_get_answer
from openai import OpenAI

构建对话界面:

 st.subheader('GPT-4o 🤖')
    #  定义侧边栏。在此部分内的所有控件都会被添加到侧边栏。
    with st.sidebar:

        api_key = st.text_input('OpenAI API Key:', type='pass
### 构建和优化Streamlit问答界面 #### 使用合适的布局提升用户体验 为了提供良好的用户体验,合理安排页面结构至关重要。可以利用`st.columns()`或`st.expander()`来创建多列或多层展开式的输入区域,使界面更加整洁有序[^1]。 ```python import streamlit as st with st.form(key='my_form'): col1, col2 = st.columns(2) with col1: question_input = st.text_area(label="请输入您的问题", height=100) submit_button = st.form_submit_button('提交') ``` #### 实现即时响应机制提高互动效率 为了让用户感受到更流畅的操作体验,在接收到用户的提问之后应立即给出回应提示,并尽快展示处理进度条或者加载动画,表明程序正在积极工作之中[^3]。 ```python if submit_button: with st.spinner('查询中...'): # 假设这里有一个耗时操作 time.sleep(2) answer_output = "这是模拟的回答内容" st.success(f'找到答案如下:\n{answer_output}') ``` #### 集成高级自然语言处理模型改善回答质量 引入强大的NLP工具包如Hugging Face Transformers等预训练好的大型语言模型作为后台支持引擎,能够显著改进系统的理解能力和回复准确性。 ```python from transformers import pipeline qa_pipeline = pipeline("question-answering") def get_answer(question_text): context = """这里是用于上下文理解的一段文字""" result = qa_pipeline(question=question_text, context=context) return result['answer'] if 'answer' not in st.session_state and submit_button: st.session_state.answer = get_answer(question_input) if 'answer' in st.session_state: st.write(st.session_state.answer) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值