Skip to content

Commit

Permalink
feat: http docs
Browse files Browse the repository at this point in the history
  • Loading branch information
c121914yu committed Aug 16, 2023
1 parent 72a9307 commit a149b3a
Show file tree
Hide file tree
Showing 11 changed files with 147 additions and 8 deletions.
8 changes: 2 additions & 6 deletions client/src/constants/flow/ModuleTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,6 @@ export const AnswerModule: FlowModuleTemplateType = {
Input_Template_TFSwitch,
{
key: SpecialInputKeyEnum.answerText,
value: '',
type: FlowInputItemTypeEnum.textarea,
valueType: FlowValueTypeEnum.string,
label: '回复的内容',
Expand Down Expand Up @@ -331,8 +330,7 @@ export const ClassifyQuestionModule: FlowModuleTemplateType = {
label: '系统提示词',
description:
'你可以添加一些特定内容的介绍,从而更好的识别用户的问题类型。这个内容通常是给模型介绍一个它不知道的内容。',
placeholder: '例如: \n1. Laf 是一个云函数开发平台……\n2. Sealos 是一个集群操作系统',
value: ''
placeholder: '例如: \n1. Laf 是一个云函数开发平台……\n2. Sealos 是一个集群操作系统'
},
Input_Template_History,
Input_Template_UserChatInput,
Expand Down Expand Up @@ -393,9 +391,7 @@ export const ContextExtractModule: FlowModuleTemplateType = {
label: '提取要求描述',
description: '写一段提取要求,告诉 AI 需要提取哪些内容',
required: true,
placeholder:
'例如: \n1. 你是一个实验室预约助手。根据用户问题,提取出姓名、实验室号和预约时间',
value: ''
placeholder: '例如: \n1. 你是一个实验室预约助手。根据用户问题,提取出姓名、实验室号和预约时间'
},
Input_Template_History,
{
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion docSite/docs/flow-modules/examples/index.md

This file was deleted.

1 change: 1 addition & 0 deletions docSite/docs/flow-modules/examples/lab_assistant.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# 实验室助手
70 changes: 70 additions & 0 deletions docSite/docs/flow-modules/examples/web_search_google.md
Original file line number Diff line number Diff line change
@@ -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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# 实验室助手
Original file line number Diff line number Diff line change
@@ -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 发送到 laf,laf 接收后去进行谷歌搜索,并将搜索的结果通过 prompt 参数返回。
- 返回后,HTTP 模块连接到【AI 对话】的提示词,引导模型进行回答。

0 comments on commit a149b3a

Please sign in to comment.