64 lines
1.2 KiB
Go
64 lines
1.2 KiB
Go
package knowledge_base
|
|
|
|
import (
|
|
"ai_scheduler/internal/config"
|
|
"bufio"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestCall(t *testing.T) {
|
|
req := &ChatRequest{
|
|
TenantID: "admin_test_qa",
|
|
Query: "lightRAG 的优势?",
|
|
Mode: "naive",
|
|
Stream: true,
|
|
Think: false,
|
|
OnlyRAG: true,
|
|
}
|
|
|
|
client := New(config.KnowledgeConfig{BaseURL: "http://127.0.0.1:9600"})
|
|
resp, err := client.Call(req)
|
|
if err != nil {
|
|
t.Errorf("Call failed: %v", err)
|
|
}
|
|
if resp == nil {
|
|
t.Error("Response is nil")
|
|
}
|
|
defer resp.Close()
|
|
|
|
scanner := bufio.NewScanner(resp)
|
|
var outThinking strings.Builder
|
|
var outContent strings.Builder
|
|
for scanner.Scan() {
|
|
line := scanner.Text()
|
|
delta, done, err := ParseOpenAIStreamData(line)
|
|
if err != nil {
|
|
t.Fatalf("parse openai stream failed: %v", err)
|
|
}
|
|
if delta == nil {
|
|
continue
|
|
}
|
|
if done {
|
|
break
|
|
}
|
|
|
|
if delta.XRagStatus != "" {
|
|
t.Logf("XRagStatus: %s", delta.XRagStatus)
|
|
}
|
|
if delta.Content != "" {
|
|
outContent.WriteString(delta.Content)
|
|
}
|
|
if delta.ReasoningContent != "" {
|
|
outThinking.WriteString(delta.ReasoningContent)
|
|
}
|
|
|
|
}
|
|
if err := scanner.Err(); err != nil {
|
|
t.Fatalf("scan failed: %v", err)
|
|
}
|
|
|
|
t.Logf("Thinking: %s", outThinking.String())
|
|
t.Logf("Content: %s", outContent.String())
|
|
}
|