简介
本文记录一次使用langchain调用openai并部署在huggingface上的经历
安装环境依赖
我的python版本是3.9
pip install langchain
pip install openai
代码 app.py
import streamlit as st
# from langchain_community.chat_models import ChatOpenAI
from langchain_openai import ChatOpenAIfrom langchain.schema import (AIMessage,HumanMessage,SystemMessage
)# From here down is all the StreamLit UI.
# 设置页面标题和图标
st.set_page_config(page_title="LangChain Demo", page_icon=":robot:")
# 设置头部区域的内容
st.header("Hey, I'm your Chat GPT")# 如果 st.session_state 还没有 sessionMessages 属性
if "sessionMessages" not in st.session_state:# 给llm一个设定st.session_state.sessionMessages = [SystemMessage(content="You are a helpful assistant.")]def load_answer(question):# sessionMessages 会话消息上下文# 添加上用户的输入st.session_state.sessionMessages.append(HumanMessage(content=question))# 模型处理消息 并 获取模型的输出assistant_answer = chat(st.session_state.sessionMessages)# 添加ai的消息到会话历史st.session_state.sessionMessages.append(AIMessage(content=assistant_answer.content))return assistant_answer.content# 输入框, 获取用户输入
def get_text():input_text = st.text_input("You: ", key=input)return input_text# 定义模型
chat = ChatOpenAI(temperature=0,# api_key="sk-直连key",api_key="sk-中转key",# 报错307 就换一个模型试试# 也可以不指定, 用默认的model_name="gpt-3.5-turbo", # OK
)
# 如果用的是中转key, 设置代理
import os
os.environ["OPENAI_API_BASE"] = '你中转key的代理地址'user_input = get_text()
submit = st.button('Generate')# 如果点了按钮
if submit:# 处理用户的输入, 产生回答response = load_answer(user_input)st.subheader("Answer:")# 回显到页面st.write(response, key=1)
本地测试效果
streamlit run app.py --server.port 8888
部署到huggingface space
提示: 使用huggingface需要魔法
项目创建requirements.txt
huggingface sapce 会根据requirements.txt自动安装依赖
langchain
langchain-openai
huggingface_hub
创建space
点击huggingface右上角的菜单栏里的space
点击create new space按钮, 输入space name, 选择streamlit作为我们展示页面用的包
选择免费的cpu资源, 设置公开或私有部署
点击create按钮
上传文件
点击菜单栏里的file
右侧点击add file -> upload file
拖动文件到虚线框
点击commit
可以看到左上角 space 那行有building的图标, 表示正在构建
进入App, 可以看到在构建
如果构建没有错误, 就点击App, 可以进行使用