欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang中調(diào)用deepseekr1的教程詳解

 更新時(shí)間:2025年02月18日 10:02:29   作者:又菜又愛玩嗚嗚嗚~  
這篇文章主要為大家詳細(xì)介紹了Golang中調(diào)用deepseekr1的相關(guān)教程,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下

1.官方文檔

2.請(qǐng)求看一下

因?yàn)閐eepseek官方API的deepssek-r1響應(yīng)太慢,于是用了騰訊的API來(lái)測(cè)試

func main() {
    cfg := config.Config{
        BaseURL:    "https://api.lkeap.cloud.tencent.com",
        APIKey:     "API-KEY",
        HTTPClient: &http.Client{},
    }
    // 初始化deepseek
    d := deepseek.NewDeepSeek(cfg)
    // 封裝請(qǐng)求體
    body := model.Request{
        Model:    "deepseek-r1",
        Messages: []model.Message{{Role: "system", Content: "You are a helpful assistant."}, {Role: "user", Content: "你是誰(shuí)"}},
    }
    // 同步調(diào)用
    chat, err := d.Chat(context.Background(), body)
    if err != nil {
        panic(err)
    }
    fmt.Println(chat.Content)
    // 流式調(diào)用
    //stream, _ := d.Stream(context.Background(), body)
    //console.ConsoleContent(stream)
}

響應(yīng)的格式

{"id":"ab6e60c5df865a38a",
"object":"chat.completion",
"created":1739782294,
"model":"deepseek-r1",
"choices":[
    {"index":0, "message":{
        "role":"assistant",
        "content":"\n\n您好!我是DeepSeek-R1,一個(gè)由深度求索公司開發(fā)的智能學(xué),代碼和邏輯推理等理工類問題。我會(huì)保持誠(chéng)實(shí),如果不知道答案會(huì)明確告知,并始終聚焦于提供最有幫助的信息。",
        "reasoning_content":"\n嗯,用戶問我是誰(shuí),我需要用中文回答。首先,我要明確自己的身份,是DeepSeek-R1,一個(gè)由深度求索公司開發(fā),可能無(wú)法提供最新信息。同時(shí),要避免使用復(fù)雜術(shù)語(yǔ),保持口語(yǔ)化,讓回答更自然??赡苡脩魟偨佑|我,所以需要簡(jiǎn)潔明了,不需要太長(zhǎng)的解釋。還要注意語(yǔ)氣友好,表現(xiàn)出愿意幫助的態(tài)度。有沒有遺漏什么?比如是否需要提到公司背景或者隱私政策?不過ens":230,
        "total_tokens":246
        
    }}

發(fā)現(xiàn)跟deepseek-chat的響應(yīng)只是多路一個(gè)reasoning_content,在響應(yīng)上面加上就可以了

type Response struct {
    Content          string `json:"content"`
    ReasoningContent string `json:"reasoning_content"` // 思考回答
}

3.改造后的整個(gè)訪問流程

1. 調(diào)用流式請(qǐng)求

   stream, _ := d.Stream(context.Background(), body)

2. 發(fā)起流式請(qǐng)求

   func (d *DeepSeek) Stream(ctx context.Context, request model.Request) (<-chan model.Response, error) {
    return http_parse.HandleStreaming(ctx, request, &d.Cfg)
}

3. 響應(yīng)處理

	func HandleStreaming(ctx context.Context, req model.Request, c *config.Config) (<-chan model.Response, error) {
	ch := make(chan model.Response)
	go func() {
		defer close(ch)
		// 發(fā)起流式請(qǐng)求
		resp, err := DoRequest(ctx, req, true, c)
		if err != nil {
			ch <- model.Response{Content: "request error!"}
			return
		}
		defer resp.Body.Close()

		scanner := bufio.NewScanner(resp.Body)
		for scanner.Scan() {
			select {
			case <-ctx.Done():
				ch <- model.Response{Content: "ctx done!"}
				return
			default:
				// 解析事件流
				event := ParseEvent(scanner.Bytes())
				if event != nil {
					ch <- *event
				}
			}
		}
	}()

	return ch, nil
}

4. 打印結(jié)果

    func Content(ch <-chan model.Response) {
    for chunk := range ch {
        if chunk.ReasoningContent != "" {
            fmt.Printf(chunk.ReasoningContent)
            continue
        }
        // 打印回答
        fmt.Printf(chunk.Content)
    }
}

4.代碼地址

https://gitee.com/li-zhuoxuan/go_ai

到此這篇關(guān)于Golang中調(diào)用deepseekr1的教程詳解的文章就介紹到這了,更多相關(guān)Go調(diào)用deepseekr1內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言里切片slice的用法介紹

    Go語(yǔ)言里切片slice的用法介紹

    這篇文章介紹了Go語(yǔ)言里切片slice的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Golang使用ReverseProxy實(shí)現(xiàn)反向代理的方法

    Golang使用ReverseProxy實(shí)現(xiàn)反向代理的方法

    本文介紹了如何使用Golang的ReverseProxy實(shí)現(xiàn)反向代理,包括源碼結(jié)構(gòu)解析和官方單機(jī)示例NewSingleHostReverseProxy,同時(shí)指出,若要實(shí)現(xiàn)負(fù)載均衡,需要自行開發(fā),還提供了一個(gè)簡(jiǎn)單的HTTP服務(wù)用于測(cè)試,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Go語(yǔ)言map元素的刪除和清空

    Go語(yǔ)言map元素的刪除和清空

    本文主要介紹了Go語(yǔ)言map元素的刪除和清空,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Go語(yǔ)言dolphinscheduler任務(wù)調(diào)度處理

    Go語(yǔ)言dolphinscheduler任務(wù)調(diào)度處理

    這篇文章主要為大家介紹了Go語(yǔ)言dolphinscheduler任務(wù)調(diào)度處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • golang下的viper包的簡(jiǎn)單使用方式

    golang下的viper包的簡(jiǎn)單使用方式

    這篇文章主要介紹了golang下的viper包的簡(jiǎn)單使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Go語(yǔ)言學(xué)習(xí)筆記之錯(cuò)誤和異常詳解

    Go語(yǔ)言學(xué)習(xí)筆記之錯(cuò)誤和異常詳解

    Go語(yǔ)言采用返回值的形式來(lái)返回錯(cuò)誤,這一機(jī)制既可以讓開發(fā)者真正理解錯(cuò)誤處理的含義,也可以大大降低程序的復(fù)雜度,下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言學(xué)習(xí)筆記之錯(cuò)誤和異常的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題

    淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題

    下面小編就為大家?guī)?lái)一篇淺談beego默認(rèn)處理靜態(tài)文件性能低下的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-06-06
  • Go使用MongoDB的操作指南(增刪改查)

    Go使用MongoDB的操作指南(增刪改查)

    MongoDB 是一種高性能、開源、文檔型的 NoSQL 數(shù)據(jù)庫(kù),廣泛應(yīng)用于 Web 應(yīng)用、大數(shù)據(jù)以及云計(jì)算領(lǐng)域,Go 語(yǔ)言則以其快速、開發(fā)效率高、代碼可維護(hù)性強(qiáng)著稱,本指南將詳細(xì)介紹如何在 Go 語(yǔ)言中使用 MongoDB 進(jìn)行數(shù)據(jù)庫(kù)操作,需要的朋友可以參考下
    2024-08-08
  • golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例

    golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例

    時(shí)間和日期是我們編程中經(jīng)常會(huì)用到的,下面這篇文章主要給大家介紹了關(guān)于golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例,需要的朋友可以參考下
    2022-08-08
  • GoFrame 框架緩存查詢結(jié)果的示例詳解

    GoFrame 框架緩存查詢結(jié)果的示例詳解

    GoFrame的gdb對(duì)查詢結(jié)果的緩存處理是不是非常的優(yōu)雅。尤其是*gcache.Cache對(duì)象采用了適配器設(shè)計(jì)模式,可以輕松實(shí)現(xiàn)從單進(jìn)程內(nèi)存緩存切換為分布式的Redis緩存,本文重點(diǎn)給大家介紹GoFrame 如何優(yōu)雅的緩存查詢結(jié)果,感興趣的朋友一起看看吧
    2022-06-06

最新評(píng)論