Skip to content

Commit

Permalink
fix: some modify
Browse files Browse the repository at this point in the history
  • Loading branch information
meguminnnnnnnnn committed Jan 17, 2025
1 parent c14983b commit 5c9d156
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 47 deletions.
27 changes: 2 additions & 25 deletions components/retriever/router/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (

"github.com/cloudwego/eino-ext/components/retriever/volc_vikingdb"
"github.com/cloudwego/eino/components/retriever"
"github.com/cloudwego/eino/flow/retriever/multiquery"
"github.com/cloudwego/eino/flow/retriever/router"

"github.com/cloudwego/eino-examples/internal/logs"
Expand All @@ -43,7 +42,7 @@ func main() {
return
}

// rewrite query by llm
// route retriever by custom router
mqr, err := router.NewRetriever(ctx, &router.Config{
Retrievers: map[string]retriever.Retriever{
"1": vk,
Expand Down Expand Up @@ -76,29 +75,7 @@ func main() {
return
}

logs.Errorf("Multi-Query Retrieve success, docs=%v", resp)

// rewrite query by custom method
mqr, err = multiquery.NewRetriever(ctx, &multiquery.Config{
RewriteHandler: func(ctx context.Context, query string) ([]string, error) {
return strings.Split(query, "\n"), nil
},
MaxQueriesNum: 3,
OrigRetriever: vk,
FusionFunc: nil, // use default fusion, just deduplicate by doc id
})
if err != nil {
logs.Errorf("NewMultiQueryRetriever failed, err=%v", err)
return
}

resp, err = mqr.Retrieve(ctx, "tourist attraction")
if err != nil {
logs.Errorf("Multi-Query Retrieve failed, err=%v", err)
return
}

logs.Infof("Multi-Query Retrieve success, docs=%v", resp)
logs.Infof("Router Retrieve success, docs=%v", resp)
}

func newVikingDBRetriever(ctx context.Context, host, region, ak, sk string) (retriever.Retriever, error) {
Expand Down
6 changes: 2 additions & 4 deletions quickstart/chat/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import (

func main() {
openAIAPIKey := os.Getenv("OPENAI_API_KEY")
openAIModelName := os.Getenv("OPENAI_MODEL_NAME")

ctx := context.Background()

Expand Down Expand Up @@ -71,9 +70,8 @@ func main() {

// 创建 OpenAI ChatModel, 假设使用 openai 官方服务。
chatModel, err := openai.NewChatModel(ctx, &openai.ChatModelConfig{
Model: openAIModelName, // 使用的模型版本
APIKey: openAIAPIKey, // OpenAI API 密钥

Model: "gpt-4o", // 使用的模型版本
APIKey: openAIAPIKey, // OpenAI API 密钥
})
if err != nil {
logs.Errorf("NewChatModel failed, err=%v", err)
Expand Down
42 changes: 24 additions & 18 deletions quickstart/todoagent/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"github.com/cloudwego/eino/compose"
"github.com/cloudwego/eino/schema"

"github.com/cloudwego/eino-examples/internal/gptr"
"github.com/cloudwego/eino-examples/internal/logs"
)

Expand Down Expand Up @@ -57,11 +58,10 @@ func main() {
}

// 创建并配置 ChatModel
temp := float32(0.7)
chatModel, err := openai.NewChatModel(context.Background(), &openai.ChatModelConfig{
Model: "gpt-4o",
APIKey: openAIAPIKey,
Temperature: &temp,
Temperature: gptr.Of(float32(0.7)),
})
if err != nil {
logs.Errorf("NewChatModel failed, err=%v", err)
Expand All @@ -70,8 +70,9 @@ func main() {

// 获取工具信息, 用于绑定到 ChatModel
toolInfos := make([]*schema.ToolInfo, 0, len(todoTools))
for _, tool := range todoTools {
info, err := tool.Info(ctx)
var info *schema.ToolInfo
for _, todoTool := range todoTools {
info, err = todoTool.Info(ctx)
if err != nil {
logs.Infof("get ToolInfo failed, err=%v", err)
return
Expand Down Expand Up @@ -158,7 +159,7 @@ func getAddTodoTool() tool.InvokableTool {
// 自行实现 InvokableTool 接口
type ListTodoTool struct{}

func (lt *ListTodoTool) Info(ctx context.Context) (*schema.ToolInfo, error) {
func (lt *ListTodoTool) Info(_ context.Context) (*schema.ToolInfo, error) {
return &schema.ToolInfo{
Name: "list_todo",
Desc: "List all todo items",
Expand All @@ -172,10 +173,6 @@ func (lt *ListTodoTool) Info(ctx context.Context) (*schema.ToolInfo, error) {
}, nil
}

type TodoListParams struct {
Finished *bool `json:"finished"`
}

type TodoUpdateParams struct {
ID string `json:"id" jsonschema:"description=id of the todo"`
Content *string `json:"content,omitempty" jsonschema:"description=content of the todo"`
Expand All @@ -185,25 +182,34 @@ type TodoUpdateParams struct {
}

type TodoAddParams struct {
Content string `json:"content"`
StartedAt *int64 `json:"started_at,omitempty"` // 开始时间
Deadline *int64 `json:"deadline,omitempty"`
Content string `json:"content"`
StartAt *int64 `json:"started_at,omitempty"` // 开始时间
Deadline *int64 `json:"deadline,omitempty"`
}

func (lt *ListTodoTool) InvokableRun(ctx context.Context, argumentsInJSON string, opts ...tool.Option) (string, error) {
func (lt *ListTodoTool) InvokableRun(_ context.Context, argumentsInJSON string, _ ...tool.Option) (string, error) {
logs.Infof("invoke tool list_todo: %s", argumentsInJSON)
// 具体的调用逻辑

// Tool处理代码
// ...

return `{"todos": [{"id": "1", "content": "在2024年12月10日之前完成Eino项目演示文稿的准备工作", "started_at": 1717401600, "deadline": 1717488000, "done": false}]}`, nil
}

func AddTodoFunc(ctx context.Context, params *TodoAddParams) (string, error) {
func AddTodoFunc(_ context.Context, params *TodoAddParams) (string, error) {
logs.Infof("invoke tool add_todo: %+v", params)
// 具体的调用逻辑

// Tool处理代码
// ...

return `{"msg": "add todo success"}`, nil
}

func UpdateTodoFunc(ctx context.Context, params *TodoUpdateParams) (string, error) {
func UpdateTodoFunc(_ context.Context, params *TodoUpdateParams) (string, error) {
logs.Infof("invoke tool update_todo: %+v", params)
// 具体的调用逻辑

// Tool处理代码
// ...

return `{"msg": "update todo success"}`, nil
}

0 comments on commit 5c9d156

Please sign in to comment.