首页 > 其他分享 >智普ai的并发调用-----go编写

智普ai的并发调用-----go编写

时间:2024-07-21 21:40:03浏览次数:8  
标签:wg 智普 string ai resp req json ----- go

//https://github.com/zhangbo2008/Concurrency_zhipuAI_call
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"sync"
	"time"
)

var zhipuapikey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" //===========input your key for 智普ai

func main() {
	allmes := []string{"你好1", "今天天气如何", "你会不会死", "你是谁啊", "我是谁", "你好1", "今天天气如何", "你会不会死", "你是谁啊", "我是谁"}
	var wg sync.WaitGroup
	wg.Add(len(allmes)) // 添加两个子协程
	t := time.Now()

	aa := func(a11 string) string { //go不支持函数嵌套, 但是可以写匿名函数,然后在外面给他命名aa即可.go语法很弱智.
		defer wg.Done()
		type yitiao struct {
			Role    string `json:"role"`
			Content string `json:"content"`
		}
		type yici struct {
			Model    string   `json:"model"`
			Messages []yitiao `json:"messages"`
		}
		a := yici{
			Model: "glm-4-0520",
			Messages: []yitiao{
				{Role: "user", Content: a11},
			},
		}
		a1, _ := json.Marshal(a)

		print(a1)

		targetUrl := "https://open.bigmodel.cn/api/paas/v4/chat/completions"

		client := &http.Client{}

		req, _ := http.NewRequest("POST", targetUrl, bytes.NewReader(a1))

		req.Header.Add("Authorization", "Bearer "+zhipuapikey)
		req.Header.Add("Content-Type", "application/json")

		resp, _ := client.Do(req)
		defer resp.Body.Close()

		body, _ := io.ReadAll(resp.Body)
		fmt.Println(string(body))

		return string(body)
	}
	for _, x := range allmes {
		go aa(x)
	}

	wg.Wait() // 等待所有子协程完成
	t2 := time.Now()
	fmt.Println("实用了多长时间", t2.Sub(t))
}

image

效果展示: 9条数据一起问用了4s多. 比串行快太多了.

标签:wg,智普,string,ai,resp,req,json,-----,go
From: https://www.cnblogs.com/zhangbo2008/p/18314993

相关文章

  • Elastic Search基于Spring Boot实现复杂查询和对复杂查询结果的映射银行账户对象并获
    packagecom.alatus.search;importcom.alatus.search.config.MallElasticSearchConfig;importcom.alibaba.fastjson.JSON;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importlombok.ToString;importorg.elasticsearch.......
  • 算法 - 求二进制数中1的个数
    转自: https://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html 一些简单的方法就不转了,转最后两个平行算法intBitCount4(unsignedintn){n=(n&0x55555555)+((n>>1)&0x55555555);n=(n&0x33333333)+((n>>2)&0x3333333......
  • 文心一言 VS 讯飞星火 VS chatgpt (307)-- 算法导论22.2 5题
    五、证明:在广度优先搜索算法里,赋给结点u的u.d值与结点在邻接链表里出现的次序无关。使用图22-3作为例子,证明:BFS所计算出的广度优先树可以因邻接链表中的次序不同而不同。如果要写代码,请用go语言。文心一言:首先,我们来证明在广度优先搜索(BFS)算法中,赋给结点$u$的......
  • 大创项目进展周报(组长)24.7.15-24.7.21
    上周计划及本周进展情况汇报上周计划:使用B站自主学习kotlin语言(视频链接:https://www.bilibili.com/video/BV1P94y1c7tV?t=2.1本周进展:全体组员已学习至中级篇本周遇到的问题与解决方案问题1:小组内成员由于初次接触kotlin语言,较难理解解决方案:促使小组成员在群聊内多沟......
  • [Codeforces Round 960 (Div. 2)]A-E
    CodeforcesRound960(Div.2)A-EA题意:公平博弈。给定一个数组n个数,每个数只能用一次。给一个\(mx\)。每次轮到自己操作的时候就选一个数组里的数,满足\(a[i]>=mx\),然后令\(mx=a[i]\).双方轮流做直到一方无法操作,则另一方取胜。Sol:赛时1min猜了个错解,只看最大值,只看最大值的出......
  • LAVIS库学习及MiniGPT4-Qwen中的实现
    目录LAVIS库一、lavis库介绍二、体验示例ImageCaptioningVisualquestionanswering(VQA)UnifiedFeatureExtractionInterface加载数据集在任务数据集上评估预训练模型微调BLIP在COCO-Captioning数据集深度剖析模型配置数据集配置三、lavis自定义模块3.1自定义数据集Datase......
  • Milvus 实践(1) --- 文本-图片交互式search搭建及原理
    目录背景训练素材downloadtorchvision简介python代码执行结果模型训练模型训练参数训练模型注意事项模型加载录入vectorDB使用预加载的模型参数对图片进行编码录入milvus查询效果查询编码milvussearch模型适用列表总结背景应该说Milvus在2.4以上版......
  • 【嵌入式DIY实例-ESP8266篇】-LCD ST7789显示DHT11传感器数据
    LCDST7789显示DHT11传感器数据文章目录LCDST7789显示DHT11传感器数据1、硬件准备与接线2、代码实现本文介绍如何将ESP8266NodeMCU板(ESP-12E)与DHT11(RHT01)数字湿度和温度传感器连接。NodeMCU从DHT11传感器读取温度和湿度值,并在ST7789TFT......
  • 【嵌入式DIY实例-ESP8266篇】- LCD ST7789显示DS18B20传感器数据
    LCDST7789显示DS18B20传感器数据文章目录LCDST7789显示DS18B20传感器数据1、硬件准备与接线2、代码实现本文介绍如何使用ESP8266NodeMCU开发板(ESP-12E)和DS18B20数字温度传感器实现简单的数字温度计。在此项目中,NodeMCU板从DS18B20传感器读......
  • C Prinmer Plus笔记第1-6章
    文章目录CPrinmerPlus笔记第1章初始C语言第2章C语言概述第3章数据和C第4章字符串和格式化输入/输出4.14.2.14.2.34.3常量和C预处理器4.4printf()和scanf()第5章运算符、表达式和语句第6章C控制语句:循环CPrinmerPlus笔记超简洁版大一学过了现在大三上课......