mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-02 16:55:42 +08:00
### What problem does this PR solve? - Tools management - Pregel engine wrapper for better usage - UT race - Coding style ### Type of change - [x] Refactoring
58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package core
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"ragflow/internal/harness/core/schema"
|
|
)
|
|
|
|
func BenchmarkReActAgent_ReActLoop(b *testing.B) {
|
|
tool := &mockTool{name: "bench_tool", desc: "benchmark tool"}
|
|
ctx := context.Background()
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
model := &mockModel{}
|
|
model.addResp("tool")
|
|
model.addResp("done")
|
|
agent := NewReActAgent(&ReActConfig[*schema.Message]{
|
|
Model: model,
|
|
Tools: []Tool{tool},
|
|
ToolsConfig: &ToolsNodeConfig{Tools: []Tool{tool}},
|
|
})
|
|
agent.name = "bench"
|
|
iter := agent.Run(ctx, &AgentInput{Messages: []Message{schema.UserMessage("bench")}})
|
|
for {
|
|
_, ok := iter.Next()
|
|
if !ok {
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func BenchmarkReActAgent_NoTools(b *testing.B) {
|
|
ctx := context.Background()
|
|
b.ResetTimer()
|
|
for i := 0; i < b.N; i++ {
|
|
model := &mockModel{}
|
|
model.addResp("done")
|
|
agent := NewReActAgent(&ReActConfig[*schema.Message]{Model: model})
|
|
agent.name = "bench_nt"
|
|
iter := agent.Run(ctx, &AgentInput{Messages: []Message{schema.UserMessage("hi")}})
|
|
for {
|
|
_, ok := iter.Next()
|
|
if !ok {
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func BenchmarkCancelContext_NewCancel(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
cc := newCancelContext()
|
|
cc.triggerCancel(CancelImmediate)
|
|
}
|
|
}
|