Go to file
Wiki Sync Bot 4fbc53915a aaa 2025-06-17 20:07:42 +08:00
.github Update docker-image.yml 2024-11-13 21:41:36 +08:00
lobe 移除未使用的图标组件,简化页面代码结构 2025-05-08 13:50:24 +08:00
src Refactor error handling to use WriteOpenAIErrorAsync 2025-05-08 14:38:32 +08:00
.dockerignore Remove unused dependency interfaces and update service registration 2024-10-23 22:59:09 +08:00
.gitignore chore: Update docker-compose-rabbitmq.yml and .gitignore 2024-10-25 16:26:07 +08:00
Directory.Build.props RabbitMQ性能优化 2024-11-05 15:17:36 +08:00
LICENSE 项目初始化 2024-03-16 15:51:34 +08:00
README.md 谷歌Claude 2025-03-17 01:12:44 +08:00
Thor.sln 谷歌Claude 2025-03-17 01:12:44 +08:00
docker-compose-rabbitmq.yml 支持推理标签自动转换 2025-02-13 00:44:51 +08:00
docker-compose.yml 提供默认的compose使用sqlite 2025-01-16 09:59:23 +08:00
install-service.bat 添加服务安装和卸载脚本,支持Thor AI Gateway服务的创建和删除 2025-03-27 10:11:47 +08:00
migrations.bat 更新模型管理功能,添加模型类型支持,优化模型信息获取接口。重构相关DTO和服务,提升代码可读性和可维护性。更新数据库迁移以反映模型类型的变化,确保数据一致性和完整性。 2025-04-27 01:49:35 +08:00
uninstall-service.bat 添加服务安装和卸载脚本,支持Thor AI Gateway服务的创建和删除 2025-03-27 10:11:47 +08:00
测试同步文件 add 测试同步文件. 2025-06-12 04:19:53 +00:00

README.md

Thor(雷神托尔)

Thor(雷神托尔),一个AI大模型管理网关。

Changelog · Report Bug · Request Feature

Thor(雷神托尔)

Thor(雷神托尔) 是一款强大的人工智能模型管理工具其主要目的是为了实现多种AI模型的统一管理和使用。通过Thor(雷神托尔)用户可以轻松地管理和使用众多AI模型而且Thor(雷神托尔)兼容OpenAI的接口格式使得使用更加方便。

Thor(雷神托尔)提供了丰富的功能:

  1. 管理功能支持用户管理渠道管理以及token管理简化了管理流程。
  2. 数据统计预览:可以清晰地看到各种数据的统计情况,帮助用户更好地了解使用情况。
  3. 日志查看:支持日志查看,方便用户跟踪和解决问题。
  4. 系统设置:可以根据需要进行各种系统设置。
  5. 外部Chat链接接入支持接入外部Chat链接提升交互体验。
  6. 支付宝购买账号余额:提供支付宝购买账号余额的功能,方便用户进行充值。

此外Thor(雷神托尔)还支持多种AI大模型包括OpenAI、星火大模型、Claudia、智谱AI、Ollama、通义千问阿里云、AzureOpenAI以及腾讯混元大模型满足了用户对各种AI模型的需求。

Thor(雷神托尔)还支持多种数据库包括SqlServer、PostgreSql、Sqlite以及MySql用户可以根据自己的需要选择合适的数据库。

清晰的数据统计

image

功能实现

  • 支持用户管理
  • 支持渠道管理
  • 支持token管理
  • 提供数据统计预览
  • 支持日志查看
  • 支持系统设置
  • 支持接入外部Chat链接
  • 支持支付宝购买账号余额
  • 支持Rabbit消费日志默认情况下使用本地事件
  • 支持分布式多级缓存

AI大模型支持列表

  • OpenAI 支持function
  • Kimi月之暗面支持function
  • 星火大模型支持function
  • Claudia 支持function
  • 智谱AI (支持function)
  • 微软Azure支持function
  • Ollama支持function
  • 通义千问阿里云支持function
  • 腾讯混元大模型
  • 支持百度大模型(ErnieBot)
  • Gitee AI (支持function)
  • MiniMax AI支持function
  • SiliconFlow AI支持function
  • DeepSeek AI支持function
  • 火山引擎 支持function
  • 亚马逊 支持function
  • 谷歌Claude 支持function ( 代理地址:[LocationId]-aiplatform.googleapis.com|[ProjectId]|[LocationId]|rawPredict ) [这里面填写你的区域/项目id] (密钥在Google平台创建的大json 就是autu 2.0授权码 )

支持数据库

  • SqlServer 配置类型[sqlserver,mssql]
  • PostgreSql 配置类型[postgresql,pgsql]
  • Sqlite 配置类型[sqlite,默认]
  • MySql 配置类型[mysql]
  • 达梦数据库 配置类型[dm]

修改appsettings.jsonConnectionStrings:DBType配置项即可切换数据库类型。请注意切换数据库不会迁移数据。

graph LR
    A(用户)
    A --->|使用 Thor 分发的 key 进行请求| B(Thor)
    B -->|中继请求| C(OpenAI)
    B -->|中继请求| D(Azure)
    B -->|中继请求| E(其他 OpenAI API 格式下游渠道)
    B -->|中继并修改请求体和返回体| F(非 OpenAI API 格式下游渠道)

简单使用

默认账号密码 admin admin

注意事项

需要注意的是,如果克隆项目后,项目根目录缺少data时,需要手动创建,docker compose up 时,需要挂载本地目录data

国内用户请切换registry.cn-shenzhen.aliyuncs.com/tokengo/thor镜像

环境变量

  • DBType sqlite | [postgresql,pgsql] | [sqlserver,mssql] | mysql
  • ConnectionStrings:DefaultConnection 主数据库连接字符串
  • ConnectionStrings:LoggerConnection 日志数据连接字符串
  • CACHE_TYPE 缓存类型 Memory|Redis
  • CACHE_CONNECTION_STRING 缓存连接字符串 如果是Redis则为Redis连接字符串Memory则为空
  • HttpClientPoolSize HttpClient连接池大小
  • RunMigrationsAtStartup 是否在启动时运行迁移 如果是首次启动则需要设置为true

使用docker compose启动服务:

version: '3.8'

services:
  thor:
    image: aidotnet/thor:latest
    ports:
      - 18080:8080
    container_name: thor
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - DBType=sqlite # sqlite | [postgresql,pgsql] | [sqlserver,mssql] | mysql
      - ConnectionStrings:DefaultConnection=data source=/data/token.db
      - ConnectionStrings:LoggerConnection=data source=/data/logger.db
      - RunMigrationsAtStartup=true

使用docker run启动服务

docker run -d -p 18080:8080 --name thor --network=gateway -v $PWD/data:/data -e Theme=lobe -e TZ=Asia/Shanghai -e DBType=sqlite -e ConnectionStrings:ConnectionString="data source=/data/token.db" -e RunMigrationsAtStartup=true -e ConnectionStrings:LoggerConnectionString="data source=/data/logger.db" aidotnet/thor:latest

Sqlite构建

docker compose版本

项目根目录创建docker-compose.yml文件,内容如下:

version: '3.8'

services:
  thor:
    image: aidotnet/thor:latest
    container_name: thor
    ports:
      - 18080:8080
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - DBType=sqlite
      - ConnectionStrings:DefaultConnection=data source=/data/token.db
      - ConnectionStrings:LoggerConnection=data source=/data/logger.db
      - RunMigrationsAtStartup=true

执行如下命令打包镜像

sudo docker compose build

执行以下命令启动服务

sudo docker compose up -d

docker run版本

docker run -d -p 18080:8080 --name ai-dotnet-api-service -v $(pwd)/data:/data -e RunMigrationsAtStartup=true  -e Theme=lobe -e TZ=Asia/Shanghai -e DBType=sqlite -e ConnectionStrings:DefaultConnection=data source=/data/token.db -e ConnectionStrings:LoggerConnection=data source=/data/logger.db aidotnet/thor:latest

然后访问 http://localhost:18080 即可看到服务启动成功。

PostgreSql构建

docker compose版本

项目根目录创建docker-compose.yml文件,内容如下:

version: '3.8'

services:
  thor:
    image: aidotnet/thor:latest
    container_name: thor
    ports:
      - 18080:8080
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - DBType=postgresql
      - ConnectionStrings:DefaultConnection=Host=127.0.0.1;Port=5432;Database=token;Username=token;Password=dd666666
      - ConnectionStrings:LoggerConnection=Host=127.0.0.1;Port=5432;Database=logger;Username=token;Password=dd666666
      - RunMigrationsAtStartup=true

执行如下命令打包镜像

sudo docker compose build

执行以下命令启动服务

sudo docker compose up -d

docker run版本

docker run -d \
  --name thor \
  -p 18080:8080 \
  -v $(pwd)/data:/data \
  -e TZ=Asia/Shanghai \
  -e DBType=postgresql \
  -e RunMigrationsAtStartup=true \
  -e ConnectionStrings:DefaultConnection=Host=127.0.0.1;Port=5432;Database=token;Username=token;Password=dd666666 \
  -e ConnectionStrings:LoggerConnection=Host=127.0.0.1;Port=5432;Database=logger;Username=token;Password=dd666666 \
  aidotnet/thor:latest

然后访问 http://localhost:18080 即可看到服务启动成功。

SqlServer构建

docker compose版本

项目根目录创建docker-compose.yml文件,内容如下:

version: '3.8'

services:
  thor:
    image: aidotnet/thor:latest
    container_name: thor
    ports:
      - 18080:8080
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - DBType=sqlserver
      - ConnectionStrings:DefaultConnection=Server=127.0.0.1;Database=token;User Id=sa;Password=dd666666;
      - ConnectionStrings:LoggerConnection=Server=127.0.0.1;Database=logger;User Id=sa;Password=dd666666;
      - RunMigrationsAtStartup=true

执行如下命令打包镜像

sudo docker compose build

执行以下命令启动服务

sudo docker compose up -d

docker run版本

docker run -d \
  --name thor \
  -p 18080:8080 \
  -v $(pwd)/data:/data \
  -e TZ=Asia/Shanghai \
  -e RunMigrationsAtStartup=true \
  -e DBType=sqlserver \
  -e ConnectionStrings:DefaultConnection=Server=127.0.0.1;Database=token;User Id=sa;Password=dd666666; \
  -e ConnectionStrings:LoggerConnection=Server=127.0.0.1;Database=logger;User Id=sa;Password=dd666666; \
  aidotnet/thor:latest

然后访问 http://localhost:18080 即可看到服务启动成功。

MySql构建

docker compose版本

项目根目录创建docker-compose.yml文件,内容如下:

version: '3.8'

services:
  thor:
    image: aidotnet/thor:latest
    container_name: thor
    ports:
      - 18080:8080
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai
      - DBType=mysql
      - "ConnectionStrings:DefaultConnection=mysql://root:dd666666@localhost:3306/token"
      - "ConnectionStrings:LoggerConnection=mysql://root:dd666666@localhost:3306/logger"
      - RunMigrationsAtStartup=true

执行如下命令打包镜像

sudo docker compose build

执行以下命令启动服务

sudo docker compose up -d

docker run版本

docker run -d \
  --name thor \
  -p 18080:8080 \
  -v $(pwd)/data:/data \
  -e TZ=Asia/Shanghai \
  -e DBType=mysql \
  -e "ConnectionStrings:DefaultConnection=mysql://root:dd666666@localhost:3306/token" \
  -e "ConnectionStrings:LoggerConnection=mysql://root:dd666666@localhost:3306/logger" \
  -e RunMigrationsAtStartup=true \
  aidotnet/thor:latest

然后访问 http://localhost:18080 即可看到服务启动成功。