FFH—AI 詩作 HttpRequest 練習

FFH—AI 詩作 HttpRequest 練習

オープンソースの詳細については、以下をご覧ください。

51CTO オープンソース基本ソフトウェアコミュニティ

​​https://ost..com​​

序文

最近、オンライン授業で AI 詩作インターフェースを見ました。以前のフェッチインターフェースはメンテナンスされなくなったので、この機会に Hongmeng の http インターフェースを試してみました。次に、HTTP リクエストに関する基本的な知識を確認し、Hongmeng の HTTP リクエストを練習するために、簡単な AI 詩作デモを実装します。

デモ

http インターフェース常識補足

コンテンツタイプ

コンテンツ タイプの目的は、返されるコンテンツのコンテンツ タイプをクライアントに伝えることです。さまざまなコンテンツ タイプの形式は次のとおりです。

コンテンツタイプ

対応するフォーマット

テキスト/HTML

HTML形式

テキスト/プレーン

プレーンテキスト形式

テキスト/xml

XML形式

画像/gif

gif画像形式

画像/jpeg

Jpg画像フォーマット

画像/png

png画像形式

アプリケーション/xhtml+xml

テキスト

アプリケーション/xml

XML データ形式

アプリケーション/atom+xml

Atom XML シンジケーション形式

アプリケーション/json

JSONデータ形式

アプリケーション/pdf

PDF形式

アプリケーション/msword

Word文書形式

アプリケーション/オクテットストリーム

バイナリ ストリーム データ (一般的なファイルのダウンロードなど)

アプリケーション/x-www-form-urlencoded

フォームデータはキー/値形式でエンコードされ、サーバーに送信されます(フォームでデータを送信するためのデフォルトの形式)

マルチパート/フォームデータ

この形式は、フォームにファイルをアップロードする必要がある場合に必要です。

応答ステータス コード (ResponseCode)

各インターフェース要求に対して、サーバーは応答ステータス コードを返します。各ステータス コードには異なる意味があります。

名前

価値

説明する

わかりました

200

リクエストは成功しました。通常、GET および POST リクエストに使用されます。

作成

201

作成されました。新しいリソースが正常に要求され、作成されました。

承認済み

202

承認されました。リクエストは受け入れられましたが、完了まで処理されていません。

権限がない

203

許可されていない情報。リクエストは成功しました。

コンテンツなし

204

コンテンツがありません。サーバーは正常に処理しましたが、コンテンツを返しませんでした。

リセット

205

コンテンツをリセットします。

部分的

206

部分的なコンテンツ。サーバーはいくつかの GET リクエストを正常に処理しました。

複数選択

300

複数のオプション。

移動済み_PERM

301

永久に移動します。要求されたリソースは新しい URI に恒久的に移動されました。返される情報には新しい URI が含まれ、ブラウザは自動的に新しい URI にリダイレクトされます。

移動済み_一時

302

一時的な移動。

その他を見る

303

他のアドレスを表示します。

変更されていません

304

変更されていません。

プロキシの使用

305

プロキシを使用してください。

要求の形式が正しくありません

400

クライアントの要求は構文的に間違っていたため、サーバーが理解できませんでした。

無許可

401

リクエストにはユーザー認証が必要です。

支払いが必要です

402

将来の使用のために予約されています。

禁断

403

サーバーはクライアントの要求を理解しましたが、要求の実行を拒否しています。

見つかりません

404

サーバーはクライアントが要求したリソース (Web ページ) を見つけることができません。

不正な方法

405

クライアント要求内のメソッドは禁止されています。

受け入れられない

406

サーバーは、クライアントの要求のコンテンツ特性に基づいて要求を完了できません。

プロキシ認証

407

リクエストにはプロキシの認証が必要です。

クライアントタイムアウト

408

リクエストに時間がかかりすぎたため、タイムアウトになりました。

対立

409

サーバーは、クライアントの PUT 要求を完了するときにこのコードを返す場合があります。サーバーが要求を処理中に競合が発生しました。

消えた

410

クライアントが要求したリソースは存在しません。

長さは必須です

411

サーバーは、Content-Length なしでクライアントから送信された要求情報を処理できません。

事前設定失敗

412

クライアントは前提条件エラーのある情報を要求しました。

エンティティが大きすぎる

413

リクエスト エンティティが大きすぎてサーバーが処理できないため、リクエストは拒否されました。

要求が長すぎる

414

要求された URI が長すぎるため (URI は通常 URL です)、サーバーはそれを処理できません。

サポートされていないタイプ

415

サーバーは要求された形式を処理できません。

内部エラー

500

内部サーバー エラーが発生したため、要求を完了できませんでした。

実装されていません

501

サーバーは要求された機能をサポートしていないため、要求を完了できません。

不正なゲートウェイ

502

サーバーはゲートウェイまたはプロキシとして機能しているときに、リモート サーバーから無効な要求を受信しました。

利用不可

503

過負荷またはシステムメンテナンスのため、サーバーは一時的にクライアントのリクエストを処理できません。

ゲートウェイタイムアウト

504

ゲートウェイまたはプロキシとして機能しているサーバーは、リモート サーバーからの要求を適切なタイミングで受信しませんでした。

バージョン

505

サーバーによって要求された HTTP プロトコルのバージョン。

コードの実装

1. ネットワーク権限を申請する

config.json ファイルにネットワーク権限を登録します。これにより、プログラムはネットワーク ソケットを開いてネットワーク接続を確立できるようになります。

 「必要な権限」 : [
{
「名前」 : 「ohos.permission.INTERNET」
}
]

2. httpモジュールをインポートする

 '@ohos.net.http' からhttp をインポートします

3. HttpRequestオブジェクトを作成する

createHttp() を呼び出して HttpRequest オブジェクトを作成した後、各 httpRequest は http リクエスト タスクに対応しており、再利用できないことに注意してください。つまり、ネットワーク リクエストごとに新しい HttpRequest オブジェクトを作成する必要があります。リクエストが実行されると、オブジェクトは自動的に破棄されます。

 httpRequest を http.createHttp() にします。

4. リクエストインターフェースを書く

 httpRequest . リクエスト(
"https://py.myie9.com/cangtoutest/" + this .poemHead
{
ヘッダー: {
'コンテンツタイプ' : 'text/plain'
},
読み取りタイムアウト: 10000
接続タイムアウト: 10000
}, ( エラー, データ) => {
もしエラーが起きたら
console.info ( "xxx---" + JSON.stringify (データ) )
this.aiResult = data.result ;
} それ以外{
console.info ( 'xxx--- エラー: ' + JSON.stringify ( err )) ;
}
})

ここまでで、単純な http リクエストが完了しました。

後で、リクエストをカプセル化して、メソッド、Content-Type など、変更する必要があるいくつかのパラメータを公開できます。後で時間を見つけて、HTTP リクエストのカプセル化に関するブログを書く予定です。

5. 頭韻詩の完全なコード

jsコード:

 '@ohos.net.http' からhttp をインポートします
'@system.router' からルーターをインポートします
// 各 httpRequest は http リクエストタスクに対応しており、再利用できません
httpRequest = http.createHttp () します

エクスポートデフォルト{
データ: {
詩の見出し: "123"
aiResult : 「上記の要件を満たすフィールドを入力してください」
},
初期化(){
},
戻る() {
ルーター.back ()
},
ヘッド詩を隠す() {
httpRequest = http.createHttp ( ) ;
httpRequest . リクエスト(
"https://py.myie9.com/cangtoutest/" + this .poemHead
{
ヘッダー: {
'コンテンツタイプ' : 'text/plain'
},
読み取りタイムアウト: 10000
接続タイムアウト: 10000
}, ( エラー, データ) => {
もしエラーが起きたら
console.info ( "xxx---" + JSON.stringify (データ) )
this.aiResult = data.result ;
} それ以外{
console.info ( 'xxx--- エラー: ' + JSON.stringify ( err )) ;
}
})
},
チェック1e ){
console.log ( "xxx---" + JSON.stringify ( e.value ) )
this.poemHead = e.value.poemHead
this.hideHeadPoem () ;
}
}

CSSコード:

 。容器{
ディスプレイ: フレックス;
flex-direction : ;
コンテンツの中央揃え ;
アイテムの位置合わせ: 中央;
: 0px ;
: 0px ;
: 100% ;
高さ: 100% ;
}
。タイトル{
フォントサイズ: 60px ;
テキスト配置: 中央;
: 100% ;
高さ40% ;
マージン: 10px ;
}
。画面{
コンテンツの中央揃え ;
アイテムの位置合わせ: 中央;
: 80% ;
高さ35% ;
境界線の半径: 20px ;
背景色: #fff5f1f1 ;
不透明度0.8 ;
ボックスの影: 10px 10px 5px #888888 ;
}
.サブボタン{
: 250px ;
左マージン25% ;
背景色: #ffa5552f ;
上マージン: 5% ;
}
.subButton2 {
: 250px ;
高さ: 70px ;
左マージン25% ;
背景色: #ffa5552f ;
上マージン2% ;
}

HMLコード:

 < div クラス= "コンテナ" >
< フォームクラス= "コンテナ" onsubmit = 'check1' >
< input style = "width:80%;height:10%;margin-top: 15%;" type = "text" placeholder = "頭韻詩を生成するための文章を入力してください" name = 'poemHead' > </ input >
< div クラス= "display" スタイル= "margin-top: 15%;" >
< テキストスタイル= "余白: 40px;フォントサイズ: 38px;" >
{{aiResult}}
</ テキスト>
</div>
< input class = "subButton" type = 'submit' >頭韻詩を生成します</ input >
< button class = "subButton2" onclick = "back" >戻る</ button >
</ フォーム>
< image src = "../../common/123.png" style = "z-index: -1; position: fixed; width: 100%; height: 100%;" > </ image >
</div>

完全なデモ コードについては添付ファイルを参照してください。

https://ost..com/resource/2180.

オープンソースの詳細については、以下をご覧ください。

51CTO オープンソース基本ソフトウェアコミュニティ

​​https://ost..com​​.

<<:  91.3%の成長、「スマート」な製造業の実現は協働ロボットにかかっている

>>:  気温を下げて干ばつを緩和するブラックテクノロジーが多数存在します。人工降雨の謎とは?

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

SLAM の新時代を切り開きましょう! NeRFと3D GS法のレビュー

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

注意メカニズムにバグがあり、ソフトマックスが犯人であり、すべてのトランスフォーマーに影響を与えている

「私は、8年間誰も発見できなかった注目度の式のバグを発見しました。GPTやLLaMAを含むすべてのT...

...

AIはデータセキュリティをどう変えるのか

サイバーセキュリティにおける人工知能 (AI) は、データセキュリティにとって良いものでしょうか、そ...

AI による顔を変える動画が何百万人ものユーザーを獲得。たった 1 ステップで楽しさから恐怖感まで

今朝、私の友人の輪の中に、AI による顔の変形に関する短い動画が大量に現れました。これらの短編動画の...

PyTorch と NumPy の徹底比較! ! !

こんにちは、Xiaozhuangです! pytorch のコンテンツを更新するように多くの人から促さ...

識別的か生成的か: どちらが視覚的理解の未来を表すのでしょうか?

これまで、視覚システムに関する基本的な研究の多くは、動物に画像を見せ、そのニューロンの反応を測定し、...

...

...

GPT や Llama などの大規模モデルには「反転の呪い」があります。このバグを軽減するにはどうすればよいでしょうか?

中国人民大学の研究者らは、Llamaなどの因果言語モデルが遭遇する「反転の呪い」は、次のトークン予測...

ChatGPT は EDR 検出を回避する変異型マルウェアを作成します

ChatGPTは昨年末のリリース以来、世界中で大きな話題を呼んでいます。しかし、消費者やIT専門家の...

2019 Baidu AI 開発者会議で AI レポートカードが披露される

7月3日、北京で百度AI開発者会議「Baidu Create2019」が開催された。この会議は「産業...

8つのソートアルゴリズムのPython実装

この記事では、主に 8 つの一般的なソート アルゴリズムの基本概念とそれらの Python 実装を紹...

...