langchain + hugginface入门体验

简介

本文记录一次使用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 ChatOpenAI

from 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, 可以进行使用

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞鸟malred

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值