幸福不在于你获得了什么,而在于你比他人多获得了什么 是比较出来的
大家好,我是柒八九。一个专注于前端开发技术/Rust
及AI
应用知识分享的Coder
此篇文章所涉及到的技术有
OpenAI
LangChain
Rust/WebAssembly
Web Worker
react+ts+vite
- 配置环境变量(
env
)
因为,行文字数所限,有些概念可能会一带而过亦或者提供对应的学习资料。请大家酌情观看。
前言
在前几天我们不是写了一篇Rust 赋能前端 – 写一个 File 转 Img 的功能的文章吗?主要讲了如何用Rust
解析文件并将其内容用图片形式展示。
其中呢,我们在解析文本的时候,只是做了文本的解析,而没有做针对文件内容的summary处理。
下图是我们之前的需求描述:
正如需求描述要求的,我们可以借助AI
对文本进行Summary
处理。而今天我们就来这个点。
前置条件
由于是演示项目,我们使用的是OpenAI
的模型,而不是我们公司的模型。所以,我们需要有一个API_KEY
用于接入OpenAI API
。
最开始,OpenAI
对于所有新注册的账户都会赠送18美元的免费额度,23年年初开始免费额度由18美元缩减为5美元。
2024年3月21日开始,5美元的API免费额度也取消了,所有新注册的OpenAI/ChatGPT
账号都不再赠送5美元API key余额,全部是No credit grants found
(未找到信用赠款),调用API key
时也会提示insufficient_quota,You exceeded your current quota, please check your plan and billing details.
天无绝人之路,我们还可以使用一些魔法手段来调用OpenAI API
。我们可以使用GPT-API-free
大家用自己的github
账号申请即可。切记,将生成的key
保存起来。
好了,天不早了,干点正事哇。
我们能所学到的知识点
- 配置
OpenAI
环境变量- 改进
Rust
逻辑- 方式1:
OpenAI
- 方式2:
OpenAI
+langchain
1. 配置OpenAI环境变量
我们利用GPT-API-free
生成属于自己的key
之后,我们就可以通过它来访问OpenAI API
了。
因为,OpenAI key
算是一种敏感信息
,我们选择将其放置到项目的环境变量
中。(如果对环境变量不是很了解可以看我们之前的文章环境变量:熟悉的陌生人)
由于我们是用f_cli构建的Vite
前端项目。在初始化时,已经新建了用于存放环境变量的文件。
所以,我们只需要将openai key
放置到对应文件即可。
VITE_API_BASE_URL = https://api.dev.example.com
VITE_API_URL_PREFIX = '/ajax'
VITE_OPENAI_API_KEY=sk-xxx // 这里放置你自己的key
这里还有一点需要说明,在Vite
中配置环境变量并且能够在项目中使用(import.mete.env.xxx
),我们需要以VITE_
开头定义一个变量名。
2. 改进 Rust 逻辑
上一篇文章,在讲Rust
的代码时,不知道大家对下面的逻辑有印象没?
其实呢,这里的本意就是,将输入的文本基于空格进行切割,生成单词数组。但是呢,在实践过程中,我们发现上述的处理方式针对英文环境还是可以的,毕竟英文单词它再长也不能超过canvas
的宽度。
嘿,您猜怎么着,在汉字环境下,由于我们设定的方式是见着空格就切割。但是呢,一段优雅的中文文案,它可以连绵不断,没有空格。这您受得了吗。
就像这样。
所以,我们需要换种文本切割规则。 --见到字符就切割。
我们可以通过遍历text