feat: react example change to ark model, set StreamToolCallChecker

Change-Id: I9959d201ca18a14ac7789b1b4edae2798a792590
drew/english
shentong.martin 1 year ago committed by shentongmartin
parent f1eee736c2
commit a50d298e58

@ -24,7 +24,7 @@ import (
"io" "io"
"os" "os"
"github.com/cloudwego/eino-ext/components/model/openai" "github.com/cloudwego/eino-ext/components/model/ark"
"github.com/cloudwego/eino/callbacks" "github.com/cloudwego/eino/callbacks"
"github.com/cloudwego/eino/components/tool" "github.com/cloudwego/eino/components/tool"
"github.com/cloudwego/eino/compose" "github.com/cloudwego/eino/compose"
@ -37,17 +37,13 @@ import (
) )
func main() { func main() {
openAIAPIKey := os.Getenv("OPENAI_API_KEY") arkAPIKey := os.Getenv("ARK_API_KEY")
openAIBaseURL := os.Getenv("OPENAI_BASE_URL") arkModelName := os.Getenv("ARK_MODEL_NAME")
openAIModelName := os.Getenv("OPENAI_MODEL_NAME")
ctx := context.Background() ctx := context.Background()
arkModel, err := ark.NewChatModel(ctx, &ark.ChatModelConfig{
// prepare ChatModel APIKey: arkAPIKey,
chatModel, err := openai.NewChatModel(ctx, &openai.ChatModelConfig{ Model: arkModelName,
BaseURL: openAIBaseURL,
APIKey: openAIAPIKey,
Model: openAIModelName,
}) })
if err != nil { if err != nil {
logs.Errorf("failed to create chat model: %v", err) logs.Errorf("failed to create chat model: %v", err)
@ -63,13 +59,37 @@ func main() {
` `
// replace tool call checker with a custom one: check all trunks until you get a tool call
// because some models(claude or doubao 1.5-pro 32k) do not return tool call in the first response
// uncomment the following code to enable it
/*toolCallChecker := func(ctx context.Context, sr *schema.StreamReader[*schema.Message]) (bool, error) {
defer sr.Close()
for {
msg, err := sr.Recv()
if err != nil {
if errors.Is(err, io.EOF) {
// finish
break
}
return false, err
}
if len(msg.ToolCalls) > 0 {
return true, nil
}
}
return false, nil
}*/
ragent, err := react.NewAgent(ctx, &react.AgentConfig{ ragent, err := react.NewAgent(ctx, &react.AgentConfig{
Model: chatModel, Model: arkModel,
ToolsConfig: compose.ToolsNodeConfig{ ToolsConfig: compose.ToolsNodeConfig{
Tools: []tool.BaseTool{restaurantTool, dishTool}, Tools: []tool.BaseTool{restaurantTool, dishTool},
}, },
MessageModifier: react.NewPersonaModifier(persona), MessageModifier: react.NewPersonaModifier(persona),
// StreamToolCallChecker: toolCallChecker, // uncomment it to replace the default tool call checker with custom one
}) })
if err != nil { if err != nil {
logs.Errorf("failed to create agent: %v", err) logs.Errorf("failed to create agent: %v", err)

@ -9,7 +9,7 @@ require (
github.com/cloudwego/eino v0.3.14 github.com/cloudwego/eino v0.3.14
github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250117061805-cd80d1780d76 github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250117061805-cd80d1780d76
github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250117061805-cd80d1780d76 github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250117061805-cd80d1780d76
github.com/cloudwego/eino-ext/components/model/ark v0.0.0-20250224084944-a4e81e88cf1b github.com/cloudwego/eino-ext/components/model/ark v0.1.0
github.com/cloudwego/eino-ext/components/model/deepseek v0.0.0-20250221090944-e8ef7aabbe10 github.com/cloudwego/eino-ext/components/model/deepseek v0.0.0-20250221090944-e8ef7aabbe10
github.com/cloudwego/eino-ext/components/model/ollama v0.0.0-20250221090944-e8ef7aabbe10 github.com/cloudwego/eino-ext/components/model/ollama v0.0.0-20250221090944-e8ef7aabbe10
github.com/cloudwego/eino-ext/components/model/openai v0.0.0-20250221090944-e8ef7aabbe10 github.com/cloudwego/eino-ext/components/model/openai v0.0.0-20250221090944-e8ef7aabbe10
@ -62,7 +62,7 @@ require (
github.com/slongfield/pyfmt v0.0.0-20220222012616-ea85ff4c361f // indirect github.com/slongfield/pyfmt v0.0.0-20220222012616-ea85ff4c361f // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/volcengine/volc-sdk-golang v1.0.196 // indirect github.com/volcengine/volc-sdk-golang v1.0.196 // indirect
github.com/volcengine/volcengine-go-sdk v1.0.181 // indirect github.com/volcengine/volcengine-go-sdk v1.0.185 // indirect
github.com/yargevad/filepathx v1.0.0 // indirect github.com/yargevad/filepathx v1.0.0 // indirect
golang.org/x/arch v0.14.0 // indirect golang.org/x/arch v0.14.0 // indirect
golang.org/x/crypto v0.34.0 // indirect golang.org/x/crypto v0.34.0 // indirect

@ -110,8 +110,8 @@ github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250117061
github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250117061805-cd80d1780d76/go.mod h1:LWR+h0EfIELl/I1tDSVH0Tgx8j2gymxa174U1C8BNps= github.com/cloudwego/eino-ext/components/document/parser/html v0.0.0-20250117061805-cd80d1780d76/go.mod h1:LWR+h0EfIELl/I1tDSVH0Tgx8j2gymxa174U1C8BNps=
github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250117061805-cd80d1780d76 h1:GJ4OqxyBH8la8Gu4PhTHXZNZFmrtEIrrymkCEpJ7XZU= github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250117061805-cd80d1780d76 h1:GJ4OqxyBH8la8Gu4PhTHXZNZFmrtEIrrymkCEpJ7XZU=
github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250117061805-cd80d1780d76/go.mod h1:swAgO0nNekTSKGgFqiy4zShKaCDhiIZoKEFwpi7NBFE= github.com/cloudwego/eino-ext/components/document/parser/pdf v0.0.0-20250117061805-cd80d1780d76/go.mod h1:swAgO0nNekTSKGgFqiy4zShKaCDhiIZoKEFwpi7NBFE=
github.com/cloudwego/eino-ext/components/model/ark v0.0.0-20250224084944-a4e81e88cf1b h1:qibP2iDbklyMMcuOhxee7/gkAWu7chB1vmRzDEyIQ2E= github.com/cloudwego/eino-ext/components/model/ark v0.1.0 h1:WjOxzaFqVObKBnboNBNFmrRw1f6eldbGn5gsYR9bEUQ=
github.com/cloudwego/eino-ext/components/model/ark v0.0.0-20250224084944-a4e81e88cf1b/go.mod h1:E+vZK+7zt8ntzEB1wIMlfBQq8dNyZASryzLtQX9q7bM= github.com/cloudwego/eino-ext/components/model/ark v0.1.0/go.mod h1:ZQndPvPwpgSWx/yDFcajBhAVQC6wgRCJwYZBcIHjaaw=
github.com/cloudwego/eino-ext/components/model/deepseek v0.0.0-20250221090944-e8ef7aabbe10 h1:9iORkTzR5fFrChi+KZyjHb1V4giJjXwBKqdvA4Q/7AM= github.com/cloudwego/eino-ext/components/model/deepseek v0.0.0-20250221090944-e8ef7aabbe10 h1:9iORkTzR5fFrChi+KZyjHb1V4giJjXwBKqdvA4Q/7AM=
github.com/cloudwego/eino-ext/components/model/deepseek v0.0.0-20250221090944-e8ef7aabbe10/go.mod h1:7q+/XE3qUbziFpBtszj90yfn+J0bUHCED5ImvaLFRR0= github.com/cloudwego/eino-ext/components/model/deepseek v0.0.0-20250221090944-e8ef7aabbe10/go.mod h1:7q+/XE3qUbziFpBtszj90yfn+J0bUHCED5ImvaLFRR0=
github.com/cloudwego/eino-ext/components/model/ollama v0.0.0-20250221090944-e8ef7aabbe10 h1:szRTjISOn310TwL4yJqqkvKVv9N/31g3zuhOhR9X1WI= github.com/cloudwego/eino-ext/components/model/ollama v0.0.0-20250221090944-e8ef7aabbe10 h1:szRTjISOn310TwL4yJqqkvKVv9N/31g3zuhOhR9X1WI=
@ -537,8 +537,8 @@ github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/X
github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU= github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU=
github.com/volcengine/volc-sdk-golang v1.0.196 h1:KYbX76ibTlNhgm6Kq3sDTjrujDBd0za8ULg0v7+sCag= github.com/volcengine/volc-sdk-golang v1.0.196 h1:KYbX76ibTlNhgm6Kq3sDTjrujDBd0za8ULg0v7+sCag=
github.com/volcengine/volc-sdk-golang v1.0.196/go.mod h1:stZX+EPgv1vF4nZwOlEe8iGcriUPRBKX8zA19gXycOQ= github.com/volcengine/volc-sdk-golang v1.0.196/go.mod h1:stZX+EPgv1vF4nZwOlEe8iGcriUPRBKX8zA19gXycOQ=
github.com/volcengine/volcengine-go-sdk v1.0.181 h1:/3PB4M1N4fjMqiSKTJwX43EZ5Nn1HUOtQrSCk+22+wI= github.com/volcengine/volcengine-go-sdk v1.0.185 h1:MIH+YgdWZhO1fNg/vxLohl8ad7hlklaf46wpaTS1TN0=
github.com/volcengine/volcengine-go-sdk v1.0.181/go.mod h1:gfEDc1s7SYaGoY+WH2dRrS3qiuDJMkwqyfXWCa7+7oA= github.com/volcengine/volcengine-go-sdk v1.0.185/go.mod h1:gfEDc1s7SYaGoY+WH2dRrS3qiuDJMkwqyfXWCa7+7oA=
github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg= github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg=
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE= github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=

Loading…
Cancel
Save