最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ChatGPT與Remix?Api服務(wù)在瀏覽器url地址中對(duì)話(huà)詳解

 更新時(shí)間:2023年05月06日 14:21:42   作者:?jiǎn)讨蝊x  
這篇文章主要為大家介紹了ChatGPT與Remix?Api服務(wù)在瀏覽器url地址中對(duì)話(huà)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

本文討論 ChatGTP 與 Node.js 的結(jié)合,由于最近在學(xué) Remix, 考慮到 Remix 可以單獨(dú)的作為 API 來(lái)使用,并且集成了很多常用的功能:

  • fetch
  • dotenv
  • loader
  • 文件路由
  • ...

彎路

寫(xiě)一個(gè)簡(jiǎn)單的 ChatGPT 服務(wù)鍵值不要太簡(jiǎn)單,但是我們?cè)谏厦嬉沧吡艘恍澛贰?/p>

  • 直接鏈接 api.openai.com 一直請(qǐng)求超時(shí),這個(gè)浪費(fèi)了很長(zhǎng)的時(shí)間,也不知道是什么原因。面對(duì)困難我們應(yīng)該怎么辦?先放下,搜索引里面是不是有相似的問(wèn)題。結(jié)果真的需要 代理, 嘗試了一個(gè)代理,其中 api.openai-proxy.com 還挺好。注意代理的安全性自行判斷。
  • 使用 npm 的 openai 還是直接發(fā)送請(qǐng)求到 https://api.openai.com/v1/chat/completions 或者 https://api.openai.com/v1/completions,又是不同的做法。經(jīng)過(guò)嘗試,選擇了前者 + fetch 方案。
  • 使用 axios 還是 fetch 呢? 都有嘗試,使用方法不一樣,但是效果基本一致。

最早的思路 1

  • 思路使用 remix 構(gòu)建一個(gè)簡(jiǎn)單的 ChatGPT + api key 的簡(jiǎn)單的應(yīng)用。但是前后端代碼都要寫(xiě),還沒(méi)有研究 UI 和 對(duì)接文檔。

思路2

  • 看別人實(shí)現(xiàn),由于 api 在三月份就發(fā)布了,現(xiàn)在已經(jīng)發(fā)生一些變化,比如訪(fǎng)問(wèn) api 的超時(shí)原因的問(wèn)題。別人的環(huán)境可能與自己的不一樣。

思路3

  • 在 github 上模仿一個(gè)簡(jiǎn)單的示例,有簡(jiǎn)單 UI,結(jié)果還真由于基于 Next.js 的效果還可以的:nextjs-chatgpt-app-enricoros 但是,發(fā)現(xiàn) UI 是有難度的用的 MUI,內(nèi)容是有復(fù)雜度的,不符合快速原則,模仿一個(gè) antd UI 寫(xiě)一個(gè) UI 自己覺(jué)的不理想,先放在那里了。后面做好了考慮開(kāi)源。

思路4

  • 直接用 node.js 跑一個(gè)示例。最簡(jiǎn)單的 url 中有 searchParams 就是與 Chat-GPT 的對(duì)話(huà)參數(shù)。

從創(chuàng)建一個(gè) Remix 開(kāi)始

pnpm dlx create-remix@latest chat-app

定義 .env 文件

因?yàn)?Remix 已經(jīng)內(nèi)置 dotenv 使用使用起來(lái)非常方便。

OPENAI_API_KEY = "your api key"
PROXY_URL = "your api proxy url"

一個(gè)是 api key, 注意不要提交到 git 上, remix 創(chuàng)建項(xiàng)目默認(rèn)將 .env 文件中記錄到 .gitignore 文件中??墒褂?.env.example 文件給個(gè)示例提到 git 上。

定義 chat 路由

  • /app/routes/chat.tsx 文件即可,注意是用作 api 不要返回一個(gè)默認(rèn)的函數(shù),然后對(duì)外暴露一個(gè) loader 函數(shù),用于處理當(dāng)前路由 get 方法請(qǐng)求。下面是一個(gè)簡(jiǎn)單的代碼實(shí)現(xiàn):
async function runCompletion(messages: any) {
  const response = await fetch(
    "https://api.openai-proxy.com/v1/chat/completions",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer " + process.env.OPENAI_API_KEY,
      },
      body: JSON.stringify({
        model: "gpt-3.5-turbo",
        messages: [{ role: "user", content: messages }],
      }),
    }
  ).then((res) => res.json())
  return await response.choices[0].message.content;
}
export async function loader({ request }: any) {
  const url = new URL(request.url);
  const text = url.searchParams.get("text")!;
  return runCompletion(text);
}

啟動(dòng) Remix 服務(wù)開(kāi)始與 ChatGPT 對(duì)話(huà)

pnpm dev

默認(rèn)在 3000 端口打開(kāi),下面我們?cè)L問(wèn) http://localhost:3000/fetch?text=吃了嗎 開(kāi)始與 Chat-GPT 開(kāi)始友好問(wèn)答:

問(wèn)題二:

問(wèn)題就不再提了,大家肯定開(kāi)始各種方式與 AI 對(duì)話(huà)了。因?yàn)?API 現(xiàn)在是送的 5 刀,每一個(gè)字都是要計(jì)算 token, 并且也有時(shí)常限制。

這里對(duì) chatapt api 的參數(shù)就不做解讀了,選擇哪種模型合適,就不再解讀。本文的主要目的,就是使用 Remix 對(duì)接服務(wù)。

小結(jié)

搞對(duì)接服務(wù)雖然不是難事,但是也沒(méi)有想象中的簡(jiǎn)單。這是第一次對(duì)接這類(lèi)接口。喜歡 Remix 的可以參考一下。

以上就是ChatGPT與Remix Api服務(wù)在瀏覽器url地址中對(duì)話(huà)詳解的詳細(xì)內(nèi)容,更多關(guān)于ChatGPT對(duì)話(huà)Remix Api的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 適合后臺(tái)管理系統(tǒng)開(kāi)發(fā)的12個(gè)前端框架(小結(jié))

    適合后臺(tái)管理系統(tǒng)開(kāi)發(fā)的12個(gè)前端框架(小結(jié))

    當(dāng)你寫(xiě)項(xiàng)目的時(shí)候,如何快速的完成一個(gè)項(xiàng)目的搭建,這個(gè)時(shí)候就需要借助到一些模板了,前端開(kāi)發(fā)的一個(gè)好處就是,各類(lèi)UI模板都是相當(dāng)?shù)凝R全的,本文就介紹幾個(gè)前端框架,感興趣的可以了解一下
    2021-06-06
  • 在本地快速部署deepseek的操作指南(3分鐘極速部署)

    在本地快速部署deepseek的操作指南(3分鐘極速部署)

    這篇文章介紹了如何在本地快速部署Deepseek模型,包括下載、安裝、運(yùn)行和測(cè)試,文中通過(guò)圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家本地快速部署deepseek有一定的幫助,需要的朋友可以參考下
    2025-02-02
  • Deepin20安裝開(kāi)發(fā)環(huán)境的超詳細(xì)教程

    Deepin20安裝開(kāi)發(fā)環(huán)境的超詳細(xì)教程

    這篇文章主要介紹了Deepin20安裝開(kāi)發(fā)環(huán)境的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • asp php 清空access mysql mssql數(shù)據(jù)庫(kù)的代碼

    asp php 清空access mysql mssql數(shù)據(jù)庫(kù)的代碼

    php清空mysql asp情況access或mssql
    2008-12-12
  • VS2019中scanf返回值被忽略的問(wèn)題及其解決方法

    VS2019中scanf返回值被忽略的問(wèn)題及其解決方法

    這篇文章主要介紹了VS2019中scanf返回值被忽略的問(wèn)題及其解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • TIOBE編程語(yǔ)言排行榜前20的語(yǔ)言入門(mén)書(shū)籍推薦

    TIOBE編程語(yǔ)言排行榜前20的語(yǔ)言入門(mén)書(shū)籍推薦

    這篇文章主要為大家推薦了TIOBE編程語(yǔ)言排行榜前20的語(yǔ)言入門(mén)書(shū)籍,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 超實(shí)用Internet Download Manager(IDM)破解注冊(cè)碼,全版本通用

    超實(shí)用Internet Download Manager(IDM)破解注冊(cè)碼,全版本通用

    IDM下載器是一個(gè)十分好用的文件下載工具。IDM下載器它能夠幫助你提升5倍的下載速度,強(qiáng)大的續(xù)傳功能,讓你不再擔(dān)心因網(wǎng)絡(luò)問(wèn)題、計(jì)算機(jī)宕機(jī)、停電等原因所造成的數(shù)據(jù)不全問(wèn)題,下面小編給大家?guī)?lái)了Internet Download Manager(IDM)破解注冊(cè)碼,感興趣的朋友參考下吧
    2023-01-01
  • 本地搭建DeepSeek-R1、WebUI的完整過(guò)程及訪(fǎng)問(wèn)

    本地搭建DeepSeek-R1、WebUI的完整過(guò)程及訪(fǎng)問(wèn)

    這篇文章主要介紹了本地搭建DeepSeek-R1、WebUI的完整過(guò)程及訪(fǎng)問(wèn)的相關(guān)資料,DeepSeek-R1是一個(gè)開(kāi)源的人工智能平臺(tái),主要用于大語(yǔ)言模型的本地部署和管理,通過(guò)Docker和Ollama工具,用戶(hù)可以在自己的服務(wù)器上運(yùn)行DeepSeek-R1,并通過(guò)WebUI交互和測(cè)試,需要的朋友可以參考下
    2025-02-02
  • Typora配置PicGo時(shí)提示Failed?to?fetch的問(wèn)題解決(typora圖像問(wèn)題)

    Typora配置PicGo時(shí)提示Failed?to?fetch的問(wèn)題解決(typora圖像問(wèn)題)

    這篇文章主要介紹了Typora配置PicGo時(shí)提示Failed?to?fetch的問(wèn)題解決(typora圖像問(wèn)題),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • git倉(cāng)庫(kù)遷移的方法步驟

    git倉(cāng)庫(kù)遷移的方法步驟

    將 Git 倉(cāng)庫(kù)遷移到新倉(cāng)庫(kù)是一項(xiàng)常見(jiàn)任務(wù),通常包括復(fù)制整個(gè)歷史記錄、分支和標(biāo)簽,本文就來(lái)介紹一下git倉(cāng)庫(kù)遷移的方法步驟,感興趣的可以了解一下
    2024-08-08

最新評(píng)論

马边| 台山市| 定南县| 诸暨市| 六盘水市| 比如县| 辽中县| 大田县| 济宁市| 永嘉县| 板桥市| 于都县| 江永县| 巴塘县| 收藏| 天镇县| 韶山市| 吴桥县| 清流县| 周口市| 上栗县| 名山县| 台中县| 应用必备| 上饶市| 安吉县| 藁城市| 盐源县| 桦南县| 尼玛县| 平和县| 青冈县| 兴业县| 木兰县| 甘孜| 兴化市| 务川| 兰溪市| 罗田县| 六枝特区| 肃南|