乘風破浪,遇見最佳跨平臺跨終端框架.Net Core/.Net生態 - 深入OpenAI與馬斯克、微軟的秘密,通過API輕鬆接入ChatGPT

来源:https://www.cnblogs.com/taylorshi/archive/2023/03/03/17177398.html
-Advertisement-
Play Games

什麼是OpenAI https://openai.com OpenAI是一家人工智慧公司,成立於2015年,總部位於美國舊金山。該公司的使命是研究和開發能夠產生廣泛影響的人工智慧技術,並將這些技術傳播到整個社會。OpenAI由一些著名的科學家和企業家共同創立,包括伊隆·馬斯克、Sam Altman等 ...


什麼是OpenAI

https://openai.com

image

OpenAI是一家人工智慧公司,成立於2015年,總部位於美國舊金山。該公司的使命是研究和開發能夠產生廣泛影響的人工智慧技術,並將這些技術傳播到整個社會。OpenAI由一些著名的科學家和企業家共同創立,包括伊隆·馬斯克、Sam Altman等。該公司致力於推動人工智慧技術的發展,同時也關註潛在的倫理和公共政策問題。

OpenAI和馬斯克有什麼關係

image

OpenAI是由埃隆·馬斯克在2015年創立的人工智慧公司之一。然而,他後來退出該公司的開發和運作,聲稱擔心人工智慧可能對人類造成的潛在威脅。儘管如此,OpenAI仍然受到馬斯克的支持和投資,但他不再直接參与公司的運營和決策。

馬斯克退出OpenAI是因為他和其他創始成員對於OpenAI的發展方向和策略存在不同的看法。馬斯克一直強調OpenAI的開發應該有明確的安全和道德框架,以確保AI技術的未來發展是有益於人類的,而其他成員則對於這種限制比較謹慎。由於雙方觀點的差異,馬斯克決定退出OpenAI,而OpenAI也繼續沿著其自己的發展方向前進。

OpenAI和微軟有什麼關係

OpenAI和微軟有一些聯合合作項目,包括使用微軟的Azure雲平臺來為OpenAI的研究提供計算資源和技術支持。另外,在OpenAI的董事會成員中,也有微軟的高管和代表。此外,目前一些OpenAI的技術也被微軟用於其產品和服務中。

微軟和OpenAI之所以合作緊密,是因為兩家公司擁有著共同的願景和目標,即推動人工智慧的發展並拓展其應用。另外,微軟作為一個科技巨頭,已經有了很強的技術和資源優勢,而OpenAI則是人工智慧領域的先驅和領導者,有著頂尖的人才和研究成果。通過合作,雙方可以互相借鑒和合作,共同推動人工智慧技術的發展,並將其應用於更多領域,包括醫療、金融、教育、自動駕駛等。此外,微軟和OpenAI還有著眾多共同的合作伙伴,包括谷歌、IBM等,聯手合作可以更好地打造一個更具有影響力和領導力的人工智慧行業。

微軟和OpenAI曾在2019年宣佈建立合作伙伴關係。根據該協議,微軟將為OpenAI提供技術支持,並投資10億美元作為OpenAI的首次投資款項。 微軟還將成為OpenAI的首個雲服務提供商,為其提供基礎設施和計算能力。在這個合作框架下,微軟將利用其Azure雲計算服務為 OpenAI提供支持,這將有助於OpenAI開發和部署更強大的人工智慧模型和解決方案,並擴大其產品和服務的市場。除此之外,微軟和OpenAI 還計劃聯手推出一系列開源工具和技術,促進人工智慧在更廣泛領域的發展和創新。

微軟與OpenAI合作的目的是在人工智慧和自然語言處理領域共同研究和開發更先進的技術,並將其應用於各種產品和服務中。OpenAI是一個領先的人工智慧研究機構,它擁有大量的數據、演算法和專業知識,可以幫助微軟進一步提升其人工智慧技術。通過使用OpenAI的技術,微軟可以提高其搜索引擎、智能助手和其他人工智慧相關產品的性能和功能。此外,微軟還可以將這些技術應用於其他領域,如自動化、智能製造和醫療保健,為現代社會帶來切實可行的解決方案。

什麼是ChatGPT

ChatGPT是一種基於自然語言處理和機器學習技術的聊天機器人。它可以與人類進行對話,並回答有關天氣、新聞、娛樂、教育、旅游等各種主題的問題。ChatGPT使用了開源的GPT(Generative Pre-trained Transformer)模型,該模型是一種深度學習技術,可以在沒有特定任務或目標的情況下對大量文本進行預訓練,學習瞭解自然語言,並生成文本響應。這使得ChatGPT可以更好地理解人類語言,並產生更自然、更準確的回覆。

Generative Pre-trained Transformer模型,簡稱GPT模型,是一種基於自然語言處理的深度學習模型。它是由OpenAI團隊開發的模型系列,目前已經發佈了GPT、GPT-2和GPT-3。GPT模型基於Transformer網路結構,採用的是無監督學習方式進行前期訓練,即通過大量的語言數據集進行自我學習,學習文本的統計規律和語義信息,並將學習到的模型參數存儲為預訓練模型。在後續的學習任務中,可以基於預訓練模型進行微調或fine-tune操作,以適應特定的語言處理任務,如文本分類、機器翻譯、自然語言生成等方面。GPT模型已經在多個自然語言處理任務上取得了非常優秀的表現。

Transformer網路結構是一種用於處理序列數據的深度學習網路結構,最初由Google團隊在2017年提出。它被廣泛應用於機器翻譯、文本生成、語音識別等任務中,其性能表現優於很多傳統的序列模型,如迴圈神經網路(RNN)和捲積神經網路(CNN)。Transformer網路結構的核心是自註意力機制(self-attention mechanism),它能夠捕捉每個輸入在序列中的整體聯繫,並且避免使用傳統RNN或CNN中必要的迴圈或捲積操作,極大地減少了計算量。由於在序列中每個輸入節點都可以與其他任意節點建立聯繫,因此它可以獲取到更加全局的信息。此外,Transformer網路結構還採用了殘差連接和歸一化技巧,更加有效的解決了梯度消失問題。總之,Transformer網路結構是一種高效且強大的神經網路模型,其廣泛應用於自然語言處理和語音識別等領域,併在其中產生了非常優秀的表現

ChatGPT可以做什麼

ChatGPT是一個基於人工智慧技術的智能聊天機器人,可以通過與用戶的交互來提供以下服務:

  1. 回答用戶的問題:ChatGPT可以回答各種領域的問題,如科學、歷史、地理、文化、娛樂等,可以幫助用戶快速獲取相關知識和信息。
  2. 交流和娛樂:ChatGPT會與用戶進行友好的對話,可以用幽默和風趣的方式與用戶互動,為用戶提供娛樂和消遣。
  3. 語音識別和處理:ChatGPT支持語音輸入和輸出,可以進行語音識別和語音合成,讓用戶更加方便地使用服務。
  4. 個性化定製服務:ChatGPT可以根據用戶的需求和偏好進行個性化的定製服務,包括推薦相關內容、制定健康飲食計劃等。

總之,ChatGPT是一個全方位的智能助手,可以為用戶提供多種服務,幫助用戶更快、更準確地獲取信息,提高生活品質。

新Bing和ChatGPT的關係

新Bing是微軟公司於2023年推出的一款升級版搜索引擎,它基於人工智慧技術和機器學習演算法打造,旨在提供更加智能化、個性化的搜索服務,優化用戶的搜索體驗。新Bing的機器學習技術被稱為Turing模型,它是基於深度神經網路的語言模型,能夠更好地理解自然語言、推斷用戶的意圖以及呈現最相關的搜索結果。與ChatGPT有關係的是,Turing模型是基於GPT技術(Generative Pre-trained Transformer)打造的,它是用於自然語言處理的預訓練神經網路,可以生成新的自然語言文本、回答自然語言問題等。因此,ChatGPT和新Bing都是基於人工智慧技術的應用,都能夠解決自然語言理解和生成的問題。

微軟的Turing模型是一款開源的自然語言處理(NLP)軟體工具包,用於構建聊天機器人、語音識別系統、智能客服等應用。通過使用該工具包,開發人員可以簡單快速地創建智能對話系統,從而提高用戶體驗並提高工作效率。

什麼是Prometheus AI

Prometheus AI是微軟推出的自然語言處理(NLP)模型,它基於最先進的人工智慧技術,可以進行文本生成,語言翻譯,問答系統等多種NLP任務。該模型使用了大規模的預訓練數據和多個深度神經網路層,可以理解和處理多種語言和語言風格。Prometheus AI還能夠學習和記憶用戶的習慣用語和語義,具有更好的個性化服務能力。此外,它還可以自動從語料庫中提取信息併進行歸納總結,提高內容生成的速度和準確度。

與GPT 3.5的區別

Prometheus AI語言模型和GPT 3.5都是自然語言處理領域的先進技術,其主要的區別如下:

  1. 數據量:Prometheus AI語言模型擁有比GPT 3.5更多的數據量,據稱它的數據量達到了4萬億位元組,而GPT 3.5的數據量只有數十萬億位元組。

  2. 訓練方式:Prometheus AI語言模型是基於自監督的訓練方式,而GPT 3.5則是基於有監督和無監督的訓練方式。自監督訓練是指在沒有人類干預的情況下,利用大量未標記的數據進行訓練。而有監督和無監督訓練則需要人類對數據進行標記和監督。

  3. 應用場景:兩者的應用場景也有所不同。Prometheus AI主要用於語言生成和理解方面的研究, 如輔助文章寫作、翻譯、問答等。而GPT 3.5則更加註重於語言處理和應用領域,它可以廣泛地應用於自然語言生成、機器翻譯、語音識別、文本分類等領域

  4. 網路架構:Prometheus AI和GPT 3.5的網路架構也有所不同。Prometheus AI採用的是基於Transformer的模型,而GPT 3.5則是採用了自回歸式神經網路模型(auto-regressive neural network)。

總體來說,Prometheus AI語言模型和GPT 3.5都是自然語言處理領域的先進技術,其在數據量、訓練方式、應用場景和網路架構等方面的差異,決定了它們在不同領域中的應用價值和適用性。

對接OpenAI的前置工作

註冊OpenAI開發者賬號

https://platform.openai.com

  1. 訪問OpenAI官方網站,點擊"Sign up"按鈕,進入註冊頁面。
  2. 在註冊頁面填寫您的電子郵件地址和密碼,然後點擊“Create account”按鈕。
  3. 您將收到一封來自OpenAI的確認郵件,請點擊郵件中的鏈接進行確認。
  4. 在確認之後,您會被引導到登錄頁面,輸入您的註冊電子郵件地址和密碼, 點擊“Login”進行登錄。
  5. 登錄之後,請根據您的需要完成賬號信息的填寫,例如設置您的API密鑰等。

註冊完成之後,您可以使用OpenAI的API進行開發項目。

如何生成OpenAI的APIKey

  1. 首先,訪問OpenAI的網站
  2. 輸入您的電子郵件地址和密碼,然後單擊“登錄”。
    image
  3. 單擊頁面右上角的"View API Keys"按鈕。
    image
  4. 在"API keys"標簽下單擊"Create new secret key"。
    image
  5. 複製生成的APIKey,並保存好。

請註意,OpenAI的APIKey是機密信息,請務必妥善保管。

通過Postman調用ChatGPT API

調用示例

介面地址:https://api.openai.com/v1/chat/completions

請求方式:Post

image

請求頭: Authorization: Bearer $your api key

image

請求內容體格式:

{
    "model": "gpt-3.5-turbo",
    "messages": [
        {
            "role": "system",
            "content": "你是一個搜索引擎小助手。"
        },
        {
            "role": "user",
            "content": "什麼是ChatGPT?"
        }
    ]
}

返回結構

{
    "id": "chatcmpl-6q37KnFWZ3XOZ1eciKhymvZJVh1bL",
    "object": "chat.completion",
    "created": 1677863058,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
        "prompt_tokens": 33,
        "completion_tokens": 178,
        "total_tokens": 211
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "ChatGPT是一個基於人工智慧技術的聊天機器人,它能夠與人類進行自然的對話,並能夠回答問題,提供幫助,解決問題等。ChatGPT使用了GPT(Generative Pre-Trained Transformer)技術,這是一種流行的自然語言處理模型,它能夠處理大規模自然語言任務,生成自然語言文本,包括文字、語音、圖像等。ChatGPT可以應用於各種場景,如客戶服務、線上支持、產品推廣等,並能夠幫助人們更快、更方便地獲取信息。"
            },
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

效果演示

image

調用說明

之前Open AI開放的介面都是針對text-davinci-003模型的,現在最新API已經開放了能力更加接近ChatGPT的gpt-3.5-turbo模型。

新的介面請求結構體中,只剩下modelmessages組兩個參數,其中model比較好理解,這次messages變成一個Json對象數組,而這個數組裡面可以填入多個message對象。

{
    "messages": [
        {
            "role": "system",
            "content": "你是一個搜索引擎小助手。"
        },
        {
            "role": "user",
            "content": "什麼是ChatGPT?"
        },
        {
            "role": "assistant",
            "content": "ChatGPT是一個基於人工智慧技術的聊天機器人。"
        },
        {
            "role": "user",
            "content": "請給我一段使用C#對接gpt-3.5-turbo模型介面的示例"
        }
    ]
}

我們看到每一個message中包含兩個節點,一個是角色role,它有三個值,分別是系統角色(system)、用戶角色(user)、助理角色(assistant),它們共同構成了整個對話的上下文信息。

所謂系統角色(system),就是你先給這個機器人一個定位,而用戶角色(user)說的就是和機器人對話的這個人類,助理角色(assistant)指的就是來回答人類提出的問題的這個機器人,我們可以把它叫做助理。

因為我們和這個機器人助理之間會存在多輪對話,那麼我們只需要在後續對話中,將之前用戶角色(user)、助理角色(assistant)的對話信息在messages中帶上即可,這樣後面的對話就有了前面對話的上下文信息。

關於費用

註冊即送免費額度

這麼好的東西,當然是收費的。不過註冊完,也給了一定的免費額度18美元。

image

在賬戶的Usage標簽頁可以看到使用量和已記賬費用。

45次模型調用才使用了0.00272美元,那麼摺合下來就是0.00006044美元一次,還是蠻便宜的。

單次調用計算規律

每次調用它會返回一個usage信息

{
    "usage": {
        "prompt_tokens": 245,
        "completion_tokens": 550,
        "total_tokens": 795
    }
}

其中prompt_tokens就是輸入消耗的Tokens數量,completion_tokens是輸出消耗的Tokens數量,total_tokens就是這次對話輸入輸出加起來總消耗的Tokens數量。

最終它會根據tokens的消耗來計算費用。

Token是什麼

在ChatGPT中,Token是指一段文本中的最小單位,通常是一個詞或一個標點符號。ChatGPT需要將輸入的文本分解成許多個Token,然後將它們轉化成數字,以便在訓練和推理時使用。計算Token數的方法是將輸入文本按空格、標點等符號進行切分,得到單獨的Token,然後統計Token的數量即可。例如句子 "Hello, how are you?" 包含4個Token: "Hello", ",", "how", "are", "you"。

在ChatGPT模型中,一個模型在處理文本時有一個固定的最大輸入Token數限制,如果輸入的Token數量超過這個限制,則需要進行截斷。這個限制通常由模型的超參數指定。在使用ChatGPT時,通常需要對輸入的文本進行預處理,將其分割成符合模型要求的Token數量。

Token怎麼計費

ChatGPT的Token計費方式因服務提供商而異。通常情況下,Token是通過預先購買一定數量的Token,然後在使用ChatGPT服務時,系統會扣除相應的Token數量進行計費。計費的數量取決於你對ChatGPT的使用頻率和使用量,以及提供商的計費標準。有些服務提供商會根據每次對話、每個API請求或一定時間段內的使用次數來計算Token。有些提供商還根據你對ChatGPT的使用情況進行不同的費率標準。因此,在選擇ChatGPT提供商時,應該根據自己的需求和預算來選擇最適合自己的計費方式和提供商。

參考


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • PHP語言線上運行編譯,是一款可線上編程編輯器,在編輯器上輸入PHP語言代碼,點擊運行,可線上編譯運行PHP語言,PHP語言代碼線上運行調試,PHP語言線上編譯,可快速線上測試您的PHP語言代碼,線上編譯PHP語言代碼發現是否存在錯誤,如果代碼測試通過,將會輸出編譯後的結果。 該線上工具由IT寶庫提 ...
  • Vue 3 備忘清單 Vue 3漸進式 JavaScript 框架 Vue 3 備忘清單的快速參考列表,包含常用 API 和示例入門,為開發人員分享快速參考備忘單。 開發速查表大綱 入門 介紹 創建應用 應用實例 通過 CDN 使用 Vue 使用 ES 模塊構建版本 模板語法 文本插值 原始 HTM ...
  • 前言 TCP三次握手和四次揮手是面試題的熱門考點,它們分別對應TCP的連接和釋放過程 1.TCP通信包含那幾步? TCP通信過程包括三個步驟:建立TCP連接通道,傳輸數據,斷開TCP連接通道 上圖主要包括三部分:*建立連接、傳輸數據、斷開連接。* 建立TCP連接很簡單,通過三次握手便可建立連接。 建 ...
  • 1.單線程 單線程:只有一個線程,即CPU只執行一個任務(一個線程) 1 class Hero{ 2 String name; 3 Hero(String name){ 4 this.name = name; 5 } 6 public void show(){ 7 System.out.printl ...
  • #使用引用 #include <iostream> using namespace std; struct Time{ int h; int m; int s; }; void timeCompute(Time &t, int sec){ //引用作為形參 t.m = t.m + (t.s + se ...
  • Problem description unsigned char key[16] = {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}; unsigned ...
  • 日常開發中,基於 Redis 天然支持分散式鎖,大家線上上分散式項目中都使用過 Redis 鎖。本文主要針對日常開發中加鎖過程中某些異常場景進行講解與分析。本文講解示例代碼都在 https://github.com/wayn111/newbee-mall-pro 項目 test 目錄下 RedisL ...
  • 程式代碼到可執行程式編譯鏈接過程 預編譯 以c++/c 語言為例,預編譯階段的工作有以下幾點: 處理所有#define 及條件預編譯指令(如 #if,#ifdef.....),並展開所有巨集定義。 刪除所有註釋("//" ,"/**/")。 處理 "#include",將被包含文件插入該預編譯指令位置 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...