溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript基于ChatGPT?API怎么實現劃詞翻譯瀏覽器

發布時間:2023-03-29 11:29:26 來源:億速云 閱讀:174 作者:iii 欄目:開發技術

JavaScript基于ChatGPT API實現劃詞翻譯瀏覽器

引言

隨著全球化的發展,跨語言交流變得越來越普遍。無論是學習、工作還是娛樂,我們經常需要閱讀和理解不同語言的文本。為了提升用戶體驗,許多瀏覽器擴展和工具提供了劃詞翻譯功能,允許用戶選中文本后立即獲得翻譯結果。本文將介紹如何使用JavaScript和ChatGPT API實現一個簡單的劃詞翻譯瀏覽器擴展。

1. 準備工作

1.1 了解ChatGPT API

ChatGPT API是由Open提供的一種自然語言處理接口,可以用于生成文本、翻譯、問答等多種任務。通過調用ChatGPT API,我們可以實現高質量的文本翻譯功能。

1.2 獲取API密鑰

要使用ChatGPT API,首先需要注冊Open賬戶并獲取API密鑰。API密鑰是訪問API的憑證,確保在代碼中妥善保管。

1.3 設置開發環境

為了開發瀏覽器擴展,我們需要一個基本的開發環境??梢允褂萌魏挝谋揪庉嬈鳎ㄈ鏥S Code)和現代瀏覽器(如Chrome或Firefox)進行開發。

2. 創建瀏覽器擴展

2.1 項目結構

首先,創建一個新的文件夾作為項目的根目錄。在根目錄下創建以下文件和文件夾:

/劃詞翻譯擴展
│
├── manifest.json
├── background.js
├── content.js
├── popup.html
├── popup.js
└── styles.css

2.2 編寫manifest.json

manifest.json是瀏覽器擴展的配置文件,定義了擴展的基本信息和權限。

{
  "manifest_version": 3,
  "name": "劃詞翻譯",
  "version": "1.0",
  "description": "使用ChatGPT API實現劃詞翻譯的瀏覽器擴展",
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "background": {
    "service_worker": "background.js"
  },
  "action": {
    "default_popup": "popup.html",
    "default_icon": {
      "16": "icons/icon16.png",
      "48": "icons/icon48.png",
      "128": "icons/icon128.png"
    }
  },
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content.js"]
    }
  ]
}

2.3 編寫background.js

background.js是擴展的后臺腳本,負責處理全局事件和API調用。

chrome.runtime.onInstalled.addListener(() => {
  chrome.contextMenus.create({
    id: "translate",
    title: "翻譯選中文本",
    contexts: ["selection"]
  });
});

chrome.contextMenus.onClicked.addListener((info, tab) => {
  if (info.menuItemId === "translate") {
    chrome.tabs.sendMessage(tab.id, { action: "translate", text: info.selectionText });
  }
});

2.4 編寫content.js

content.js是內容腳本,運行在網頁的上下文中,負責處理用戶選中的文本并顯示翻譯結果。

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.action === "translate") {
    translateText(request.text).then(translation => {
      showTranslation(translation);
    });
  }
});

function translateText(text) {
  return fetch("https://api.openai.com/v1/chat/completions", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": `Bearer YOUR_API_KEY`
    },
    body: JSON.stringify({
      model: "gpt-3.5-turbo",
      messages: [
        { role: "system", content: "你是一個翻譯助手,將用戶輸入的文本翻譯成中文。" },
        { role: "user", content: text }
      ]
    })
  })
  .then(response => response.json())
  .then(data => {
    return data.choices[0].message.content;
  });
}

function showTranslation(translation) {
  const translationDiv = document.createElement("div");
  translationDiv.style.position = "fixed";
  translationDiv.style.bottom = "20px";
  translationDiv.style.right = "20px";
  translationDiv.style.backgroundColor = "white";
  translationDiv.style.border = "1px solid #ccc";
  translationDiv.style.padding = "10px";
  translationDiv.style.zIndex = "1000";
  translationDiv.innerText = translation;
  document.body.appendChild(translationDiv);
  setTimeout(() => {
    document.body.removeChild(translationDiv);
  }, 5000);
}

2.5 編寫popup.html

popup.html是擴展的彈出窗口,用戶可以通過點擊擴展圖標打開它。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>劃詞翻譯設置</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <h1>劃詞翻譯設置</h1>
  <label for="apiKey">API密鑰:</label>
  <input type="text" id="apiKey" placeholder="輸入你的API密鑰">
  <button id="save">保存</button>
  <script src="popup.js"></script>
</body>
</html>

2.6 編寫popup.js

popup.js處理彈出窗口中的用戶交互,例如保存API密鑰。

document.getElementById("save").addEventListener("click", () => {
  const apiKey = document.getElementById("apiKey").value;
  chrome.storage.sync.set({ apiKey }, () => {
    alert("API密鑰已保存");
  });
});

chrome.storage.sync.get("apiKey", (data) => {
  if (data.apiKey) {
    document.getElementById("apiKey").value = data.apiKey;
  }
});

2.7 編寫styles.css

styles.css用于美化彈出窗口。

body {
  font-family: Arial, sans-serif;
  padding: 20px;
}

h1 {
  font-size: 20px;
  margin-bottom: 20px;
}

label {
  display: block;
  margin-bottom: 10px;
}

input {
  width: 100%;
  padding: 8px;
  margin-bottom: 20px;
}

button {
  padding: 10px 20px;
  background-color: #007bff;
  color: white;
  border: none;
  cursor: pointer;
}

button:hover {
  background-color: #0056b3;
}

3. 測試和調試

3.1 加載擴展

  1. 打開Chrome瀏覽器,進入chrome://extensions/。
  2. 啟用“開發者模式”。
  3. 點擊“加載已解壓的擴展程序”,選擇項目根目錄。

3.2 測試功能

  1. 在網頁中選中一段文本,右鍵點擊并選擇“翻譯選中文本”。
  2. 觀察頁面右下角是否顯示翻譯結果。

3.3 調試

如果功能不正常,可以使用Chrome的開發者工具(F12)查看控制臺輸出,排查錯誤。

4. 發布和分發

4.1 打包擴展

  1. chrome://extensions/頁面,點擊“打包擴展程序”。
  2. 選擇項目根目錄,生成.crx文件和.pem私鑰文件。

4.2 發布到Chrome Web Store

  1. 注冊Chrome Web Store開發者賬戶。
  2. 上傳擴展并填寫相關信息。
  3. 提交審核,等待發布。

5. 總結

通過本文的介紹,我們使用JavaScript和ChatGPT API實現了一個簡單的劃詞翻譯瀏覽器擴展。這個擴展可以幫助用戶快速翻譯網頁中的選中文本,提升跨語言閱讀的體驗。未來,我們可以進一步優化擴展的功能,例如支持更多語言、自定義翻譯樣式等。

6. 參考資料


以上是一個基于JavaScript和ChatGPT API實現劃詞翻譯瀏覽器擴展的詳細教程。通過這個項目,你可以學習到如何開發瀏覽器擴展、調用API、處理用戶交互等技能。希望這篇文章對你有所幫助,祝你開發順利!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女