mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-08 02:15:27 +08:00
增加不同上下文模式
This commit is contained in:
@@ -75,6 +75,12 @@ func TestGetSettingsIncludesHistorySplitDefaults(t *testing.T) {
|
||||
if got := boolFrom(thinkingInjection["enabled"]); !got {
|
||||
t.Fatalf("expected thinking_injection.enabled=true, body=%v", body)
|
||||
}
|
||||
if got, _ := thinkingInjection["prompt"].(string); got != "" {
|
||||
t.Fatalf("expected empty custom thinking prompt, got %q body=%v", got, body)
|
||||
}
|
||||
if got, _ := thinkingInjection["default_prompt"].(string); got == "" {
|
||||
t.Fatalf("expected default thinking prompt, body=%v", body)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpdateSettingsValidation(t *testing.T) {
|
||||
@@ -264,6 +270,7 @@ func TestUpdateSettingsThinkingInjection(t *testing.T) {
|
||||
payload := map[string]any{
|
||||
"thinking_injection": map[string]any{
|
||||
"enabled": false,
|
||||
"prompt": " custom thinking prompt ",
|
||||
},
|
||||
}
|
||||
b, _ := json.Marshal(payload)
|
||||
@@ -280,6 +287,9 @@ func TestUpdateSettingsThinkingInjection(t *testing.T) {
|
||||
if h.Store.ThinkingInjectionEnabled() {
|
||||
t.Fatal("expected thinking injection accessor to reflect disabled config")
|
||||
}
|
||||
if got := h.Store.ThinkingInjectionPrompt(); got != "custom thinking prompt" {
|
||||
t.Fatalf("expected custom thinking prompt, got %q", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpdateSettingsAutoDeleteMode(t *testing.T) {
|
||||
|
||||
@@ -199,6 +199,9 @@ func parseSettingsUpdateRequest(req map[string]any) (*config.AdminConfig, *confi
|
||||
b := boolFrom(v)
|
||||
cfg.Enabled = &b
|
||||
}
|
||||
if v, exists := raw["prompt"]; exists {
|
||||
cfg.Prompt = strings.TrimSpace(fmt.Sprintf("%v", v))
|
||||
}
|
||||
thinkingInjCfg = cfg
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
authn "ds2api/internal/auth"
|
||||
"ds2api/internal/config"
|
||||
"ds2api/internal/promptcompat"
|
||||
)
|
||||
|
||||
func (h *Handler) getSettings(w http.ResponseWriter, _ *http.Request) {
|
||||
@@ -39,7 +40,9 @@ func (h *Handler) getSettings(w http.ResponseWriter, _ *http.Request) {
|
||||
"min_chars": h.Store.CurrentInputFileMinChars(),
|
||||
},
|
||||
"thinking_injection": map[string]any{
|
||||
"enabled": h.Store.ThinkingInjectionEnabled(),
|
||||
"enabled": h.Store.ThinkingInjectionEnabled(),
|
||||
"prompt": h.Store.ThinkingInjectionPrompt(),
|
||||
"default_prompt": promptcompat.DefaultThinkingInjectionPrompt,
|
||||
},
|
||||
"model_aliases": snap.ModelAliases,
|
||||
"env_backed": h.Store.IsEnvBacked(),
|
||||
|
||||
@@ -89,6 +89,7 @@ func (h *Handler) updateSettings(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
if thinkingInjCfg != nil {
|
||||
c.ThinkingInjection.Enabled = thinkingInjCfg.Enabled
|
||||
c.ThinkingInjection.Prompt = thinkingInjCfg.Prompt
|
||||
}
|
||||
if aliasMap != nil {
|
||||
c.ModelAliases = aliasMap
|
||||
|
||||
@@ -38,6 +38,7 @@ type ConfigStore interface {
|
||||
CurrentInputFileEnabled() bool
|
||||
CurrentInputFileMinChars() int
|
||||
ThinkingInjectionEnabled() bool
|
||||
ThinkingInjectionPrompt() string
|
||||
CompatStripReferenceMarkers() bool
|
||||
AutoDeleteSessions() bool
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user