eino调用大模型

2026年1月11日 · 204 字 · 1 分钟

通过字节开源的eino去调用大模型

eino调用大模型

enio官方文档

enio是由字节跳动在2024年末进行开源的一款golang+agent的框架

其实没啥特别的,去官网一看就知道怎么调用了(写这篇博客存粹为了给自己用过eino做个痕迹,哈哈哈哈哈)

通过enio调用deepseek

var DeepseekModel *deepseek.ChatModel

func CreateDeepseekModel() *deepseek.ChatModel {
	ctx := context.Background()
	apiKey := "sk-xxxxxxx"
	cm, err := deepseek.NewChatModel(ctx, &deepseek.ChatModelConfig{
		APIKey:  apiKey,
		Model:   "deepseek-chat",
		BaseURL: "https://api.deepseek.com/beta",

		//以下是可选配置
		Timeout:     30 * time.Second,
		MaxTokens:   1000,
		Temperature: 1.0, //温度越高回答的越发散
		Stop:        []string{"的", "了"},//设置停用词
	})
	if err != nil {
		fmt.Println("创建deepseek模型失败", err)
		return nil
	}
	return cm
}

通过enio调用火山引擎

大差不差,其实都一样

var ArkModel *ark.ChatModel

func CreateArkModel() *ark.ChatModel {
	ctx := context.Background()

	chatModel, err := ark.NewChatModel(ctx, &ark.ChatModelConfig{
		APIKey: "xxxxxx",
		Model:  "doubao-seed-1-8-251228",
		//还有一些可选参数懒得写了,官方文档都有
	})
	if err != nil {
		fmt.Println("创建ark模型失败", err)
		return nil
	}
	return chatModel
}

最终调用

这里展示deepseek的运行,那个火山引擎的大差不差,显而易见

func CreateMessage() []*schema.Message {
	inMsgs := []*schema.Message{
		{
			Role:    schema.User,
			Content: "你是啥模型",
		},
	}
	return inMsgs
}

func RunModel(stream bool) {
	ctx := context.Background()
	messages := CreateMessage()
	deepseekModel := CreateDeepseekModel()
	//arkModel := CreateArkModel()
	//如果是非流式
	if !stream {
		msg, err := deepseekModel.Generate(ctx, messages)
		if err != nil {
			fmt.Println("生成答案失败", err)
			return
		}
		fmt.Println(msg.Role, msg.Content)
	} else {
		//流式
		streamResult, err := deepseekModel.Stream(ctx, messages)
		if err != nil {
			fmt.Println("生成答案失败", err)
			return
		}
		defer streamResult.Close()
		for {
			msg, err := streamResult.Recv()
			if err != nil {
				if err == io.EOF {
					break
				}
				fmt.Println("读取答案失败", err)
				return
			}
			fmt.Printf("%s", msg.Content)
		}
	}
}

func main() {
	RunModel(true)
	RunModel(false)
}
我是DeepSeek,由深度求索公司创造
assistant 我是DeepSeek,由深度求索公司创造