From 84f40b63b250c162b808b9b33dbf5ef20d8e6d38 Mon Sep 17 00:00:00 2001 From: lianghaoyuan Date: Tue, 24 Sep 2024 11:39:02 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0.env=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E5=92=8C=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 3 +- go.mod | 1 + go.sum | 2 ++ main.go | 17 +++++++---- 5 files changed, 101 insertions(+), 6 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..b27628bd --- /dev/null +++ b/.env.example @@ -0,0 +1,84 @@ +# 端口号 +PORT=3000 +# 前端基础URL +FRONTEND_BASE_URL=https://your-frontend-url.com + + +# 调试相关配置 +# 调试模式 +DEBUG=true +# 启用pprof +ENABLE_PPROF=true +# 内存缓存启用 +MEMORY_CACHE_ENABLED=true + + +# 数据库相关配置 +# 数据库连接字符串 +SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/dbname?parseTime=true +# 日志数据库连接字符串 +LOG_SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/logdb?parseTime=true +# SQLite数据库路径 +SQLITE_PATH=/path/to/sqlite.db +# 数据库最大空闲连接数 +SQL_MAX_IDLE_CONNS=100 +# 数据库最大打开连接数 +SQL_MAX_OPEN_CONNS=1000 +# 数据库连接最大生命周期(秒) +SQL_MAX_LIFETIME=60 + + +# Redis相关配置 +# Redis连接字符串 +REDIS_CONN_STRING=redis://user:password@localhost:6379/0 +# 同步频率(单位:秒) +SYNC_FREQUENCY=60 + + +# 会话相关配置 +# 会话秘密 +SESSION_SECRET=random_string + + +# 任务和功能配置 +# 批量更新启用 +BATCH_UPDATE_ENABLED=true +# 批量更新间隔(单位:秒) +BATCH_UPDATE_INTERVAL=5 +# 更新任务启用 +UPDATE_TASK=true +# 禁用通道阈值 +CHANNEL_DISABLE_THRESHOLD=5.0 + + +# 其他配置 +# 通道更新频率(单位:秒) +CHANNEL_UPDATE_FREQUENCY=30 +# 通道测试频率(单位:秒) +CHANNEL_TEST_FREQUENCY=10 +# 生成默认令牌 +GENERATE_DEFAULT_TOKEN=false +# 气候模式设置 +GEMINI_SAFETY_SETTING=BLOCK_NONE +# 文本生成安全设置 +COHERE_SAFETY_SETTING=NONE + + +# 节点类型 +# 如果是主节点则为true +NODE_TYPE=master + + +# SMTP配置(可选) +# SMTP服务器地址 +SMTP_SERVER=smtp.example.com +# SMTP端口 +SMTP_PORT=587 +# 是否启用SMTP SSL +SMTP_SSL_ENABLED=false +# SMTP账户 +SMTP_ACCOUNT=user@example.com +# SMTP发件人地址 +SMTP_FROM=admin@example.com +# SMTP令牌 +SMTP_TOKEN=your-smtp-token diff --git a/.gitignore b/.gitignore index 16cbc672..ac995ac7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ upload build *.db-journal logs -web/dist \ No newline at end of file +web/dist +.env diff --git a/go.mod b/go.mod index 4277a881..66a6ee12 100644 --- a/go.mod +++ b/go.mod @@ -63,6 +63,7 @@ require ( github.com/jackc/puddle/v2 v2.2.1 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect + github.com/joho/godotenv v1.5.1 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/leodido/go-urn v1.4.0 // indirect diff --git a/go.sum b/go.sum index fedd195b..1403bc06 100644 --- a/go.sum +++ b/go.sum @@ -111,6 +111,8 @@ github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkr github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= diff --git a/main.go b/main.go index c7d69420..2a62309a 100644 --- a/main.go +++ b/main.go @@ -3,10 +3,6 @@ package main import ( "embed" "fmt" - "github.com/bytedance/gopkg/util/gopool" - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/cookie" - "github.com/gin-gonic/gin" "log" "net/http" "one-api/common" @@ -19,6 +15,12 @@ import ( "os" "strconv" + "github.com/bytedance/gopkg/util/gopool" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/cookie" + "github.com/gin-gonic/gin" + "github.com/joho/godotenv" + _ "net/http/pprof" ) @@ -29,6 +31,11 @@ var buildFS embed.FS var indexPage []byte func main() { + err := godotenv.Load(".env") + if err != nil { + common.SysLog("Can't load .env file") + } + common.SetupLogger() common.SysLog("New API " + common.Version + " started") if os.Getenv("GIN_MODE") != "debug" { @@ -38,7 +45,7 @@ func main() { common.SysLog("running in debug mode") } // Initialize SQL Database - err := model.InitDB() + err = model.InitDB() if err != nil { common.FatalLog("failed to initialize database: " + err.Error()) } From 2e18d5f96cb192f8f0175bc0230e3894b42ec6f9 Mon Sep 17 00:00:00 2001 From: lianghaoyuan Date: Wed, 25 Sep 2024 17:03:06 +0800 Subject: [PATCH 2/4] =?UTF-8?q?refactor(config):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=92=8C=E5=8F=98=E9=87=8F=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/.env.example b/.env.example index b27628bd..bf0b876e 100644 --- a/.env.example +++ b/.env.example @@ -5,8 +5,6 @@ FRONTEND_BASE_URL=https://your-frontend-url.com # 调试相关配置 -# 调试模式 -DEBUG=true # 启用pprof ENABLE_PPROF=true # 内存缓存启用 @@ -35,8 +33,7 @@ REDIS_CONN_STRING=redis://user:password@localhost:6379/0 SYNC_FREQUENCY=60 -# 会话相关配置 -# 会话秘密 +# 会话密钥 SESSION_SECRET=random_string @@ -47,38 +44,21 @@ BATCH_UPDATE_ENABLED=true BATCH_UPDATE_INTERVAL=5 # 更新任务启用 UPDATE_TASK=true -# 禁用通道阈值 -CHANNEL_DISABLE_THRESHOLD=5.0 # 其他配置 -# 通道更新频率(单位:秒) +# 渠道更新频率(单位:秒) CHANNEL_UPDATE_FREQUENCY=30 -# 通道测试频率(单位:秒) +# 渠道测试频率(单位:秒) CHANNEL_TEST_FREQUENCY=10 -# 生成默认令牌 +# 生成默认token GENERATE_DEFAULT_TOKEN=false -# 气候模式设置 +# Gemini 安全设置 GEMINI_SAFETY_SETTING=BLOCK_NONE -# 文本生成安全设置 +# Cohere 安全设置 COHERE_SAFETY_SETTING=NONE # 节点类型 # 如果是主节点则为true NODE_TYPE=master - - -# SMTP配置(可选) -# SMTP服务器地址 -SMTP_SERVER=smtp.example.com -# SMTP端口 -SMTP_PORT=587 -# 是否启用SMTP SSL -SMTP_SSL_ENABLED=false -# SMTP账户 -SMTP_ACCOUNT=user@example.com -# SMTP发件人地址 -SMTP_FROM=admin@example.com -# SMTP令牌 -SMTP_TOKEN=your-smtp-token From c7c870d4c6a0a894ee79e9629407c5c45fb38277 Mon Sep 17 00:00:00 2001 From: CalciumIon <1808837298@qq.com> Date: Mon, 11 Nov 2024 22:04:51 +0800 Subject: [PATCH 3/4] chore: update .env.example --- .env.example | 73 ++++++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/.env.example b/.env.example index bf0b876e..92e95b92 100644 --- a/.env.example +++ b/.env.example @@ -1,64 +1,71 @@ # 端口号 -PORT=3000 +# PORT=3000 # 前端基础URL -FRONTEND_BASE_URL=https://your-frontend-url.com +# FRONTEND_BASE_URL=https://your-frontend-url.com # 调试相关配置 # 启用pprof -ENABLE_PPROF=true -# 内存缓存启用 -MEMORY_CACHE_ENABLED=true - +# ENABLE_PPROF=true # 数据库相关配置 # 数据库连接字符串 -SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/dbname?parseTime=true +# SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/dbname?parseTime=true # 日志数据库连接字符串 -LOG_SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/logdb?parseTime=true +# LOG_SQL_DSN=mysql://user:password@tcp(127.0.0.1:3306)/logdb?parseTime=true # SQLite数据库路径 -SQLITE_PATH=/path/to/sqlite.db +# SQLITE_PATH=/path/to/sqlite.db # 数据库最大空闲连接数 -SQL_MAX_IDLE_CONNS=100 +# SQL_MAX_IDLE_CONNS=100 # 数据库最大打开连接数 -SQL_MAX_OPEN_CONNS=1000 +# SQL_MAX_OPEN_CONNS=1000 # 数据库连接最大生命周期(秒) -SQL_MAX_LIFETIME=60 +# SQL_MAX_LIFETIME=60 -# Redis相关配置 +# 缓存相关配置 # Redis连接字符串 -REDIS_CONN_STRING=redis://user:password@localhost:6379/0 +# REDIS_CONN_STRING=redis://user:password@localhost:6379/0 # 同步频率(单位:秒) -SYNC_FREQUENCY=60 +# SYNC_FREQUENCY=60 +# 内存缓存启用 +# MEMORY_CACHE_ENABLED=true +# 渠道更新频率(单位:秒) +# CHANNEL_UPDATE_FREQUENCY=30 +# 批量更新启用 +# BATCH_UPDATE_ENABLED=true +# 批量更新间隔(单位:秒) +# BATCH_UPDATE_INTERVAL=5 + +# 任务和功能配置 +# 更新任务启用 +# UPDATE_TASK=true # 会话密钥 SESSION_SECRET=random_string - -# 任务和功能配置 -# 批量更新启用 -BATCH_UPDATE_ENABLED=true -# 批量更新间隔(单位:秒) -BATCH_UPDATE_INTERVAL=5 -# 更新任务启用 -UPDATE_TASK=true - - # 其他配置 -# 渠道更新频率(单位:秒) -CHANNEL_UPDATE_FREQUENCY=30 # 渠道测试频率(单位:秒) -CHANNEL_TEST_FREQUENCY=10 +# CHANNEL_TEST_FREQUENCY=10 # 生成默认token -GENERATE_DEFAULT_TOKEN=false +# GENERATE_DEFAULT_TOKEN=false # Gemini 安全设置 -GEMINI_SAFETY_SETTING=BLOCK_NONE +# GEMINI_SAFETY_SETTING=BLOCK_NONE +# Gemini版本设置 +# GEMINI_MODEL_MAP=gemini-1.5-pro-latest:v1beta,gemini-1.5-pro-001:v1beta # Cohere 安全设置 -COHERE_SAFETY_SETTING=NONE +# COHERE_SAFETY_SETTING=NONE +# 是否统计图片token +# GET_MEDIA_TOKEN=true +# 是否在非流(stream=false)情况下统计图片token +# GET_MEDIA_TOKEN_NOT_STREAM=true +# 设置 Dify 渠道是否输出工作流和节点信息到客户端 +# DIFY_DEBUG=true +# 设置流式一次回复的超时时间 +# STREAMING_TIMEOUT=90 # 节点类型 -# 如果是主节点则为true -NODE_TYPE=master +# 如果是主节点则为master +# NODE_TYPE=master From b012505ff46c372dccda5166b391f5104bf9d57c Mon Sep 17 00:00:00 2001 From: CalciumIon <1808837298@qq.com> Date: Mon, 11 Nov 2024 22:05:29 +0800 Subject: [PATCH 4/4] chore: update .env.example --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 92e95b92..9a3dc141 100644 --- a/.env.example +++ b/.env.example @@ -43,7 +43,7 @@ # 会话密钥 -SESSION_SECRET=random_string +# SESSION_SECRET=random_string # 其他配置 # 渠道测试频率(单位:秒)