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 

四、效果

相关推荐
小宋102116 小时前
4 万 Star 的开源 ChatGPT 桌面端:用 Jan 把电脑变成离线 AI 工作站
人工智能·chatgpt·开源·jan
searchforAI16 小时前
啥是LLM?大语言模型从原理到选型的完整科普
人工智能·科技·深度学习·ai·语言模型·知识图谱·agent
我就是全世界16 小时前
具身智能难现“ChatGPT时刻”:缺统一范式,更缺优质数据
人工智能·chatgpt·机器人
NQBJT16 小时前
告别复制粘贴!NQ-Assistant:一键将 DeepSeek/ChatGPT/Claude 回复导出为精美 Word 文档
人工智能
朱大喜17 小时前
数据可视化工具选型:matplotlib、Plotly 与 ECharts
人工智能
染指11101 天前
26.RAG进阶(Advanced RAG)-假设性问题索引
人工智能·windows·agent·rag·advanced rag
闵孚龙1 天前
动态图机制:为什么 PyTorch 调试起来更舒服
人工智能·pytorch·python
甲维斯1 天前
还要啥Codex!DeepSeek接入Zcode远程连接!
人工智能
百胜软件@百胜软件1 天前
百胜软件亮相“AI消费新生活”主题日活动,AI智能运营平台入选市级案例征集
人工智能·生活·零售数字化·数智中台·珠宝行业
专注搞钱1 天前
GPT-4o写设备Recipe:从3小时到10分钟
数据库·人工智能·gpt·半导体