forked from unit-mesh/auto-dev
-
Notifications
You must be signed in to change notification settings - Fork 0
/
AutoDevSettingsState.kt
73 lines (59 loc) · 2.37 KB
/
AutoDevSettingsState.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package cc.unitmesh.devti.settings
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.PersistentStateComponent
import com.intellij.openapi.components.State
import com.intellij.openapi.components.Storage
import com.intellij.util.xmlb.XmlSerializerUtil
@State(name = "cc.unitmesh.devti.settings.DevtiSettingsState", storages = [Storage("DevtiSettings.xml")])
class AutoDevSettingsState : PersistentStateComponent<AutoDevSettingsState> {
var gitType = DEFAULT_GIT_TYPE
var githubToken = ""
var gitlabToken = ""
var gitlabUrl = ""
var openAiKey = ""
var openAiModel = DEFAULT_AI_MODEL
var delaySeconds = ""
var aiEngine = DEFAULT_AI_ENGINE
var customOpenAiHost = ""
var customEngineServer = ""
var customEngineToken = ""
var customPrompts = ""
var customModel = ""
// 星火有三个版本 https://console.xfyun.cn/services/bm3
var xingHuoApiVersion = XingHuoApiVersion.V3
var xingHuoAppId = ""
var xingHuoApiSecrect = ""
var xingHuoApiKey = ""
/**
* 自定义引擎返回的数据格式是否是 [SSE](https://www.ruanyifeng.com/blog/2017/05/server-sent_events.html) 格式
*/
var customEngineResponseType = ResponseType.SSE.name
/**
* should be a json path
*/
var customEngineResponseFormat = ""
/**
* should be a json
* {
* 'customHeaders': { 'headerName': 'headerValue', 'headerName2': 'headerValue2' ... },
* 'customFields' : { 'bodyFieldName': 'bodyFieldValue', 'bodyFieldName2': 'bodyFieldValue2' ... }
* 'messageKey': {'role': 'roleKeyName', 'content': 'contentKeyName'}
* }
*
* @see docs/custom-llm-server.md
*/
var customEngineRequestFormat = ""
var language = DEFAULT_HUMAN_LANGUAGE
var maxTokenLength = MAX_TOKEN_LENGTH.toString()
fun fetchMaxTokenLength(): Int = maxTokenLength.toIntOrNull() ?: MAX_TOKEN_LENGTH
@Synchronized
override fun getState(): AutoDevSettingsState = this
@Synchronized
override fun loadState(state: AutoDevSettingsState) = XmlSerializerUtil.copyBean(state, this)
companion object {
val maxTokenLength: Int get() = getInstance().fetchMaxTokenLength()
fun getInstance(): AutoDevSettingsState {
return ApplicationManager.getApplication().getService(AutoDevSettingsState::class.java).state
}
}
}