前置依赖项

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

Fork 存储库

您需要 Fork 存储库。

克隆存储库

  1. git clone https://github.com/239573049/fast-wiki.git

目录摘要说明:

  • src/Service/FastWiki.Service:FastWiki服务端,使用MasaFramework,提供基础的API服务,包含数据库迁移和向量搜索,并且实现FastWiki.Service.Contracts的WebApi接口。
  • src/Infrastructure/FastWiki.Infrastructure.Common:提供常用的工具类和扩展方法。
  • src/Infrastructure/FastWiki.Infrastructure.Rcl.Command: 提供常用的Razor封装方法。
  • src/Contracts/FastWiki.Service.Contracts:提供基础的DTO和业务接口定义。
  • src/ApiGateway/FastWiki.ApiGateway.Caller 基于MasaFramework的API调用封装,是FastWiki.Service.ContractsHttpClient实现,调用了FastWiki.ServiceWebAPI封装。

部署数据库

第一次开发,需要先部署数据库,建议本地开发可以随便找一台 2G 的轻量小数据库实践。最好的方式就是在服务根据docker部署的教程部署一个PostgreSQL然后提供外网端口供测试访问。

初始化配置文件

在开发环境下打开src\Service\FastWiki.Service\appsettings.Development.json文件,然后修改ChatToken为自己的OpenAI的Key,如果需要使用自己的代理则修改ChatEndpoint和EmbeddingEndpoint为自己的代理地址。

  1. { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "ConnectionStrings": { "DefaultConnection": "Host=postgres;Port=5432;Database=wiki;Username=token;Password=dd666666;" }, "OpenAI": { "ChatEndpoint": "https://api.openai.com", "EmbeddingEndpoint": "https://api.openai.com", "ChatToken": "您的AI的Key", "ChatModel": "gpt-3.5-turbo", "EmbeddingModel": "text-embedding-3-small" }, "Jwt": { "Secret": "asd?fgahjwter.123(%^klqwter.123(%^werqwter.123(%^$%#", "EffectiveHours": 120 }}

运行

请注意,由于项目是前后分离项目,在执行的时候需要先启动FastWiki.Service,然后再启动FastWiki.Web.Server; 否则会出现FastWiki.Web.Server启动后无法连接到FastWiki.Service的情况。

启动服务端

  1. cd src/Service/FastWiki.Servicedotnet run

启动前端

  1. cd src/Web/FastWiki.Web.Serverdotnet run

部署

在根目录中提供了docker-compose.yml文件,可以直接使用docker-compose进行部署。

构建镜像

  1. docker-compose build

推送镜像

  1. docker-compose push

QA

本地数据库无法连接 如果你是连接远程的数据库,先检查对应的端口是否开放。 如果是本地运行的数据库,可尝试host改成localhost或127.0.0.1