mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 23:20:13 +01:00
🎨 支持应用内配置人工智能 https://github.com/siyuan-note/siyuan/issues/7714
This commit is contained in:
parent
7ad5cdd067
commit
b595357610
2 changed files with 73 additions and 0 deletions
67
kernel/conf/ai.go
Normal file
67
kernel/conf/ai.go
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
// SiYuan - Build Your Eternal Digital Garden
|
||||
// Copyright (c) 2020-present, b3log.org
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
package conf
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type AI struct {
|
||||
OpenAI *OpenAI `json:"openAI"`
|
||||
}
|
||||
|
||||
type OpenAI struct {
|
||||
APIKey string `json:"apiKey"`
|
||||
APITimeout int `json:"apiTimeout"`
|
||||
APIProxy string `json:"apiProxy"`
|
||||
APIMaxTokens int `json:"apiMaxTokens"`
|
||||
APIBaseURL string `json:"apiBaseURL"`
|
||||
}
|
||||
|
||||
func NewAI() *AI {
|
||||
openAI := &OpenAI{
|
||||
APITimeout: 30,
|
||||
APIBaseURL: "https://api.openai.com/v1",
|
||||
}
|
||||
|
||||
openAI.APIKey = os.Getenv("SIYUAN_OPENAI_API_KEY")
|
||||
|
||||
if timeout := os.Getenv("SIYUAN_OPENAI_API_TIMEOUT"); "" != timeout {
|
||||
timeoutInt, err := strconv.Atoi(timeout)
|
||||
if nil == err {
|
||||
openAI.APITimeout = timeoutInt
|
||||
}
|
||||
}
|
||||
|
||||
if proxy := os.Getenv("SIYUAN_OPENAI_API_PROXY"); "" != proxy {
|
||||
openAI.APIProxy = proxy
|
||||
}
|
||||
|
||||
if maxTokens := os.Getenv("SIYUAN_OPENAI_API_MAX_TOKENS"); "" != maxTokens {
|
||||
maxTokensInt, err := strconv.Atoi(maxTokens)
|
||||
if nil == err {
|
||||
openAI.APIMaxTokens = maxTokensInt
|
||||
}
|
||||
}
|
||||
|
||||
if baseURL := os.Getenv("SIYUAN_OPENAI_API_BASE_URL"); "" != baseURL {
|
||||
openAI.APIBaseURL = baseURL
|
||||
}
|
||||
|
||||
return &AI{OpenAI: openAI}
|
||||
}
|
||||
|
|
@ -70,6 +70,7 @@ type AppConf struct {
|
|||
Sync *conf.Sync `json:"sync"` // 同步配置
|
||||
Search *conf.Search `json:"search"` // 搜索配置
|
||||
Flashcard *conf.Flashcard `json:"flashcard"` // 闪卡配置
|
||||
AI *conf.AI `json:"ai"` // 人工智能配置
|
||||
Stat *conf.Stat `json:"stat"` // 统计
|
||||
Api *conf.API `json:"api"` // API
|
||||
Repo *conf.Repo `json:"repo"` // 数据仓库
|
||||
|
|
@ -318,6 +319,11 @@ func InitConf() {
|
|||
Conf.Flashcard = conf.NewFlashcard()
|
||||
}
|
||||
|
||||
// TODO 支持应用内配置人工智能 https://github.com/siyuan-note/siyuan/issues/7714
|
||||
//if nil == Conf.AI {
|
||||
// Conf.AI = conf.NewAI()
|
||||
//}
|
||||
|
||||
Conf.ReadOnly = util.ReadOnly
|
||||
|
||||
if "" != util.AccessAuthCode {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue