Python + Langchain + Streamlit + DashScope 实现一个网页版聊天机器人

Python + Langchain + Streamlit + DashScope 实现一个网页版聊天机器人

零、前置条件

需要在阿里巴巴百炼平台创建一个api key,并写到.env文件

ini 复制代码
# 你的百炼平台key
DASHSCOPE_API_KEY=你的百炼平台key
# 百炼平台url
BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

一、安装依赖

shell 复制代码
pip install streamlit
pip install langchain_openai
pip install python-dotenv

二、完整Python代码

python 复制代码
# 导入streamlit     安装 pip install streamlit
import streamlit as st
# 导入langchain_openai  pip install langchain_openai
from langchain_openai import ChatOpenAI
# 导入 dotenv 读取 .env  pip install python-dotenv
from dotenv import load_dotenv

import os

# 加载 .env 文件
load_dotenv()

chatLLM = ChatOpenAI(
    openai_api_key=os.getenv("DASHSCOPE_API_KEY"),
    openai_api_base=os.getenv("BASE_URL"),
    model="qwen-plus"
)


def chat(prompt: str):
    response = chatLLM.invoke([{'role': 'user', 'content': prompt}])
    return response.content


# 保存聊天信息
if "messages" not in st.session_state:
    st.session_state['messages'] = []

# 标题
st.title("Python + Langchain + Streamlit + DashScope 实现一个网页版聊天机器人")

# 分隔符
st.divider()

# 请输入你的问题
prompt = st.chat_input("请输入你的问题")

if prompt:
    # role : user 、 assistant  ai human
    st.session_state['messages'].append({'role': 'user', 'content': prompt})
    for message in st.session_state['messages']:
        st.chat_message(message['role']).markdown(message['content'])

    with st.spinner("🤔思考中。。。。"):
        response = chat(prompt)
        st.session_state['messages'].append({'role': 'assistant', 'content': response})
        st.chat_message('assistant').markdown(response)

三、启动

shell 复制代码
streamlit run streamlit_langchain_dashscope.py 

四、效果

相关推荐
Qt学视觉1 分钟前
PaddlePaddle-2wget下载安装
c++·人工智能·paddlepaddle
雪花desu3 分钟前
大模型应用评估—— 从 BLEU 到 Agent 综合评价
人工智能·深度学习·神经网络·语言模型
CS创新实验室6 分钟前
课程提纲:计算机视觉——从原理解析到产业落地
人工智能·计算机视觉·cv
EchoL、19 分钟前
【论文阅读】SteganoGAN:High Capacity Image Steganography with GANs
论文阅读·人工智能·笔记·算法
元智启20 分钟前
企业AI智能体:技术突破与生态融合重构产业新格局——从单点突破到系统重构的产业跃迁
人工智能·重构
前端程序猿之路21 分钟前
AI大模型应用之-RAG 全流程
人工智能·python·gpt·语言模型·aigc·mybatis·ai编程
线束线缆组件品替网26 分钟前
Cole Hersee重载环境下汽车线束布线与固定方案全解析
人工智能·汽车·电脑·硬件工程·材料工程
数据皮皮侠AI27 分钟前
数字经济政策工具变量数据(2008-2023)
大数据·数据库·人工智能·笔记·1024程序员节
赫尔·普莱蒂科萨·帕塔30 分钟前
从 “脑梗“ 到 “功夫高手“
数据库·人工智能·agi
雨大王51231 分钟前
AI+工业元宇宙:如何彻底改变传统汽车制造业的运作模式?
人工智能