【Python技术】使用langchain、fastapi、gradio生成一个简单的智谱AI问答界面

前几天,智谱AI BigModel开放平台宣布:GLM-4-Flash 大模型API完全免费了,同时开启了GLM-4-Flash 限时免费微调活动。对想薅免费大模型羊毛的个人玩家,这绝对是个好消息,我们不仅可以免费使用BigModel开放平台上的GLM-4-Flash,也可以免费调用GLM-4-Flash的API了。

智谱AI 这次格局大了,不得不支持下。 开放平台地址:https://bigmodel.cn/。

在这里插入图片描述

之前写过一篇python大模型应用框架langchain的demo,当时使用的阿里云。【Python技术】AI编程新手快速入门学习LangChain大模型框架 , 今天用免费的CLM-4-FLASH写个简单例子测试下。

代码如下,替换掉apikey就可以运行

import gradio as gr
from fastapi import FastAPI
from langchain_openai import ChatOpenAI
from langchain.prompts import (
    ChatPromptTemplate,
    MessagesPlaceholder,
    SystemMessagePromptTemplate,
    HumanMessagePromptTemplate,
)
from langchain.chains import LLMChain
from langchain.memory import ConversationBufferMemory

# Initialize FastAPI
app = FastAPI()

# Initialize LangChain components
llm = ChatOpenAI(
    temperature=0.95,
    model="glm-4-flash",
    openai_api_key="your-api-key-here",
    openai_api_base="https://open.bigmodel.cn/api/paas/v4/"
)

prompt = ChatPromptTemplate(
    messages=[
        SystemMessagePromptTemplate.from_template(
            "You are a nice chatbot having a conversation with a human."
        ),
        MessagesPlaceholder(variable_name="chat_history"),
        HumanMessagePromptTemplate.from_template("{question}")
    ]
)

memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
conversation = LLMChain(
    llm=llm,
    prompt=prompt,
    verbose=True,
    memory=memory
)

# Define chat function
def chat(message, history):
    response = conversation.invoke({"question": message})
    return response['text']

# Create Gradio interface
iface = gr.ChatInterface(chat)

# Mount Gradio app to FastAPI
app = gr.mount_gradio_app(app, iface, path="/")

# Run the app
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

运行效果

在这里插入图片描述

这个代码写的比较简单,容易好懂,用了langchain、fastapi、 gradio、uvicorn等技术。

AI解释一下这段代码,方便没用过大模型应用的同学阅读。

1、初始化FastAPI应用:用于构建API服务。

2、配置LangChain组件:

3、初始化ChatOpenAI模型(glm-4-flash)。

4、定义对话提示模板。

5、设置对话历史记录存储。

6、定义聊天函数:接收消息和历史记录,返回模型生成的回复。

7、创建Gradio界面:提供用户交互界面。

8、将Gradio集成到FastAPI:使Web应用可通过HTTP访问。

9、添加获取事实的API接口:根据主题返回相关事实信息。

10、运行应用:启动服务器监听8000端口。

原文链接:【Python技术】使用langchain、fastapi、gradio生成一个简单的AI问答界面

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值