feat: http docs

This commit is contained in:
archer
2023-08-16 16:35:08 +08:00
parent 72a9307eb3
commit a149b3a2ce
11 changed files with 147 additions and 8 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

View File

@@ -1 +0,0 @@
# Wait for completion

View File

@@ -0,0 +1 @@
# 实验室助手

View File

@@ -0,0 +1,70 @@
# Google Search
![](./imgs/google_search_1.png)
![](./imgs/google_search_2.png)
As shown in the above images, with the help of the HTTP module, you can easily integrate a search engine. Here, we take calling the Google Search API as an example.
## Register Google Search API
[Refer to this article to register the Google Search API](https://zhuanlan.zhihu.com/p/174666017)
## Create a Google Search interface
[Here, we use laf to quickly implement an interface, which can be written and published without deployment. Click to open laf cloud](https://laf.dev/), make sure to open the POST request method.
```ts
import cloud from '@lafjs/cloud';
const googleSearchKey = '';
const googleCxId = '';
const baseurl = 'https://www.googleapis.com/customsearch/v1';
export default async function (ctx: FunctionContext) {
const { searchKey } = ctx.body;
if (!searchKey) {
return {
prompt: ''
};
}
try {
const { data } = await cloud.fetch.get(baseurl, {
params: {
q: searchKey,
cx: googleCxId,
key: googleSearchKey,
c2coff: 1,
start: 1,
num: 5,
dateRestrict: 'm[1]'
}
});
const result = data.items.map((item) => item.snippet).join('\n');
return {
prompt: `Here are the search results from Google: ${result}`,
searchKey: `\nSearch term: ${searchKey}`
};
} catch (err) {
console.log(err);
return {
prompt: ''
};
}
}
```
## Workflow
Drag out a FastGPT workflow as shown in the image, where the request URL of the HTTP module is the interface address, and the input and output parameters are as follows:
**Input**
```
searchKey: Search Key Word
```
**Output**
```
prompt: Search Result
```
- The HTTP module will send the searchKey to laf, and laf will perform a Google search based on the received input. It will then return the search results through the prompt parameter.
- After receiving the response, the HTTP module connects to the prompt of the "AI Dialogue" to guide the model in providing an answer.

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

View File

@@ -0,0 +1,73 @@
# 谷歌搜索
![](./imgs/google_search_1.png)
![](./imgs/google_search_2.png)
如上图,利用 HTTP 模块,你可以轻松的外接一个搜索引擎。这里以调用 google search api 为例。
## 注册 google search api
[参考这篇文章,注册 google search api](https://zhuanlan.zhihu.com/p/174666017)
## 写一个 google search 接口
[这里用 laf 快速实现一个接口,即写即发布,无需部署。点击打开 laf cloud](https://laf.dev/),务必打开 POST 请求方式。
```ts
import cloud from '@lafjs/cloud';
const googleSearchKey = '';
const googleCxId = '';
const baseurl = 'https://www.googleapis.com/customsearch/v1';
export default async function (ctx: FunctionContext) {
const { searchKey } = ctx.body;
if (!searchKey) {
return {
prompt: ''
};
}
try {
const { data } = await cloud.fetch.get(baseurl, {
params: {
q: searchKey,
cx: googleCxId,
key: googleSearchKey,
c2coff: 1,
start: 1,
num: 5,
dateRestrict: 'm[1]'
}
});
const result = data.items.map((item) => item.snippet).join('\n');
return { prompt: `这是 google 搜索的结果: ${result}`, searchKey: `\n搜索词为: ${searchKey}` };
} catch (err) {
console.log(err);
return {
prompt: ''
};
}
}
```
## 编排
按上图拖出一个 FastGPT 编排组合,其中 HTTP 模块的请求地址为接口地址,出入参如下:
**入参**
```
searchKey: 搜索词
```
**出参**
```
prompt: 搜索结果
```
- HTTP 模块会将 searchKey 发送到 laflaf 接收后去进行谷歌搜索,并将搜索的结果通过 prompt 参数返回。
- 返回后HTTP 模块连接到【AI 对话】的提示词,引导模型进行回答。