test

test

这个MCP服务器提供了与阿里云(阿里巴巴云)服务交互的工具。

Eino 是一个用 Golang 编写的 LLM 应用程序开发框架,旨在简化 AI 应用程序的开发流程。

基本使用

直接使用组件

// 创建 LLM 模型实例
model, _ := openai.NewChatModel(ctx, config)

// 生成回复
message, _ := model.Generate(ctx, []*Message{
    SystemMessage("你是一个乐于助人的助手。"),
    UserMessage("未来的AI应用程序会是什么样子?")
})

编排功能

Eino 提供两种编排 API:

API特点
Chain简单的链式有向图,只能向前流动
Graph循环或非循环有向图,功能强大且灵活

Chain 示例

// 创建一个 ChatTemplate 后接 ChatModel 的简单链
chain, _ := NewChain[map[string]any, *Message]().
           AppendChatTemplate(prompt).
           AppendChatModel(model).
           Compile(ctx)

// 调用链
chain.Invoke(ctx, map[string]any{"query": "你的名字是什么?"})

Graph 示例

// 创建图
graph := NewGraph[map[string]any, *schema.Message]()

// 添加节点
_ = graph.AddChatTemplateNode("node_template", chatTpl)
_ = graph.AddChatModelNode("node_model", chatModel)
_ = graph.AddToolsNode("node_tools", toolsNode)
_ = graph.AddLambdaNode("node_converter", takeOne)

// 添加边和分支
_ = graph.AddEdge(START, "node_template")
_ = graph.AddEdge("node_template", "node_model")
_ = graph.AddBranch("node_model", branch)
_ = graph.AddEdge("node_tools", "node_converter")
_ = graph.AddEdge("node_converter", END)

// 编译和调用图
compiledGraph, _ := graph.Compile(ctx)
out, _ := compiledGraph.Invoke(ctx, map[string]any{"query": "北京本周末的天气"})

扩展功能

添加回调

handler := NewHandlerBuilder().
  OnStartFn(func(ctx context.Context, info *RunInfo, input CallbackInput) context.Context {
    log.Infof("onStart, runInfo: %v, input: %v", info, input)
    return ctx
  }).
  OnEndFn(func(ctx context.Context, info *RunInfo, output CallbackOutput) context.Context {
    log.Infof("onEnd, runInfo: %v, out: %v", info, output)
    return ctx
  }).
  Build()
  
compiledGraph.Invoke(ctx, input, WithCallbacks(handler))

分配选项

// 分配给所有节点
compiledGraph.Invoke(ctx, input, WithCallbacks(handler))

// 仅分配给 ChatModel 节点
compiledGraph.Invoke(ctx, input, WithChatModelOption(WithTemperature(0.5)))

// 仅分配给特定节点
compiledGraph.Invoke(ctx, input, WithCallbacks(handler).DesignateNode("node_1"))

主要特性

  • 丰富的组件:封装常见构建块如 ChatModel、Tool、Retriever 等
  • 强大的编排:通过图编排实现复杂的业务逻辑
  • 完整的流处理:自动处理流数据的拼接、打包、合并和复制

更多详细信息请访问 CloudWeGo 官网