Skip to content

Commit

Permalink
Update laf module document (#1154)
Browse files Browse the repository at this point in the history
* Yjl (#74)

* FIX: Query Extension 历史记录拼接不正确 (#1144)

* FIX: Query Extension 历史记录拼接不正确

* add .text

* fix: tts modal close and rerank doc

* laf doc

---------

Co-authored-by: Hexiao Zhang <[email protected]>

* update emb script

* feat: add route push to laf params

* perf: logo size

* README

* README

* laf doc icon

---------

Co-authored-by: Hexiao Zhang <[email protected]>
  • Loading branch information
c121914yu and zhanghx0905 authored Apr 8, 2024
1 parent 1fbc407 commit adfad8f
Show file tree
Hide file tree
Showing 11 changed files with 91 additions and 67 deletions.
34 changes: 20 additions & 14 deletions .github/imgs/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@ https://github.com/labring/FastGPT/assets/15308462/7d3a38df-eb0e-4388-9250-2409b

- 🌍 海外版:[fastgpt.in](https://fastgpt.in/)

fastgpt.run 域名会弃用。

| | |
| ---------------------------------- | ---------------------------------- |
| ![Demo](./.github/imgs/intro1.png) | ![Demo](./.github/imgs/intro2.png) |
Expand All @@ -53,23 +51,21 @@ fastgpt.run 域名会弃用。

`1` 应用编排能力
- [x] 提供简易模式,无需操作编排
- [x] 对话下一步指引
- [x] 工作流编排
- [x] 源文件引用追踪
- [x] 模块封装,实现多级复用
- [x] 混合检索 & 重排
- [x] Tool 模块
- [ ] 嵌入 [Laf](https://github.com/labring/laf),实现在线编写 HTTP 模块
- [ ] 嵌入 [Laf](https://github.com/labring/laf),实现在线编写 HTTP 模块。初版已完成。
- [ ] 插件封装功能,支持低代码渲染

`2` 知识库能力
- [x] 多库复用,混用
- [x] chunk 记录修改和删除
- [x] 支持知识库单独设置向量模型
- [x] 源文件存储
- [x] 支持手动输入,直接分段,QA 拆分导入
- [x] 支持txt,md,html,pdf,docx,pptx,csv,xlsx (有需要更多可 PR file loader)
- [x] 支持 txt,md,html,pdf,docx,pptx,csv,xlsx (有需要更多可 PR file loader)
- [x] 支持 url 读取、CSV 批量导入
- [x] 混合检索 & 重排
- [ ] 支持文件阅读器
- [ ] 更多的数据预处理方案

Expand All @@ -90,6 +86,8 @@ fastgpt.run 域名会弃用。
- [x] Iframe 一键嵌入
- [x] 聊天窗口嵌入支持自定义 Icon,默认打开,拖拽等功能
- [x] 统一查阅对话记录,并对数据进行标注
`6` 其他
- [x] 支持语音输入和输出 (可配置语音输入语音回答)

<a href="#readme">
<img src="https://img.shields.io/badge/-返回顶部-7d09f1.svg" alt="#" align="right">
Expand Down
Binary file added docSite/assets/imgs/laf4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docSite/assets/imgs/laf4.webp
Binary file not shown.
6 changes: 3 additions & 3 deletions docSite/content/docs/development/custom-models/bge-rerank.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ weight: 910

3 个模型代码分别为:

1. [https://github.com/labring/FastGPT/tree/main/python/reranker/bge-reranker-base](https://github.com/labring/FastGPT/tree/main/python/reranker/bge-reranker-base)
2. [https://github.com/labring/FastGPT/tree/main/python/reranker/bge-reranker-large](https://github.com/labring/FastGPT/tree/main/python/reranker/bge-reranker-large)
3. [https://github.com/labring/FastGPT/tree/main/python/reranker/bge-rerank-v2-m3](https://github.com/labring/FastGPT/tree/main/python/reranker/bge-rerank-v2-m3)
1. [https://github.com/labring/FastGPT/tree/main/python/bge-rerank/bge-reranker-base](https://github.com/labring/FastGPT/tree/main/python/bge-rerank/bge-reranker-base)
2. [https://github.com/labring/FastGPT/tree/main/python/bge-rerank/bge-reranker-large](https://github.com/labring/FastGPT/tree/main/python/bge-rerank/bge-reranker-large)
3. [https://github.com/labring/FastGPT/tree/main/python/bge-rerank/bge-rerank-v2-m3](https://github.com/labring/FastGPT/tree/main/python/bge-rerank/bge-rerank-v2-m3)

### 3. 安装依赖

Expand Down
80 changes: 46 additions & 34 deletions docSite/content/docs/workflow/modules/laf.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,53 @@
---
title: "Laf 函数调用"
description: "FastGPT Laf 函数调用模块介绍"
icon: "Laf"
icon: "code"
draft: false
toc: true
weight: 355
---

## 特点

- 可重复添加
- 有外部输入
- 手动配置
- 触发执行
- 核中核模块

![](/imgs/laf1.webp)

## 介绍

Laf 函数调用模块可以调用 Laf 账号下的云函数,其操作与 HTTP 模块相同,可以理解为封装了请求 Laf 云函数的 http 模块,值得注意的不同之处为
`Laf 函数调用`模块可以调用 Laf 账号下的云函数,其工作原理与 HTTP 模块相同,有以下特殊特征

- 只能使用 POST 请求
- 请求自带系统参数 systemParams
- 请求自带系统参数 systemParams,无需通过变量传递。

## 具体使用
## 绑定 Laf 账号

要能调用 Laf 云函数,首先需要绑定 Laf 账号和应用,并且在应用中创建云函数。
要调用 Laf 云函数,首先需要绑定 Laf 账号和应用,并且在应用中创建云函数。

Laf 提供了 PAT(访问凭证) 来实现 Laf 平台外的快捷登录,可以访问 [Laf 文档](https://doc.Laf.run/zh/cli/#%E7%99%BB%E5%BD%95)查看详细如何获取 PAT。

在获取到 PAT 后,我们可以进入 fastgpt 的账号页或是直接在高级编排中使用 Laf 模块,填入 PAT 验证后,选择需要绑定的应用(应用需要是 Running 状态),即可调用 Laf 云函数。
在获取到 PAT 后,我们可以进入 FastGPT 的`账号页`或是在高级编排中的 `Laf模块` 对 Laf 账号进行绑定。Laf 账号是团队共享的,仅团队管理员可配置。

填入 PAT 验证后,选择需要绑定的应用(应用需要是 Running 状态),即可调用该应用下的云函数。

> 如果需要解绑则取消绑定后,点击“更新”即可
![](/imgs/laf2.webp)

为了更便捷地调用 Laf 云函数,可以参照下面的代码编写云函数,以便 openAPI 识别
## 编写云函数

```ts
import cloud from '@Lafjs/cloud'
Laf 云函数拥有根据 interface 自动生成 OpenAPI 的能力,可以参照下面的代码编写云函数,以便自动生成 OpenAPI 文档。

interface IRequestBody {
username: string // 用户名
passwd?: string // 密码
}
`Laf模块`可以根据 OpenAPI 文档,自动识别出入参,无需手动添加数据类型。如果不会写 TS,可忽略,手动在 FastGPT 中添加参数即可。

```ts
import cloud from '@lafjs/cloud'

interface IResponse {
message: string // 返回信息
data: any // 返回数据
interface IRequestBody { // 自定义入参,FastGPT 传入的均为POST请求。
data1: string // 必填参数
data2?: string // 可选参数
}

type extendedBody = IRequestBody & {
systemParams?: {
appId: string,
interface RequestProps extends IRequestBody { // 完整入参,这个无需改动。
systemParams: { // 这是FastGPT默认会传递过来的参数
appId: string,
variables: string,
histories: string,
cTime: string,
Expand All @@ -62,27 +56,45 @@ type extendedBody = IRequestBody & {
}
}

interface IResponse { // 响应内容
message: string // 必返回的参数
msg?: string; // 可选的返回参数
}

export default async function (ctx: FunctionContext): Promise<IResponse> {
const body: extendedBody = ctx.body;
const {
data1,
data2,
systemParams
}: RequestProps = ctx.body;

console.log(body.systemParams.chatId);
console.log({
data1,
data2,
systemParams
});

return {
message: 'ok',
data: '查找到用户名为' + body.username + '的用户'
msg: 'msg'
};
}
```

当然,你也可以在 Laf 平台上选择 fastgpt_template,快速生成该函数模板。

具体操作可以是,进入 Laf 的函数页面,新建函数(注意 fastgpt 只会调用 post 请求的函数),然后复制上面的代码或者点击更多模板搜索“fastgpt”,使用下面的模板

![](/imgs/laf3.webp)

这样就能直接通过点击“同步参数”,一键填写输入输出
## FastGPT 中使用

在选择函数后,可以通过点击“同步参数”,自动同步云函数的参数到 FastGPT 中。当然也可以手动添加,手动修改后的参数不会被“同步参数”修改。

![](/imgs/laf4.png)

![](/imgs/laf4.webp)
## 使用注意事项

当然也可以手动添加,手动修改后的参数不会被“同步参数”修改
### 调用报错

## 作用
Laf 账号是绑定在团队上的,团队的成员可以轻松调用已经编写好的云函数
先在 laf 中调试函数,看是否正常调用。可以通过 console.log,打印入参,将入参放在 Laf 测试页面的 Body 中进行测试。
7 changes: 6 additions & 1 deletion projects/app/src/components/core/app/TTSSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ const TTSSelect = ({
[audioSpeechModelList, onChange, value]
);

const onCloseTTSModal = useCallback(() => {
cancelAudio();
onClose();
}, [cancelAudio, onClose]);

return (
<Flex alignItems={'center'}>
<MyIcon name={'core/app/simpleMode/tts'} mr={2} w={'20px'} />
Expand Down Expand Up @@ -100,7 +105,7 @@ const TTSSelect = ({
</>
}
isOpen={isOpen}
onClose={onClose}
onClose={onCloseTTSModal}
w={'500px'}
>
<ModalBody px={[5, 16]} py={[4, 8]}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ const NodeLaf = (props: NodeProps<FlowModuleItemType>) => {
);

if (!lafFunction) return;
const url = `${feConfigs.lafEnv}/app/${lafData?.lafApp?.appid}/function${lafFunction?.path}`;
const url = `${feConfigs.lafEnv}/app/${lafData?.lafApp?.appid}/function${lafFunction?.path}?templateid=fastgptflow`;
window.open(url, '_blank');
}}
>
Expand Down
13 changes: 8 additions & 5 deletions projects/app/src/components/support/laf/LafAccountModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { useUserStore } from '@/web/support/user/useUserStore';
import type { LafAccountType } from '@fastgpt/global/support/user/team/type.d';
import { postLafPat2Token, getLafApplications } from '@/web/support/laf/api';
import { getErrText } from '@fastgpt/global/common/error/utils';
import { getDocPath } from '@/web/common/system/doc';

const LafAccountModal = ({
defaultData = {
Expand Down Expand Up @@ -100,7 +101,7 @@ const LafAccountModal = ({
<Box fontSize={'sm'} color={'myGray.500'}>
<Box>{t('support.user.Laf account intro')}</Box>
<Box textDecoration={'underline'}>
<Link href={`https://doc.laf.run/zh/`} isExternal>
<Link href={getDocPath('/docs/workflow/modules/laf/')} isExternal>
{t('support.user.Laf account course')}
</Link>
</Box>
Expand Down Expand Up @@ -171,12 +172,14 @@ const LafAccountModal = ({
)}
</ModalBody>
<ModalFooter>
<Button mr={3} variant={'whiteBase'} onClick={onClose}>
<Button variant={'whiteBase'} onClick={onClose}>
{t('common.Close')}
</Button>
<Button isLoading={isUpdating} onClick={handleSubmit((data) => onSubmit(data))}>
{t('common.Update')}
</Button>
{appid && (
<Button ml={3} isLoading={isUpdating} onClick={handleSubmit((data) => onSubmit(data))}>
{t('common.Update')}
</Button>
)}
</ModalFooter>
</MyModal>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ const SelectUsingWayModal = ({ share, onClose }: { share: OutLinkSchema; onClose
data-open-icon="${getValues('scriptOpenIcon')}"
data-close-icon="${getValues('scriptCloseIcon')}"
defer
/>
></script>
<script>
console.log("Chat box loaded")
</script>`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ const FormLayout = ({ children, setPageType, pageType }: Props) => {
alignItems={'center'}
justifyContent={'center'}
>
<Image src={LOGO_ICON} w={'24px'} alt={'icon'} />
<Image src={LOGO_ICON} w={['24px', '28px']} alt={'icon'} />
</Flex>
<Box ml={3} fontSize={['2xl', '3xl']} fontWeight={'bold'}>
{feConfigs?.systemTitle}
Expand Down

0 comments on commit adfad8f

Please sign in to comment.