乘風破浪,遇見最佳跨平臺跨終端框架.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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...