首页 > 其他分享 >swag简单示例

swag简单示例

时间:2023-09-04 23:33:36浏览次数:27  
标签:swag embeddings struct err 示例 json 简单 gin type

package main

import (
	_ "awesomeProject1/docs"
	"fmt"
	"github.com/gin-gonic/gin"
	swaggerFiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
	"net/http"
	"os"
)

type Metadata struct {
	AppId   int    `json:"appid"`
	AppName string `json:"appname"`
}

type RequestPayload struct {
	InputTexts []string `json:"input_texts"`
}

type ResponsePayload struct {
	OutputEmbeddings [][]float32 `json:"output_embeddings"`
}

type EmbeddingRequest struct {
	MetaInfo    Metadata       `json:"metadata"`
	PayloadData RequestPayload `json:"payload"`
}

type EmbeddingResponse struct {
	MetaInfo    Metadata        `json:"metadata"`
	PayloadData ResponsePayload `json:"payload"`
}

func main() {
	r := gin.Default()
	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

	r.POST("/get_embeddings", Embedding)

	if err := r.Run(":8080"); err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
}

// Embedding
// @Summary Get embeddings for input texts
// @Description Returns embeddings for a list of input texts
// @Tags embeddings
// @Param requestBody body EmbeddingRequest true "Request body for embeddings"
// @Success 200 {object} EmbeddingResponse
// @Router /get_embeddings [post]
func Embedding(c *gin.Context) {
	var req EmbeddingRequest
	var resp EmbeddingResponse

	if err := c.ShouldBindJSON(&req); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}

	embeddings := generateEmbeddings(req.PayloadData.InputTexts)

	resp.MetaInfo = req.MetaInfo
	resp.PayloadData.OutputEmbeddings = embeddings

	c.JSON(http.StatusOK, resp)
}

func generateEmbeddings(inputTexts []string) [][]float32 {
	embeddings := make([][]float32, len(inputTexts))
	for i, text := range inputTexts {
		fmt.Printf("%d %s", i, text)
		embeddings[i] = []float32{0.1, 0.2, 0.3} // Placeholder values
	}
	return embeddings
}

标签:swag,embeddings,struct,err,示例,json,简单,gin,type
From: https://www.cnblogs.com/tangjicheng/p/17678408.html

相关文章

  • Go语言实现Kafka消费者的示例代码
    Kafka是一种分布式流处理平台,由Facebook于2011年推出,现在已经成为Apache项目的一部分。Kafka提供了高可用性、可扩展性和低延迟的消息传递服务,适用于处理实时和离线数据。Kafka的主要功能包括生产者-消费者通信、批处理和实时数据流处理。Kafka基于发布/订阅模型,允许消息发布者将数......
  • 今天练习element组件的时候,引入element样式和脚本文件以及vue的组件之后,导入简单eleme
    2023-09-04今天练习element组件的时候,引入element样式和脚本文件以及vue的组件之后,导入简单element组件练习之后,查看组件的时候,样式一直出不来,经过我多次排查,终于发现,导入的三个内容是有顺序排序要求的。必须先导入vue,然后再导入其他的两个。<!DOCTYPEhtml><htmllang="en">......
  • 剑指 Offer 65. 不用加减乘除做加法(简单)
    题目:classSolution{public:intadd(inta,intb){while(b){//总体思路:上一次产生的进位数*进制数+本位数,进制数为0的时候直接返回本位数即可intcarry=a&b;//计算进位a=a^b;//计算本位b......
  • 剑指 Offer 15. 二进制中1的个数(简单)
    题目:classSolution{public:inthammingWeight(uint32_tn){intresult=0;for(inti=0;i<32;i++){if(n&(1<<i))result++;//利用按位与}returnresult;}};......
  • spfa在使用中问题的简单分析
    作者水平一般,有问题请指出,我将及时修改。〇、问题引入spfa本质上是队列优化贝尔曼福特。我们可以使用队列,在每一轮的点更新中仅更新上一轮更新中的被更新点的相邻的点(好绕……)。这种情况下的算法复杂度与Dijkstra不相上下。但是有一个问题,这么好的算法为什么没有被大量......
  • csgo如何显示帧数(含代码示例)
    CSGO可以通过控制台命令来显示帧数,代码如下:打开CSGO游戏,按下“~”键打开控制台;CSGO可以通过控制台命令来显示帧数,代码如下:1.打开CSGO游戏,按下“~”键打开控制台;2.在控制台输入“cl_showfps1”,即可开启帧数显示;3.若要关闭帧数显示,只需在控制台输入“cl_showfps0”即可。......
  • plumelog介绍与应用-一个简单易用的java分布式日志系统
    官方文档:http://www.plumelog.com/zh-cn/docs/FASTSTART.html简介无代码入侵的分布式日志系统,基于log4j、log4j2、logback搜集日志,设置链路ID,方便查询关联日志基于elasticsearch作为查询引擎高吞吐,查询效率高全程不占应用程序本地磁盘空间,免维护;对于项目透明,不影响项目本身运行无......
  • Java对象与json的转换使用的依赖是fastjson,转换的简单案例
    2023-09-04<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>转换的简单案例packagecom.hh.json;importcom.alibaba.fastjson......
  • Subversion权限文件AuthzSVNAccessFile示例[摘]
    Subversion权限文件AuthzSVNAccessFile示例选择自digitking的Blog  在使用Subversion时,认证文件AuthzSVNAccessFile能控制每一个目录的权限,但讲解的文档较少,中文文档更少。下面通过实例讲解使用方法。环境Windows2003Server,局域网,域:domain.com.cnApache2.0.52Subversion......
  • Axure动态面板简单使用,左边点击右边查看
    1.首先先把左边的信息(不管是文字还是文本都行)准备好,然后添加动态模板 2.此时动态模板什么东西都没有,我们需要添加状态,状态就是我们要看到的信息 3.现在我们要做交互动作,让他们关联起来 4.最后预览,点击试试看 ......