国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
はじめに
openAI によって提供されるインターフェイス
単語翻訳の実現(xiàn)
%%PRE_BLOCK_6%%
ホームページ テクノロジー周辺機器 AI ChatGPT APIに基づくワードマーキング翻訳ブラウザスクリプトの実裝

ChatGPT APIに基づくワードマーキング翻訳ブラウザスクリプトの実裝

May 01, 2023 pm 03:28 PM
html chatgpt div

はじめに

最近 GitHub に ChatGPT API をベースにしたブラウザスクリプト openai-translator が登場しました 短期間でスターが 12k に達しました 翻訳だけでなく研磨もサポートしていますブラウザのプラグインの他にデスクトップクライアントのパッケージ化にもtauriが使われています tauriはさておきRust部分を使えばブラウザ部分の実裝は比較的簡単です 今日は手動で実裝してみます。

openAI によって提供されるインターフェイス

たとえば、次のコードをコピーし、ブラウザ コンソールでリクエストを開始して、上記のコードの必要な変換

//示例
const OPENAI_API_KEY = "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";

const prompt = `Translate this into Chinese:
hello world`;
const res = await fetch("https://api.openai.com/v1/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
authorization: `Bearer ${OPENAI_API_KEY}`,
},
body: JSON.stringify({
model: "text-davinci-003",
prompt,
max_tokens: 1000,
temperature: 0,
}),
});
const response = await res.json();

const result = response.choices[0].text;

OPONAI_API_KEY を完了できます。あなたのものと私のものに置き換えてください。

単語翻訳の実現(xiàn)

単語翻訳は Web ページの一般的な機能です。ユーザーが単語またはテキストを選択すると、小さなウィンドウが自動的にポップアップして単語またはテキストの翻訳を表示します。 。

  1. まず、空の DIV 要素と、HTML ページに翻訳をトリガーするボタンを追加します。
let keyword;
const translation = document.createElement("div"); 
translation.id ="translation"; 
const icon = document.createElement("img"); 
icon.style.width ="30px";
icon.style.height = "30px";
icon.src ="http://example.com/icon.png";
translation.appendChild(icon)
  1. マウスアップ イベント リスナーをページに追加します。ユーザーがテキストを選択するときに、検索キーワードを設定します。
document.addEventListener("mouseup", (event) => {
const selection = window.getSelection().toString().trim();
if (selection) {
keyword=selection;
}
});
  1. マウスをクリックして変換ロジックを?qū)g行します。 AJAX リクエストを使用して、バックグラウンドから翻訳結(jié)果を取得し、DIV 要素に表示できます。
function translate(){
if(keyword){
// 執(zhí)行翻譯邏輯
}
}
icon.addEventListener("mouseover", translate);
  1. CSS スタイル シートの DIV 要素にスタイルを追加して、ページ上にフローティングして表示できるようにします。
#translation {
position: fixed;
top: 10px;
right: 10px;
max-width: 300px;
padding: 5px;
background-color: #f7f7f7;
border: 1px solid #ccc;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
z-index: 9999;
}

以上の手順で単語翻訳の基本的な機能が実現(xiàn)できるので、その効果を見てみましょう。

基于 ChatGPT API 的劃詞翻譯瀏覽器腳本實現(xiàn)

#react antd の実裝

上記のコードは最も単純なバージョンのみを?qū)g裝しており、スタイルもこれは十分に美しいものではないので、webpack react antd を使用して最新のプラグインを?qū)g裝できます。ここでは、以前に作成したテンプレート tampermonkey-starter を使用します。

antd の Popover コンポーネントを使用して表示し、react を使用して JS コードを再構(gòu)築すると、次のような効果が得られます。

基于 ChatGPT API 的劃詞翻譯瀏覽器腳本實現(xiàn)#単語翻訳

翻訳ボタンをクリックすると、インターフェースを通じて翻訳結(jié)果が表示されます。以下のリクエスト。ただし、API が完全に返されるまで翻訳結(jié)果は表示されないため、処理が遅くなります。ストリームを使用できますか? OpenAI インターフェイスはストリーム レンダリングをサポートしていますか? このようにして、結(jié)果は単語ごとにポップアップ表示されます。

import { createParser } from "eventsource-parser";

const translate = async (text: string) => {
const resp = await fetch("https://api.openai.com/v1/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
authorization:
`Bearer ${OPENAI_API_KEY}`,
},
body: JSON.stringify({
model: "text-davinci-003",
prompt: `Translate this into Chinese:
${text}`,
max_tokens: 1000,
temperature: 0,
frequency_penalty: 0,
stream: true,
}),
});
if (resp.status !== 200) {
const res = await resp.json();
setLoading(false);
console.error(res);
return;
}
const parser = createParser((event) => {
if (event.type === "event") {
const data = event.data;
if (data === "[DONE]") {
setLoading(false);
}
try {
let json = JSON.parse(event.data);
setResult((prev) => {
return prev + json.choices[0].text;
});
} catch (error) {
console.log(error);
}
}
});
const data = resp.body;
if (!data) {
console.log("Error: No data received from API");
return;
}
const reader = resp.body.getReader();
try {
while (true) {
const { done, value } = await reader.read();
if (done) {
setLoading(false);
break;
}
const str = new TextDecoder().decode(value);
parser.feed(str);
}
} finally {
reader.releaseLock();
}
};

上記のコードでは、フェッチ API を使用して HTTP リクエストを送信し、応答で読み取り可能なストリームを取得します。 getReader メソッドを使用してリーダー オブジェクトを取得し、それを使用してストリーム データを処理し、eventsource-parser パッケージを使用してサーバーから送信されたイベントからのデータを解析できます。

応答の內(nèi)容は、Server-sent events (サーバーから送信されたイベント) に応じて 1 つずつ表示されます。

基于 ChatGPT API 的劃詞翻譯瀏覽器腳本實現(xiàn)

#テキスト読み上げ

一般翻訳プラグ-すべての ins には音聲再生機能があり、Web Speech API を使用できます。この API は、SpeechSynthesis と SpeechSynthesisUtterance という 2 つの音聲合成インターフェイスを提供します。

function speak(text) {
if ('speechSynthesis' in window) {
const utterance = new SpeechSynthesisUtterance(text);
utterance.voice = speechSynthesis.getVoices()[0];
utterance.pitch = 1;
utterance.rate = 1;
speechSynthesis.speak(utterance);
}
}

次に、この関數(shù)を直接呼び出して、音聲再生を?qū)g現(xiàn)するために読み上げる必要があるテキストを渡します

speak('Hello, world!');
summary

この記事では、OpenAI が提供する翻訳用インターフェイスの使用、翻訳をトリガーするボタンの追加、および HTML ページでのマウスアップ イベント監(jiān)視イベントの追加、AJAX リクエストを使用した翻訳結(jié)果の取得など、単語翻訳の基本機能の実裝方法を紹介します。インターフェースであり、DIV 要素に表示されます。また、webpack React antd を使用して最新のプラグインを?qū)g裝する方法と、Web Speech API を使用して音聲再生機能を?qū)g裝する方法も紹介します。

以上がChatGPT APIに基づくワードマーキング翻訳ブラウザスクリプトの実裝の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

初心者向けの不可欠なHTMLタグ 初心者向けの不可欠なHTMLタグ Jul 27, 2025 am 03:45 AM

HTMLをすばやく開始するには、Webスケルトンを構(gòu)築するためにいくつかの基本的なタグをマスターするだけです。 1.ページ構(gòu)造は不可欠であり、ルート要素であり、メタ情報が含まれ、コンテンツディスプレイ領域です。 2。タイトルを使用します。レベルが高いほど、數(shù)が小さくなります。タグを使用してテキストをセグメント化して、レベルをスキップしないようにします。 3.リンクはタグを使用してHREF屬性を一致させ、畫像はタグを使用し、SRCおよびALT屬性が含まれます。 4.リストは、順序付けられていないリストと順序付けリストに分割されます。各エントリは表され、リストにネストする必要があります。 5.初心者は、すべてのタグを強制的に記憶する必要はありません。あなたが書いている間にそれらを書いてチェックする方がより効率的です。構(gòu)造、テキスト、リンク、寫真、リストをマスターして、基本的なWebページを作成します。

Shadow Domの概念とHTML統(tǒng)合 Shadow Domの概念とHTML統(tǒng)合 Jul 24, 2025 am 01:39 AM

Shadowdomは、孤立したDOMサブツリーを作成するためにWebコンポーネントテクノロジーで使用されるテクノロジーです。 1.獨自のスタイルと行動を備えた通常のHTML要素上の獨立したDOM構(gòu)造のマウントを可能にし、メインドキュメントに影響しません。 2。AttachShadowメソッドの使用やモードの設定など、JavaScriptを介して作成されました。 3。HTMLと組み合わせて使用すると、3つの主要な機能があります。クリア構(gòu)造、スタイル分離、コンテンツプロジェクション(スロット)。 4。ノートには、複雑なデバッグ、スタイルスコープ制御、パフォーマンスオーバーヘッド、フレームワークの互換性の問題が含まれます。要するに、Shadowdomは、再利用可能で汚染されていないUIコンポーネントを構(gòu)築するためのネイティブカプセル化機能を提供します。

なぜ私の畫像がHTMLに表示されないのですか? なぜ私の畫像がHTMLに表示されないのですか? Jul 28, 2025 am 02:08 AM

表示されていない畫像は、通常、ファイルパスの間違ったパス、ファイル名または拡張機能、HTML構(gòu)文の問題、またはブラウザキャッシュによって引き起こされます。 1. SRCパスがファイルの実際の位置と一致していることを確認し、正しい相対パスを使用します。 2.ファイル名のケースと拡張機能が正確に一致するかどうかを確認し、URLに直接入力して畫像をロードできるかどうかを確認します。 3.IMGタグ構(gòu)文が正しいかどうかを確認し、冗長文字がなく、ALT屬性値が適切であることを確認してください。 4.ページを強制的に更新するか、キャッシュをクリアするか、Incognitoモードを使用してキャッシュ干渉を排除してください。この順序でのトラブルシューティングは、ほとんどのHTML畫像表示の問題を解決できます。

html `style`タグ:インラインと內(nèi)部css html `style`タグ:インラインと內(nèi)部css Jul 26, 2025 am 07:23 AM

シーンに従ってスタイル配置方法を選択する必要があります。 1。インラインは、操作によるボタンの色の変更など、単一要素または動的JS制御の一時的な変更に適しています。 2。內(nèi)部CSSは、ページが少ないプロジェクトと単純な構(gòu)造に適しています。これは、ログインページの基本スタイル設定など、スタイルの集中管理に便利です。 3。再利用、メンテナンス、パフォーマンスが優(yōu)先され、大規(guī)模なプロジェクトの外部リンクCSSファイルを分割することをお勧めします。

別のタグ內(nèi)にタグを入れることはできますか? 別のタグ內(nèi)にタグを入れることはできますか? Jul 27, 2025 am 04:15 AM

youcannotnesttagsinsisideantagbecuseit’sinvalidhtml; browsersautomatelycloseThefirsteforeopeningthenext、spedinginselementsied、useinlineelements like like like、orforstylingwithinaparagraph、またはblockainerslikegoriveparagragh

入力タグの名前屬性は何ですか? 入力タグの名前屬性は何ですか? Jul 27, 2025 am 04:14 AM

thenAmeattributeTheTogisusedisedifytheTheInputisputisUbsisubmitted; itstheasthekey-key-key-valuepairsenttotheserver、wheretheuser'sinputisthevalue.1.whenaformissubmitted、thenameattributebecomesthe keyanttheinputtheinupthe becomesthevalueintas

DNSをプリフェッチするためのHTML「リンク」 DNSをプリフェッチするためのHTML「リンク」 Jul 23, 2025 am 02:19 AM

処理前のDNSはページの読み込み速度を高速化でき、DNSのHTMLリンクタグを使用することは効果的な方法です。 dnsprefetchingは、事前にドメイン名を解決することにより、後続の要求時間を保存します。該當するシナリオには、サードパーティフォント、広告統(tǒng)計スクリプト、リソースホスティング、CDNドメイン名が含まれます。メインページの依存関係リソースに優(yōu)先順位を付け、3?5の數(shù)を合理的に制御し、Preconnectで使用して効果を高めることをお勧めします。

HTMLで順序付けられていないリストを作成する方法は? HTMLで順序付けられていないリストを作成する方法は? Jul 30, 2025 am 04:50 AM

HTML Unoderedリストを作成するには、タグを使用してリストコンテナを定義する必要があります。各リストアイテムはタグで包まれており、ブラウザは自動的に弾丸を追加します。 1.タグを使用してリストを作成します。 2。各リスト項目はタグで定義されています。 3.ブラウザは、デフォルトのドットシンボルを自動的に生成します。 4。サブリストはネスティングを通じて実裝できます。 5。CSSのリストスタイルタイプの屬性を使用して、ディスク、サークル、スクエア、またはなしなどのシンボルスタイルを変更します。これらのタグを正しく使用して、標準の非秩序化リストを生成します。

See all articles