译者 | 李睿
审校 | 重楼
LangChAIn是当今最热门的开发平台之一,用于创建使用生成式人工智能的应用程序 , 但它只适用于Python/ target=_blank class=infotextkey>Python和JAVAScript 。对于想要使用LangChain的R程序员 , 该怎么办?
幸运的是,可以使用非常基本的Python代码在LangChain中做很多有用的事情 。而且,多亏有了reticulate R包 , R和RStudio用户可以在他们熟悉的环境中编写和运行Python,包括在Python和R之间来回传递对象和数据 。
在这个LangChain教程中,将展示如何使用Python和R来访问LangChain和OpenAI API 。这将允许使用大型语言模型(LLM)来查询ggplot2的300页PDF文档 。第一个示例查询:“如何在图形的x轴上旋转文本?”
以下是介绍这个过程的每个步骤:
(1)如果还没有运行,需要将系统设置为运行Python和reticulate 。
(2)将ggplot2 PDF文档文件导入为纯文本的LangChain对象 。
(3)将文本分割成可以被大型语言模型读取的更小的部分,因为这些模型对一次读取的数量有限制 。而长达300页的文本将超出OpenAI公司的限制 。
(4)使用LLM为每个文本块创建“嵌入”,并将它们全部保存在数据库中 。嵌入是一串数字,表示多维空间中文本的语义 。
(5)为用户的问题创建一个嵌入,然后将问题嵌入与文本中的所有现有问题进行比较 。查找并检索最相关的文本片段 。
(6)只将那些相关的文本部分输入到像GPT-3.5这样的LLM中,并要求它生成答案 。
如果用户要遵循示例并使用OpenAI API,则需要一个API密钥 。可以在platform.openai.com注册 。如果愿意使用另一个模型,LangChain有组件可以为许多LLM构建链,而不仅仅是OpenAI公司的组件 , 因此用户不会被某个LLM提供商锁定 。
LangChain拥有可以轻松处理这些步骤的组件,特别是如果企业对其默认值感到满意的话 。这就是为什么它变得如此受欢迎的原因 。
以下开始逐步实施:
步骤1:设置系统在RStudio中运行Python如果用户已经运行了Python和reticulate,则可以跳到下一步 。否则 , 确保在系统上有最新版本的Python 。有很多方法可以安装Python,但只需要从python.org网站中下载就可以 。然后,按照通常的方式使用install.packages("reticulate")安装reticulate R包 。
如果已经安装了Python , 但是reticulate找不到它,可以使用命令use_Python(“/path/to/your/Python”) 。
library(reticulate)virtualenv_create(envname = "langchain_env", packages = c( "langchain", "openai", "pypdf", "bs4", "python-dotenv", "chromadb", "TikToken")) # Only do this once
注意,用户可以随意命名其环境 。如果需要在创建环境后安装软件包,使用py_install() , 如下所示:
py_install(packages = c( "langchain", "openai", "pypdf", "bs4", "python-dotenv", "chromadb", "tiktoken"), envname = "langchain_env")
与在R中一样,用户应该只需要安装一次软件包,而不是每次需要使用环境时都安装软件包 。另外,不要忘记激活虚拟环境:
use_virtualenv("langchain_env")
每次回到项目时,在开始运行Python代码之前,都要这样做 。
用户可以测试其Python环境是否正在使用
reticulate::py_run_string('print("Hello, world!") ')
如果用户喜欢的话,可以采用Python变量设置OpenAI API密钥 。因为已经在一个R环境变量中有了它,通常使用R来设置OpenAI API密钥 。用户可以使用reticulate的r_to_py()函数将任何R变量保存为python友好的格式,包括环境变量:
api_key_for_py <- r_to_py(Sys.getenv("OPENAI_API_KEY"))
它接受OPENAI_API_KEY环境变量,确保它是Python友好的,并将其存储在一个新变量中:api_key_for_py(同样,可以采用任何名称) 。
最后,准备好编写代码!
步骤2:下载并导入PDF文件将在主项目目录下创建一个新的docs子目录,并使用R在那里下载文件 。
# Create the directory if it doesn't existif(!(dir.exists("docs"))) { dir.create("docs")}# Download the filedownload.file("https://cran.r-project.org/web/packages/ggplot2/ggplot2.pdf", destfile = "docs/ggplot2.pdf", mode = "wb")
接下来是Python代码 , 将该文件导入为包含内容和元数据的LangChain文档对象 。将为此创建一个名为prep_docs.py的新Python脚本文件 。可以像上面那样使用py_run_string()函数在R脚本中继续运行Python代码 。然而 , 如果用户正在处理一个更大的任务,那么就不太理想,因为将会在诸如代码完成之类的事项上面临失败 。
推荐阅读
- 如何收集和准备AI模型的训练数据
- 耳机插进电脑检测到了,但是麦克风没声音,应该如何解决?
- 如何补交养老保险在手机上操作 如何补交养老保险
- 了解手机定位功能,如何不用对方同意查到对方位置
- 新研究警示:过度使用手机会降低大脑认知功能
- 鲜花如何保鲜 花泥鲜花如何保鲜
- word能咋的转换为pdf,如何将word转换为PDF
- 夹板木材如何选择 夹板一般用什么木头
- 如何挑选砧板 如何挑选砧板材质
- 电脑上如何打开pdf文件格式