Files
FastGPT/docSite/content/docs/development/intro.md
Archer 9d27de154b 4.7-alpha2 (#1027)
* feat: stop toolCall and rename some field. (#46)

* perf: node delete tip;pay tip

* fix: toolCall cannot save child answer

* feat: stop tool

* fix: team modal

* fix feckbackMoal  auth bug (#47)

* 简单的支持提示词运行tool。优化workflow模板 (#49)

* remove templates

* fix: request body undefined

* feat: prompt tool run

* feat: workflow tamplates modal

* perf: plugin start

* 4.7 (#50)

* fix docker-compose download url (#994)

original code is a bad url with '404 NOT FOUND' return.
fix docker-compose download url, add 'v' before docker-compose version

* Update ai_settings.md (#1000)

* Update configuration.md

* Update configuration.md

* Fix history in classifyQuestion and extract modules (#1012)

* Fix history in classifyQuestion and extract modules

* Add chatValue2RuntimePrompt import and update text formatting

* flow controller to packages

* fix: rerank select

* modal ui

* perf: modal code path

* point not sufficient

* feat: http url support variable

* fix http key

* perf: prompt

* perf: ai setting modal

* simple edit ui

---------

Co-authored-by: entorick <entorick11@qq.com>
Co-authored-by: liujianglc <liujianglc@163.com>
Co-authored-by: Fengrui Liu <liufengrui.work@bytedance.com>

* fix team share redirect to login (#51)

* feat: support openapi import plugins (#48)

* feat: support openapi import plugins

* feat: import from url

* fix: add body params parse

* fix build

* fix

* fix

* fix

* tool box ui (#52)

* fix: training queue

* feat: simple edit tool select

* perf: simple edit dataset prompt

* fix: chatbox tool ux

* feat: quote prompt module

* perf: plugin tools sign

* perf: model avatar

* tool selector ui

* feat: max histories

* perf: http plugin import (#53)

* perf: plugin http import

* chatBox ui

* perf: name

* fix: Node template card (#54)

* fix: ts

* setting modal

* package

* package

* feat: add plugins search (#57)

* feat: add plugins search

* perf: change http plugin header input

* Yjl (#56)

* perf: prompt tool call

* perf: chat box ux

* doc

* doc

* price tip

* perf: tool selector

* ui'

* fix: vector queue

* fix: empty tool and empty response

* fix: empty msg

* perf: pg index

* perf: ui tip

* doc

* tool tip

---------

Co-authored-by: yst <77910600+yu-and-liu@users.noreply.github.com>
Co-authored-by: entorick <entorick11@qq.com>
Co-authored-by: liujianglc <liujianglc@163.com>
Co-authored-by: Fengrui Liu <liufengrui.work@bytedance.com>
Co-authored-by: heheer <71265218+newfish-cmyk@users.noreply.github.com>
2024-03-21 13:32:31 +08:00

5.0 KiB
Raw Blame History

title, description, icon, draft, toc, weight
title description icon draft toc weight
快速开始本地开发 对 FastGPT 进行开发调试 developer_guide false true 705

本文档介绍了如何设置开发环境以构建和测试 FastGPT

前置依赖项

您需要在计算机上安装和配置以下依赖项才能构建 FastGPT

开始本地开发

{{% alert context="success" %}}

  1. 用户默认的时区为 Asia/Shanghai,非 linux 环境时候,获取系统时间会异常,本地开发时候,可以将用户的时区调整成 UTC+0
  2. 建议先服务器装好数据库,再进行本地开发。 {{% /alert %}}

1. Fork 存储库

您需要 Fork 存储库

2. 克隆存储库

克隆您在 GitHub 上 Fork 的存储库:

git clone git@github.com:<github_username>/FastGPT.git

目录简要说明

  1. projects 目录下为 FastGPT 应用代码。其中 app 为 FastGPT 核心应用。(后续可能会引入其他应用)
  2. NextJS 框架前后端放在一起API 服务位于 src/pages/api 目录内。
  3. packages 目录为共用代码,通过 workspace 被注入到 projects 中,已配置 monorepo 自动注入,无需额外打包。

3. 安装数据库

第一次开发,需要先部署数据库,建议本地开发可以随便找一台 2C2G 的轻量小数据库实践。数据库部署教程:Docker 快速部署。部署完了,可以本地访问其数据库。

Mongo 数据库需要修改副本集的host,从原来的mongo:27017修改为ip:27017(ip为对应的公网IP)。

4. 初始配置

以下文件均在 projects/app 路径下。

环境变量

复制.env.template文件,在同级目录下生成一个.env.local 文件,修改.env.local 里内容才是有效的变量。变量说明见 .env.template

config 配置文件

复制 data/config.json 文件,生成一个 data/config.local.json 配置文件,具体配置参数说明,可参考 config 配置说明

注意json 配置文件不能包含注释,介绍中为了方便看才加入的注释

这个文件大部分时候不需要修改。只需要关注 systemEnv 里的参数:

  • vectorMaxProcess: 向量生成最大进程,根据数据库和 key 的并发数来决定,通常单个 120 号2c4g 服务器设置 10~15。
  • qaMaxProcess: QA 生成最大进程
  • pgHNSWEfSearch: PostgreSQL vector 索引参数,越大搜索精度越高但是速度越慢,具体可看 pgvector 官方说明。

5. 运行

# 给脚本代码执行权限
chmod -R +x ./scripts/
# 代码根目录下执行,会安装根 package、projects 和 packages 内所有依赖
pnpm i
# 切换到应用目录
cd projects/app 
# 开发模式运行
pnpm dev

6. 部署打包

# 根目录下执行
docker build -t dockername/fastgpt:tag --build-arg name=app .
# 使用代理
docker build -t dockername/fastgpt:tag --build-arg name=app --build-arg proxy=taobao .

提交代码至开源仓库

  1. 确保你的代码是 Fork FastGPT 仓库
  2. 尽可能少量的提交代码,每次提交仅解决一个问题。
  3. 向 FastGPT 的 main 分支提交一个 PR提交请求后FastGPT 团队/社区的其他人将与您一起审查它。

如果遇到问题,比如合并冲突或不知道如何打开拉取请求,请查看 GitHub 的拉取请求教程,了解如何解决合并冲突和其他问题。一旦您的 PR 被合并,您将自豪地被列为贡献者表中的一员。

QA

本地数据库无法连接

  1. 如果你是连接远程的数据库,先检查对应的端口是否开放。
  2. 如果是本地运行的数据库,可尝试host改成localhost127.0.0.1

sh ./scripts/postinstall.sh 没权限

FastGPT 在pnpm i后会执行postinstall脚本,用于自动生成ChakraUIType。如果没有权限,可以先执行chmod -R +x ./scripts/,再执行pnpm i

长时间运行后崩溃

似乎是由于 tiktoken 库的开发环境问题,生产环境中未遇到,暂时可忽略。

TypeError: Cannot read properties of null (reading 'useMemo' )

删除所有的node_modules,用 Node18 重新 install 试试,可能最新的 Node 有问题。 本地开发流程:

  1. 根目录: pnpm i
  2. 复制 config.json -> config.local.json
  3. 复制 .env.template -> .env.local
  4. cd projects/app
  5. pnpm dev

加入社区

遇到困难了吗?有任何问题吗? 加入微信群与开发者和用户保持沟通。