介绍 Agency: 使AI与Go语言无缝对接

简介: 介绍 Agency: 使AI与Go语言无缝对接

在当今应用开发领域,类似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解决方案。

相关文章
|
6月前
|
人工智能 程序员 API
Motia:程序员福音!AI智能体三语言混编,零基础秒级部署
Motia 是一款专为软件工程师设计的 AI Agent 开发框架,支持多种编程语言,提供零基础设施部署、模块化设计和内置可观测性功能,帮助开发者快速构建和部署智能体。
480 15
Motia:程序员福音!AI智能体三语言混编,零基础秒级部署
|
1月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。
|
1月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
2月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
2月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
220 0
|
3月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
4月前
|
分布式计算 Go C++
初探Go语言RPC编程手法
总的来说,Go语言的RPC编程是一种强大的工具,让分布式计算变得简单如同本地计算。如果你还没有试过,不妨挑战一下这个新的编程领域,你可能会发现新的世界。
106 10
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
Qwen3强势来袭:推理力爆表、语言超百种、智能体协作领先,引领AI开源大模型
Qwen3强势来袭:推理力爆表、语言超百种、智能体协作领先,引领AI开源大模型
Qwen3强势来袭:推理力爆表、语言超百种、智能体协作领先,引领AI开源大模型
|
5月前
|
存储 人工智能 JSON
AI智能体内战终结者!A2A:谷歌开源的首个标准智能体交互协议,让AI用同一种“语言”交流
A2A是谷歌推出的首个标准化智能体交互协议,通过统一通信规范实现不同框架AI智能体的安全协作,支持多模态交互和长时任务管理,已有50多家企业加入生态。
434 0
AI智能体内战终结者!A2A:谷歌开源的首个标准智能体交互协议,让AI用同一种“语言”交流
|
5月前
|
人工智能 自然语言处理 搜索推荐
13.5K Star!支持5国语言+全栈语音生成,这个开源AI语音项目绝了!
CosyVoice是由FunAudioLLM团队开发的多语言大语音生成模型,支持中文、英语、日语、韩语和粤语等5种语言。该项目提供从推理、训练到部署的全栈能力,具备零样本语音克隆、跨语言合成、指令控制等前沿功能。其技术架构包括底层模型、多语言支持、框架支持及部方案等,性能优越,RTF<0.2,GPU内存<4GB,QPS>20。相比同类项目,CosyVoice在语言支持、特色功能和部署难度上表现出色,支持本地部署保障数据隐私,并大幅降低商业方案成本。适用于自媒体创作、在线教育、游戏开发、智能硬件和影视制作等多种场景。
366 0

热门文章

最新文章