当 go-zero 邂逅 chatgpt...

简介: 当 go-zero 邂逅 chatgpt...

前言

使用 chatgpt 已久,帮我大幅提升了工作效率。之前用官方web版,由于网络原因,经常问题回答到一半,没有下文了。然后自己搭建了一个基于 api key 的服务,太稳定了,真香!

今晚在想,是不是可以引导 go-zero 社区同学通过 chatgpt 来自助寻求帮助呢?于是,我就试了一下,结果。。。

很赞!

调教 chatgpt

没有使用任何复杂的 prompt,直接上。。。

我的提问:给 go 新手写个文章介绍怎么用 go-zero 编写一个简单的 web service

回答是使用的老版本的 go-zero,但内容是基本正确的,我告诉她,你 out 了,要用新版本,要用 Go 1.18,然后。。。

我的提问:给 go 新手写个文章介绍怎么用 go-zero 编写一个简单的 web service,使用go 1.18,使用go install安装goctl,而不是使用go get

以下是 chatgpt 的回答,一气呵成!


在本文中,我们将学习如何使用go-zero框架编写一个简单的web服务。我们将使用Go 1.18版本,以及github.com/zeromicro/go-zero库和github.com/zeromicro/go-zero/tools/goctl工具。

环境准备

首先确保你已经安装了Go 1.18。你可以通过运行以下命令来验证:

go version

接下来,安装go-zero库:

go get -u github.com/zeromicro/go-zero

然后,安装goctl工具:

go install github.com/zeromicro/go-zero/tools/goctl@latest

请确保 $GOPATH/bin 目录已经添加到您的 PATH 环境变量中。

创建项目

创建一个新的目录并进入该目录:

mkdir gozeroweb && cd gozeroweb

初始化go模块:

go mod init example.com/gozeroweb

编写API定义文件

在项目目录中,创建一个名为api.greet.api的文件,并添加以下内容:

type GreetReq struct {
 Name string `path:"name"`
}
type GreetResp struct {
 Message string `json:"message"`
}
service greet-api {
 @handler GreetHandler
 get /greet/from/:name(GreetReq) returns (GreetResp);
}

这个文件定义了一个名为greet-api的服务,它包含一个GET请求,用于处理/greet/from/:name路径,并返回一个GreetResp类型的响应。

生成代码

使用goctl工具根据API定义文件生成代码:

goctl api go -api api.greet.api -dir .

这将在当前目录下生成greet.goetc/greet-api.yaml两个文件。

实现业务逻辑

修改greet.go文件,实现GreetHandler逻辑:

package main
import (
 "net/http"
 "example.com/gozeroweb/api"
 "example.com/gozeroweb/internal/config"
 "example.com/gozeroweb/internal/svc"
 "github.com/zeromicro/go-zero/rest/httpx"
)
func NewGreetHandler(ctx *svc.ServiceContext) http.HandlerFunc {
 return func(w http.ResponseWriter, r *http.Request) {
  var req api.GreetReq
  err := httpx.Parse(r, &req)
  if err != nil {
   http.Error(w, err.Error(), http.StatusBadRequest)
   return
  }
  message := "Hello, " + req.Name
  resp := api.GreetResp{Message: message}
  httpx.OkJson(w, resp)
 }
}
func main() {
 flag.Parse()
 var c config.Config
 conf.MustLoad(*configFile, &c)
 ctx := svc.NewServiceContext(c)
 server := rest.NewServer(c.RestConf)
 defer server.Stop()
 handler.RegisterHandlers(server, ctx)
 fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
 server.Start()
}

配置并运行服务

修改etc/greet-api.yaml以配置服务:

Name: greet-api
Host: 0.0.0.0
Port: 8080

运行服务:

go run greet.go -f etc/greet-api.yaml

启动后,你可以通过访问http://localhost:8080/greet/from/YourName来测试服务。


以上是 chatgpt 的回答,你满意嘛?

我也尝试了 google 的 bard,google 这方面确实落后了点。。。

然后呢?!

欢迎加入 go-zero 社区群,在群里跟大家分享 chatgpt & go-zero 让你惊讶的故事!

后续我们也会整理关于 go-zero 的实用 prompt 列表给大家,敬请期待。

项目地址

go-zero 微服务框架:https://github.com/zeromicro/go-zero

相关文章
|
存储 编译器 Go
结合ChatGPT辅助学习Go语言底层原理
在当今的信息时代,编程语言已经成为了科技领域的基础工具之一。其中,Go语言以其简洁、高效和并发性强等优点,在开发者中赢得了广泛的好评。然而,对于初学者或是想要深入理解Go语言底层原理的人来说,直接阅读和理解其源码可能会面临一定困难。我主要从以下几个方面分享一些使用ChatGPT辅助学习Go语言底层源码的小技巧。
511 0
结合ChatGPT辅助学习Go语言底层原理
|
人工智能 自然语言处理 程序员
使用 go-openai 轻松调用 chatGPT:释放无限创造力!
使用 go-openai 轻松调用 chatGPT:释放无限创造力!
|
JSON 人工智能 API
用 Go 编写 ChatGPT 插件
用 Go 编写 ChatGPT 插件
256 0
|
JavaScript Java 程序员
【chatgpt】openai api 接口调用(go语言版)
【chatgpt】openai api 接口调用(go语言版)
1480 0
|
4月前
|
机器学习/深度学习 数据采集 人工智能
从ChatGPT到文心一言:AI为什么能“懂人话”?——大语言模型的底层逻辑揭秘
从ChatGPT到文心一言:AI为什么能“懂人话”?——大语言模型的底层逻辑揭秘
588 9
|
7月前
|
传感器 存储 人工智能
ChatGPT让AI展现‘智能’魅力,函数调用和RAG如何助力迈向AI Agent?
本文由AI产品专家三桥君探讨了AI从被动响应到主动决策的演进路径,重点分析了函数调用和RAG技术在构建AI Agent中的关键作用。文章梳理了大模型能力的迭代(原生能力与涌现能力),技术演进的三个阶段(提示工程→函数调用→RAG),并提出AI Agent需具备环境感知、推理决策和行动执行的核心要素。AI产品专家三桥君认为,未来AGI需突破跨领域学习、实时更新和安全性挑战,最终实现如"贾维斯"般的智能伙伴。
242 1
ChatGPT让AI展现‘智能’魅力,函数调用和RAG如何助力迈向AI Agent?
|
12月前
|
人工智能 Linux API
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
Omnitool 是一款开源的 AI 桌面环境,支持本地运行,提供统一交互界面,快速接入 OpenAI、Stable Diffusion、Hugging Face 等主流 AI 平台,具备高度扩展性。
1292 94
Omnitool:开发者桌面革命!开源神器一键整合ChatGPT+Stable Diffusion等主流AI平台,本地运行不联网
|
7月前
|
机器学习/深度学习 人工智能 文字识别
浏览器AI模型插件下载,支持chatgpt、claude、grok、gemini、DeepSeek等顶尖AI模型!
极客侧边栏是一款浏览器插件,集成ChatGPT、Claude、Grok、Gemini等全球顶尖AI模型,支持网页提问、文档分析、图片生成、智能截图、内容总结等功能。无需切换页面,办公写作效率倍增。内置书签云同步与智能整理功能,管理更高效。跨平台使用,安全便捷,是AI时代必备工具!
559 8
|
机器学习/深度学习 人工智能 搜索推荐
哈佛推出全新类ChatGPT癌症诊断AI,登上Nature!准确率高达96%
哈佛大学研究团队开发的新型AI模型CHIEF,在《自然》期刊发表,癌症诊断准确率达96%。CHIEF基于深度学习,能自动识别、分类癌症并预测生存期,具高准确性、多任务能力和泛化性。它结合病理图像与基因组学等数据,显著提升诊断效率和个性化治疗水平,有望改善医疗资源不平等。但数据隐私和临床效果验证仍是挑战。论文见:https://www.nature.com/articles/s41586-024-07894-z
507 101
|
11月前
|
人工智能 编解码 运维
当ChatGPT能写情书、Sora会造电影:我们必须掌握的AI内容识别技能
随着AI技术迅猛发展,AI生成内容在文学、新闻、绘画等领域广泛应用,但其真假难辨、质量参差不齐,可能带来信息误导、知识产权侵犯及安全风险等问题。学会识别AI生成内容至关重要,包括通过逻辑漏洞排查、语言风格分析、生物特征异常检测等手段审核文本、图片和视频。人工审核在面对高隐蔽性内容时仍不可替代,需结合工具与上下文理解共同筑起防护屏障。守护真实信息、规避风险,是每个人在AI时代应尽的责任。
314 7

热门文章

最新文章