扫码阅读
手机扫码阅读

AIGC|详解Langflow集成AzureOpenAI,实践步骤奉上↑

316 2024-03-14
AI

本期摘要

langflow是一个LangChain UI,它提供了一种交互界面来使用LangChain,通过简单的拖拽即可搭建自己的实验、大数据模型flow。

由于目前langflow的流程中不支持AzureOpenAI,因此本文将介绍如何在langflow中引入AzureopenAI。

分享者

付天愿 | 高级后端开发工程师

一枚擅长后端开发的钓鱼爱好者

01

AzureOpenAI介绍

Azure OpenAI是一种云服务,帮助企业和开发人员快速构建、训练和部署AI应用程序。该服务运行在Microsoft Azure上,因此用户无需购买专门的硬件或软件。它利用OpenAI强大的语言模型(如GPT-3、Codex、Embeddings等),通过REST API进行调用,并能够轻松调整以适应特定任务。


最重要的是,Azure OpenAI允许用户申请API_KEY,以便在国内直接使用大模型进行训练。相比之下,使用openAI可能需要魔法环境,而Azure OpenAI更加稳定。

02

langflow集成支持AzureOpenAI

首先在配置文件中增加AzureOpenAI的配置,让其可以在前端页面组件中展示出来,如下图所示:

重新启动后可以页面的LLms中看到AzureOpenAI组件,接下来分析页面节点组件初始化过程,页面节点组件初始化接口如下所示:

//langflow集成AzureOpenAI联通改造流程:

1:分析langflow引入langchain的python库实现openAI的连接

openAI实现方式与AzureOpenAI的区别

# openAI初始化大模型llm import os
 
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY from langchain.llms import OpenAI from langchain import PromptTemplate, LLMChain
template = """Question: {question}
 
Answer: Let's think step by step.""" prompt = PromptTemplate(template=template, input_variables=["question"])
llm = OpenAI()

langflow初始化openAI只需要OPENAI_API_KEY即可,AzureOpenAI需要参数OPENAI_API_TYPE 现有的组件配置不支持此参数,会导致AzureOpenAI初始化失败,因此langflow暂未开放集成AzureopenAI。

langflow改造instantiate_based_on_type 通用初始化llm组件的地方需要根据AzureOpenAI特殊处理,添加AzureOpenAI的instantiate方法即可。

# 核心初始化AzureOpenAI方法 def instantiate_azureOpenAI(class_object, params):
    return class_object(deployment_name=params.get('model_name'), model_name=params.get('model_name')
                        ,openai_api_key=params.get('openai_api_key'),openai_api_base=params.get('openai_api_base')
                        ,openai_api_type="azure",openai_api_version=params.get('openai_api_version'))

03

效果演示

启动langflow前后端服务,访问前端服务界面 导入Basic Chat 模板flow 替换open的llms 如下所示:

按照要求输入OpenAI API key、OpenAI API Base、OpenAI API Type、OpenAI API version ,并填入相关内容。

接下来可以进行问题提问,输入问题即可使用AzureOpenAI,无需使用VPN代理稍等片刻出现如下结果。

至此,全部操作已完成,有兴趣的小伙伴可以自己试一试。

原文链接: http://mp.weixin.qq.com/s?__biz=Mzg5MzUyOTgwMQ==&mid=2247526372&idx=1&sn=7db5b7f26ab9cf0a8cbee1af24207c66&chksm=c02f5c42f758d55439f7473ba0f07860f6dd4831922012849146d6d01e5a0340f3563720e7e3#rd