一篇学会AI与Go语言无缝对接

发表于:2023-12-06 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:爱发白日梦的后端    来源:CSDN

  在当今应用开发领域,类似OpenAI API等生成式AI技术的蓬勃发展正在彻底改变着应用开发的格局。Python和JavaScript等语言已经拥有丰富的资源来支持这些技术,其中LangChain就是一个显著的例子。然而,Go语言开发者面临的选择却相对有限。LangChainGo,作为LangChain的Go语言版本,一直在努力与Go的编程理念保持一致,而LangChain本身则常被认为过于复杂。
  为了满足对一个既简单又强大的Go兼容工具的需求,我们推出了Agency。这个Go框架采用了一种精简的方法论,与Go固有的静态类型和性能效率的优势完美契合。它代表了我们对向Go编程社区引入用户友好且高效的AI功能的解决方案。
  Agency的特性
  ·Go编程理念契合: 与LangChainGo不同,Agency注重与Go的编程理念的一致性,使得开发者更容易上手。
  · 简洁而强大: 我们精心打磨了Agency的框架,确保其在保持简洁易用的同时,不失强大的功能。
  · 静态类型与性能效率: 利用Go语言的静态类型和出色的性能优势,Agency在处理AI功能时更为高效。
  Agency在实战中的应用
  package main
  import (
   "bufio"
   "context"
   "fmt"
   "os"
   _ "github.com/joho/godotenv/autoload"
   "github.com/neurocult/agency"
   "github.com/neurocult/agency/providers/openai"
  )
  func main() {
   // 初始化Assistant
   assistant := openai.
    New(openai.Params{Key: os.Getenv("OPENAI_API_KEY")}).
    TextToText(openai.TextToTextParams{Model: "gpt-3.5-turbo"}).
    SetPrompt("You are helpful assistant.")
   // 交互式聊天
   messages := []agency.Message{}
   reader := bufio.NewReader(os.Stdin)
   ctx := context.Background()
   for {
    fmt.Print("User: ")
    text, err := reader.ReadString('\\n')
    if err != nil {
     panic(err)
    }
    // 用户输入
    input := agency.UserMessage(text)
    // 执行Assistant
    answer, err := assistant.SetMessages(messages).Execute(ctx, input)
    if err != nil {
     panic(err)
    }
    // 打印Assistant回答
    fmt.Println("Assistant: ", answer)
    // 更新消息记录
    messages = append(messages, input, answer)
   }
  }
  以上是一个简单的Chat例子,展示了如何使用Agency框架与OpenAI的API实现基于Go的交互式聊天。这个例子体现了Agency的简单易用,以及如何与Go的语言特性无缝结合,为Go语言开发者提供了一种高效且友好的AI功能引入方式。
  结语
  在这个AI盛行的时代,我们深知Go语言开发者对于高效、简单而强大的AI工具的需求。Agency的诞生旨在填补Go语言领域的空白,为开发者提供一种更直观、更贴近Go编程理念的AI解决方案。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号