国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker系列 基于OpenAI API自建ChatGPT

這篇具有很好參考價值的文章主要介紹了Docker系列 基于OpenAI API自建ChatGPT。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

轉自我的博客文章https://blognas.hwb0307.com/linux/docker/4201,內容更新僅在個人博客可見。歡迎關注!

前言

我用帳號/密碼使用chatGPT已經(jīng)有一段時間。但是,我有幾個私交較密的朋友,他們并不具備使用chatGPT的條件;但又想體驗一下這個神奇的工具。因此,最近我專門去了解自建ChatGPT有關的項目。在這里總結一下我自建chatGPT的經(jīng)驗。大家有什么好項目也可以在評論區(qū)推薦下!

我的自建chatGPT(基于gpt-3.5-turbo)大致如下:

Docker系列 基于OpenAI API自建ChatGPT

盡管該方案支持多用戶和聊天數(shù)據(jù)保存(基于MongoDB),但也只是一個比較簡陋的Demo,暫時還沒有一些比較精細的功能。不過咱們也只是自己用一下,不是什么商業(yè)化項目,應該無所謂!后續(xù)有更好的開源免費項目,我也會陸續(xù)介紹。關于安全性,我只能說我暫時沒有發(fā)現(xiàn)這個方案有主觀惡意行為。API并沒有異??圪M。

值得注意的是,只要你的API支持,這個方案也支持GPT-4,它是由OpenAI公司在2023年3月14日發(fā)布的一個比gpt-3.5更強大的語言模型。想進一步了解GPT-4的小伙伴可以看“跟李沐學AI”的視頻:GPT-4論文精讀。

準備工作

你需要使用非中國大陸和香港的IP訪問openai.com,具體比較復雜。如果你不知道我在說什么,看到這里你就可以停了

你需要準備一個可用的OpenAI API。具體方案如下:

申請?zhí)摂M信用卡

首先,我們要有一張合適的虛擬信用卡。之前很多人介紹depay。但是,目前depay的身份驗證通道是維護狀態(tài);并且需要使用USDT支付,這對很多人是一個很高的門檻。

(缺失內容請訪問原文: https://blognas.hwb0307.com/linux/docker/4201)

獲得OpenAI API

你可以通過“Account API Keys - OpenAI API”新建一個API。這個過程太簡單了,沒啥好說的,直接點Create new secret key即可:

Docker系列 基于OpenAI API自建ChatGPT

這個API Key只展示一次,你應該記錄一下。如果忘記了,新建一個再刪除舊的即可,然后記住新的key即可。

你可以在“Account - OpenAI API”中查看消費情況:

Docker系列 基于OpenAI API自建ChatGPT

建議限制一下高額消費提醒:

Docker系列 基于OpenAI API自建ChatGPT

你可以在“Pricing”中查看服務單價(每1000 token)。token大致就是單詞片段,這個概念主要來自transformer模型,大家簡單了解一下就好。總之,gpt-3.5的API價格還是挺親民的,個人用戶目前用它即可;gpt-4的價格就比較高了,適合企業(yè)級用戶:

Docker系列 基于OpenAI API自建ChatGPT

測試環(huán)境

我的自建chatGPT布署在博客的VPS上:

uname -a # Linux racknerd-XXXXX 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

docker --version # Docker version 23.0.3, build 3e7cbfd

docker-compose --version # Docker Compose version v2.4.1

自建ChatGPT

不了解docker的小伙伴請先看:《Docker系列 配置Docker全局環(huán)境》;《Docker系列 了解Docker Compose的配置文件》。

完成準備工作后,我們通過docker自建ChatGPT。我目前使用的項目是: Kerwin1202/chatgpt-web,它提供了使用MongoDB托管后臺數(shù)據(jù)的接口。該項目衍生于Chanzhaoyu/chatgpt-web: 用 Express 和 Vue3 搭建的 ChatGPT 演示網(wǎng)頁——僅提供了一個ChatGPT前端的Demo,比較原始。

文件夾和端口

首先,我們新建工作目錄:

work=/docker/kerwin_chatgpt
mkdir -p $work; cd $work

如果你也使用了ufw,應該開放一下端口:

sudo ufw allow 1004/tcp comment 'kerwin_chatgpt' && sudo ufw reload
sudo ufw allow 1005/tcp comment 'kerwin_chatgpt GUI' && sudo ufw reload

如果你的VPS后臺還有防火墻,也要相應開放。

yml文件

這里有很多帳戶和密碼,大家多關注:

  • OPENAI_API_KEY:OpenAI后臺的API key。
  • SMTP系列:這是給注冊用戶發(fā)送郵件時用的。
  • AUTH_SECRET_KEY:源項目這個是登陸密鑰。這里暫時不知道有什么用;注冊用戶似乎不需要這個。
  • MongoDB:數(shù)據(jù)庫名chatgpt,用戶名user01,密碼password01。
  • Mongo-Express:用戶名user02,密碼password02。這是登陸MongoDB GUI時用的。如果不設置,任何知道數(shù)據(jù)庫網(wǎng)址的人都可以訪問數(shù)據(jù)庫!

新建docker-compose.yml文件:

vi $work/docker-compose.yml

填入下面的內容。如果你用過mongomongo-express,可以改為自己正在使用的tag,這樣比較節(jié)省鏡像空間。有按需修改提示的也要按自己的實際情況修改:

version: '3'

services:
  app:
    # 在https://hub.docker.com/r/kerwin1202/chatgpt-web/tags 里獲得tag?;蛘邔憀atest
    image: kerwin1202/chatgpt-web:latest
    restart: unless-stopped
    ports:
      - 1004:3002
    depends_on:
      - database
    environment:
      TZ: Asia/Shanghai
      # 從OpenAI后臺里獲得
      OPENAI_API_KEY: sk-XXX # 按需修改
      # 訪問jwt加密參數(shù),可選 不為空則允許登錄 同時需要設置 MONGODB_URL
      AUTH_SECRET_KEY: 12345678abcdefg # 按需修改
      # 超時,單位毫秒,可選
      TIMEOUT_MS: 60000
      # 網(wǎng)站名
      SITE_TITLE: BenszChat # 按需修改。寫個自己喜歡的名字就行
      # mongodb 的連接字符串
      MONGODB_URL: 'mongodb://user01:password01@database:27017' # 按需修改
      # 網(wǎng)站是否開啟注冊
      REGISTER_ENABLED: true # 完成注冊后,這一項要改為false
      # 開啟注冊之后 網(wǎng)站注冊允許的郵箱后綴 如果空 則允許任意后綴
      REGISTER_MAILS: '@qq.com,@gmail.com,@163.com' # 按需修改
      # 加密鹽。算法: echo -n 'passwordsalt' | md5sum | cut -c 1-32
      PASSWORD_MD5_SALT: tNJ%M&D # 按需修改
      # 開啟注冊之后 超級管理員的郵箱
      ROOT_USER: hwb2012@qq.com # 按需修改
      # 開啟注冊之后網(wǎng)站域名 不含 / 。注冊的時候發(fā)送驗證郵箱使用
      SITE_DOMAIN: https://chatgpt.hwb0307.com # 按需修改
      # 開啟注冊之后 發(fā)送驗證郵箱配置
      SMTP_HOST: smtp.qq.com
      SMTP_PORT: 465
      SMTP_TSL: true
      SMTP_USERNAME: hwb2012@qq.com # 按需修改
      SMTP_PASSWORD: xxxxxxxx # 按需修改
    links:
      - database

  database:
    image: mongo:3.6
    restart: unless-stopped
    expose:
      - '27017'
    volumes:
      - ./mongodb:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: user01
      MONGO_INITDB_ROOT_PASSWORD: password01
      MONGO_INITDB_DATABASE: chatgpt

  gui:
    image: mongo-express:1.0.0-alpha
    restart: unless-stopped
    ports:
      - "1005:8081"
    environment:
      # 選擇主題。詳見: http://codemirror.net/demo/theme.html
      ME_CONFIG_OPTIONS_EDITORTHEME: ambiance
      # 數(shù)據(jù)庫信息
      ME_CONFIG_BASICAUTH_USERNAME: user02
      ME_CONFIG_BASICAUTH_PASSWORD: password02
      ME_CONFIG_MONGODB_URL: 'mongodb://user01:password01@database:27017'
      ME_CONFIG_MONGODB_ENABLE_ADMIN: true # 可能不是必要的
      ME_CONFIG_MONGODB_ADMINUSERNAME: user01 # 可能不是必要的
      ME_CONFIG_MONGODB_ADMINPASSWORD: password01 # 可能不是必要的

這個docker-compose.yml要自定義的東西還挺多的。如果大家使用時有什么疑問,可以在評論區(qū)留言!

最后直接上線即可:

cd $work && docker-compose up -d

其它docker相關操作和一般的docker應用是類似,這里就不細說了。

NPM設置

不了解Nginx Proxy Manager(NPM)用法的小伙伴,請看《Docker系列 兩大神器NPM和ddns-go的安裝》。

準備兩個域名并在域名托管商(比如Cloudflare),比如chatgpt.hwb0307.comchatgptgui.hwb0307.com

  • chatgpt.hwb0307.com給chatGPT的前端使用,反代地址http://172.17.0.1:1004
  • chatgptgui.hwb0307.com給chatGPT的后端使用,反代地址http://172.17.0.1:1005

反代過程并不需要設置特別的參數(shù)。

前端基本界面如下:

Docker系列 基于OpenAI API自建ChatGPT

后端數(shù)據(jù)庫界面如下:

Docker系列 基于OpenAI API自建ChatGPT

基本介紹

第一個用戶默認是管理員用戶,請使用docker-compose.yml文件里約定的管理員郵箱注冊,并在郵箱里點擊驗證鏈接即可。其它用戶也是類似的。目前,如果你的目標用戶已經(jīng)注冊完畢,你可以在docker-compose中設置REGISTER_ENABLED: false,重啟docker stack生效。當然,可能在網(wǎng)站配置里設置更合理??傊?,這些配置和docker-compose.yml文件里定義的參數(shù)是相一致的。

所有的設置都可從左下角的設置按鈕進入查看:

Docker系列 基于OpenAI API自建ChatGPT

總覽

總覽界面基本上和數(shù)據(jù)庫內容是一一對應的:

Docker系列 基于OpenAI API自建ChatGPT

總覽里還可以導入/導出聊天記錄(以.json格式),也是挺不錯的!

我這里簡單展示其它選項的內容:

高級

設定角色。一般是默認的。

Docker系列 基于OpenAI API自建ChatGPT

基本配置

這里展示了API的余額,不是用量。

Docker系列 基于OpenAI API自建ChatGPT

網(wǎng)站配置

這里的注冊登錄功能最好不要點暗,否則容易出bug,導致所有用戶無法登陸。數(shù)據(jù)庫里直接修改似乎無法生效,感覺這是bug,或者是緩存問題:

Docker系列 基于OpenAI API自建ChatGPT

這個方案應該是有效的。大家試試看!

點亮新用戶表明你開放注冊;點亮新用戶審核表明該用戶需要你審核才可以使用。如果你開放注冊,一般建議這兩者都要點亮。如果你不想開放注冊,將新用戶點暗即可。

Docker系列 基于OpenAI API自建ChatGPT

郵箱配置

密碼是SMTP專用密碼,不是QQ郵箱密碼。

Docker系列 基于OpenAI API自建ChatGPT

提示詞商店

它內置了一些提示詞鏈接:

Docker系列 基于OpenAI API自建ChatGPT

有個英文版的Prompts項目也挺不錯: f/awesome-chatgpt-prompts: This repo includes ChatGPT prompt curation to use ChatGPT better.,大家可關注下?;旧虾w了日常生活中比較常用的功能。但這個Prompts似乎是僅在瀏覽器里緩存的,更新后就沒了,要重新搞。感覺不太合適。

不過,一般我都是比較喜歡自己寫Prompts。這也是可玩性的一部分吧!以后有機會,我也總結一下大佬們一般是怎么寫Prompts的。講究還挺多 (?′ω`?)

非注冊用戶

由于我們使用了數(shù)據(jù)庫托管,所以可以輕易地操作數(shù)據(jù)庫以生成新用戶。這里我簡單展示如何新增一個用戶。

首先,我們登陸MongoDB,進入chatGPT數(shù)據(jù)庫的user collection:

Docker系列 基于OpenAI API自建ChatGPT

這里我創(chuàng)建了一個測試用戶test@qq.com。我們雙擊該記錄查看具體信息,如下:

{
    _id: ObjectId('6434ececdf45624abb1d190a'),
    name: 'test@qq.com',
    email: 'test@qq.com',
    password: '36d78f8755a4d79de6b21034f7bbb207',
    status: 0,
    createTime: '4/11/2023, 1:23:24 PM',
    verifyTime: '4/11/2023, 1:24:23 PM'
}

其中_id就是代表用戶ID,類似于身份證號,只要與現(xiàn)存帳號不一樣即可。name是用戶名,email是用戶郵箱。status暫時不知道是什么。createTimeverifyTime代表創(chuàng)建和驗證時間,差不多是間隔1分鐘左右;沒研究過這個時間間隔有沒有要求,大家可以試試看。

這里的password其實是一段基于md5的哈希值。假設密碼是a,鹽值(即docker-compose文件里的PASSWORD_MD5_SALT參數(shù)的值)是tNJ%M&D,則password的取值為:

# Linux Shell命令。 密碼+鹽值組成新字符,空間不留任何空隙
echo -n 'atNJ%M&D' | md5sum | cut -c 1-32

輸出結果為a3fedefc90692555644896f3c41c26eb,與我的記錄是不同的。這是因為每個人的密碼和鹽值都是不同的,按需生成即可。

只要我們確定好這些參數(shù),再左擊New Document新增一條記錄并保存,這樣就可以在不開放注冊的情況下添加用戶

Docker系列 基于OpenAI API自建ChatGPT

大家也可以嘗試一下如何批量生成新用戶喔!

小結

關于自建chatGPT的介紹暫時到這里。我沒有介紹太多MongoDB的設置,因為我暫時也不太熟悉;而且,我懷疑由于前端項目的限制,數(shù)據(jù)庫的能力并沒有被充分發(fā)揮,現(xiàn)在應該也不是介紹后端的最好時機。該項目還有以下缺陷:

  • 不支持流量/付費控制
  • 不支持具體某個聊天記錄的markdown輸出
  • 重啟docker stack后,盡管聊天內容還在,但無法依據(jù)前面的聊天內容繼續(xù)聊天
  • 刷新網(wǎng)頁后,要點一下某個聊天記錄可以顯示歷史聊天內容(不知是不是和nginx設置有關)、
  • Prompts并不保存在數(shù)據(jù)庫內

還有一個類似的衍生項目: gouguoyin/chatgpt-web,它的文檔“展示”了許多功能,包括登錄注冊、管理后臺、設置首次登錄贈送免費提問次數(shù)、key輪詢池、卡券套餐管理、對話管理、敏感詞管理、自定義回復管理、提示詞prompt管理、卡密套餐管理、卡密生成和核銷等。但它似乎是一個付費和閉源的應用。只能說,感興趣的小伙伴可以了解嘍 (?′ω`?)

如果你可以利用OpenAI的帳戶和密碼免費使用chatGPT,推薦該項目:lencx/ChatGPT: ?? ChatGPT Desktop Application (Mac, Windows and Linux)。它的功能比較官方網(wǎng)站要完善一些,也支持Prompts導入、markdown/pdf/圖片輸出等:

Docker系列 基于OpenAI API自建ChatGPT

以后有更多使用心得再來更新!文章來源地址http://www.zghlxwxcb.cn/news/detail-470244.html

到了這里,關于Docker系列 基于OpenAI API自建ChatGPT的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 基于Springboot+Openai SDK搭建屬于自己的ChatGPT3.5 Ai聊天知識庫,已接入Stable Diffusion繪圖Api

    基于Springboot+Openai SDK搭建屬于自己的ChatGPT3.5 Ai聊天知識庫,已接入Stable Diffusion繪圖Api

    花費二個多月查閱資料與前后端開發(fā),終于完成了我的開源項目HugAi聊天知識庫。項目是基于Springboot+vue2集成了OpenAi SDK開發(fā)的一套智能AI知識庫,已接入ChatGpt3.5接口以及openai的繪圖接口,前后端代碼都開源。 支持上下文功能 會話記錄持久化 sse流式響應 后臺可配置的場景對話

    2024年02月05日
    瀏覽(26)
  • OpenAI ChatGpt API參考

    在線免費體驗: 編寫了一個python寫的ChatGPT的web服務,基于aigcfun仿寫: 您可以通過來自任何語言的 HTTP 請求、通過我們的官方 Python 綁定、我們的官方 Node.js 庫或社區(qū)維護的庫與 API 交互。 要安裝官方 Python 綁定,請運行以下命令: 要安裝官方 Node.js 庫,請在 Node.js 項目目錄

    2023年04月08日
    瀏覽(30)
  • OpenAI 開發(fā)系列(四):掌握OpenAI API調用方法

    OpenAI 開發(fā)系列(四):掌握OpenAI API調用方法

    全文共4000余字,預計閱讀時間約17~30分鐘 | 滿滿干貨(附代碼),建議收藏! 本文目標:明確獲取OpenAI API密鑰的流程,理解如何調用OpenAI的各類大模型,并了解其對應的相關參數(shù) 代碼下載點這里 前提:擁有OpenAI賬戶,并可以魔法上網(wǎng),如果涉及賬戶或魔法上網(wǎng)問題,可參考本

    2024年02月11日
    瀏覽(23)
  • 如何獲取 ChatGPT 的 OpenAI API 密鑰

    如何獲取 ChatGPT 的 OpenAI API 密鑰

    為什么需要 OpenAI API 密鑰? 擁有 OpenAI API 密鑰可以解鎖多種強大的功能。您可以享受以下一些好處: 訪問先進的人工智能模型 OpenAI 開發(fā)了 GPT-3 和 Codex 等多種先進的人工智能模型。借助 API 密鑰,您可以利用這些模型的功能來執(zhí)行自然語言理解和生成、代碼編寫、翻譯等任

    2024年02月03日
    瀏覽(15)
  • OpenAI發(fā)布ChatGPT函數(shù)調用和API更新

    2023年6月13日,OpenAI針對開發(fā)者調用的API做了重大更新,包括更易操控的 API模型、函數(shù)調用功能、更長的上下文和更低的價格。 在今年早些時候發(fā)布gpt-3.5-turbo,gpt-4在短短幾個月內,已經(jīng)看到開發(fā)人員在這些模型之上構建了令人難以置信的應用程序。 今天,我們將跟進一些令

    2024年02月08日
    瀏覽(25)
  • openai-chatGPT的API調用異常處理

    openai-chatGPT的API調用異常處理

    因為目前openai對地區(qū)限制的原因,即使設置了全局代理使用API調用時,還是會出現(xiàn)科學上網(wǎng)代理的錯誤問題。 openai庫 == 0.26.5 【錯誤提示】: raise error.APIConnectionError( openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=\\\' api.openai.com \\\', port=443): Max retries exceede

    2024年01月20日
    瀏覽(29)
  • 在 Spring Boot 中使用 OpenAI ChatGPT API

    我們來看看如何在 Spring Boot 中調用 OpenAI ChatGPT API。 我們將創(chuàng)建一個 Spring Boot 應用程序,該應用程序將通過調用 OpenAI ChatGPT API 生成對提示的響應。 在開始具體講解之前,讓我們先探討一下我們將在本教程中使用的 OpenAI ChatGPT API。我們將調用創(chuàng)建聊天完成 API 來生成對提示的

    2024年02月12日
    瀏覽(24)
  • Chatgpt API調用報錯:openai.error.RateLimitError

    Chatgpt API調用報錯:openai.error.RateLimitError

    Chatgpt API 調用報錯: openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details. 調用OpenAI API接口 代碼運行報錯: 報錯原因: ????????為了探索和試驗API,所有新用戶都可以獲得價值5美元的免費代幣。這些代幣將在3個月后到期;或者你使用了所有的

    2024年02月13日
    瀏覽(19)
  • ChatGPT 使用 拓展資料: OPENAI 函數(shù)調用和其他 API 更新

    ChatGPT 使用 拓展資料: OPENAI 函數(shù)調用和其他 API 更新 我們在今年早些時候發(fā)布gpt-3.5-turbo,gpt-4在短短幾個月內,已經(jīng)看到開發(fā)人員在這些模型之上構建了令人難以置信的應用程序。 今天,我們將跟進一些令人興奮的更新: Chat Completions API 中的新函數(shù)調用功能 gpt-4和的更新和

    2024年02月10日
    瀏覽(23)
  • ChatGPT(GPT3.5) OpenAI官方API正式發(fā)布

    ChatGPT(GPT3.5) OpenAI官方API正式發(fā)布

    ????????OpenAI社區(qū)今天凌晨4點多發(fā)送的郵件,介紹了ChatGPT官方API的發(fā)布。官方介紹文檔地址為“OpenAI API”和“OpenAI API”。 ????????ChatGPT(GPT3.5)官方API模型名稱為“gpt-3.5-turbo”和“gpt-3.5-turbo-0301”。API調用價格比GPT?text-davinci-003模型便宜10倍。調用費用為0.002美元/10

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包