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
四、效果
