GPT之路(七) LangChain AI编成框架入门的第一个demo

news/发布时间2024/5/15 14:02:53

环境:Python 3.11.4, LangChain 0.0.270

1.Langchain 简介

1.1 Python Langchain官方文档

大型语言模型(LLM)正在成为一种具有变革性的技术,使开发人员能够构建以前无法实现的应用程序。然而,仅仅依靠LLM还不足以创建一个真正强大的应用程序。它还需要其他计算资源或知识来源。
Langchain 旨在帮助开发这些类型应用程序,比如:基于文档数据的问答,聊天机器人,代理

2. OpenAI 简介

OpenAI 是LLM生态的模型层最大的玩家之一。大家目前熟知的 GPT-3.5,GPT-4 等模型都是OpenAI的产品。它的API允许开发人员通过简单的API调用来访问这些模型。

3. Langchain与OpenAI

Langchain 作为一个开源框架,提供与OpenAI等语言模型的接口,简化了在应用程序中集成和利用语言模型能力的过程。
4. 开发环境准备

4.1 Jupyter 或者 Colab

https://colab.research.google.com/

https://jupyter.org/

4.2 OpenAI API Key

在Langchain应用中使用OpenAI的模型,我们需要一个API Key。点击https://platform.openai.com/account/api-keys创建你的API Key。

5.第一个 Langchain 应用

代码: 01_langchain_base.ipynb

 
## 安装langchain和openai
%pip install langchain==0.0.270 openai

 

## 引入langchain相关的依赖
## load_dotenv 加载环境变量 即当前文件夹下的.env
## 可以添加配置OPENAI_API_KEY="sk-xxx"
from langchain.chat_models import ChatOpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from dotenv import load_dotenv
import osos.environ.clear()
## 加载环境变量
load_dotenv()llm = ChatOpenAI(temperature=0,openai_api_key=os.environ.get('OPENAI_API_KEY'), model_name="gpt-3.5-turbo")## verbose=True会答应类似debug信息
conversation = ConversationChain(llm=llm, verbose=True, memory=ConversationBufferMemory()
)

 

## 定义一个方法通过langchian的get_openai_callback 在问答的时候打印token的消耗清空
from langchain.callbacks import get_openai_callback
def track_tokens_usage(chain, query):with get_openai_callback() as cb:result = chain.run(query)print(f"prompt token {cb.prompt_tokens}, res token {cb.completion_tokens}, total token {cb.total_tokens}")print(f"successful requests {cb.successful_requests}, total cost {cb.total_cost}USD")return result
##我们的第一个问答
track_tokens_usage(conversation, "帮我做下langchain和Semantic Kernel的竞品分析")

ChatGPT的回答:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/16100167.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

4、Windows用户和组、域

Windows用户和组、域 Windows用户 1、内置用户 内置用户:系统运行必须用到的服务。是默认的、自带的,且不可删除。(分类如下) ①Administrator:管理员账户(主人) ②Guest:来宾账户,权限非常小,连下载的文件保存不了。(客人) 在客户端上,这两个账户是默认禁用;在服…

首家!亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试

近日,在中国信通院“可信数据库”数据库迁移工具专项测试中,湖南亚信安慧科技有限公司(简称:亚信安慧科技)数据库数据同步平台V2.1产品依据《数据库迁移工具能力要求》、结合亚信科技AntDB分布式关系型数据库产品&…

React 开发一个移动端项目(1)

技术栈: 项目搭建:React 官方脚手架 create-react-appreact hooks状态管理:redux 、 redux-thunkUI 组件库:antd-mobileajax请求库:axios路由:react-router-dom 以及 historyCSS 预编译器:sass…

嵌入式MCU学习利器-03-在线做RT-Thread实验

嵌入式MCU学习利器-03-在线做RT-Thread实验 很多学生想要学习RT-Thread,但是苦于没有好的学习工具或者物理开发板而选择放弃。现在福利来了,同学们可以基于我们的仿真平台做嵌入式demo,通过调试功能深入学习RT-Thread的原理。本仿真平台基于STM32F103ZE芯…

在Visual Studio Code中安装JetBrains Mono字体

让我们面对现实吧,JetBrain的Mono是一种漂亮的单行线字体,对于在IDE中展示代码和处理代码都很有用。它有一个增加的X高度,以获得更好的阅读体验,有更好的形状以看到字母列,还有一个开发者友好的各种连接词,…