<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-9182624470389735726</atom:id><lastBuildDate>Mon, 16 Jun 2025 15:21:56 +0000</lastBuildDate><category>iOS</category><category>web開発</category><category>node.js</category><category>開発環境</category><category>雑記</category><category>php</category><category>typeScript</category><category>javascript</category><category>Android</category><category>GCP</category><category>k8s</category><category>python</category><category>AI</category><category>DB</category><category>windows</category><category>google app engine</category><category>Keras</category><category>Mac</category><category>blogger</category><category>プログラム言語</category><category>業界動向</category><category>C#</category><category>Kaggle</category><category>Vue</category><category>linux</category><category>NoSQL</category><category>コンテナ、Docker</category><category>Docker</category><category>Kotlin</category><category>git</category><category>golang</category><category>test</category><category>開発資料</category><category>.net</category><title>何かをやりたい何かになりたい</title><description>ググってもすぐ出てこなかったプログラムの話題を中心にメモってくブログ</description><link>http://trueman-developer.blogspot.com/</link><managingEditor>noreply@blogger.com (えむてぃ)</managingEditor><generator>Blogger</generator><openSearch:totalResults>334</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-2882552585785007123</guid><pubDate>Sat, 19 Oct 2024 15:31:00 +0000</pubDate><atom:updated>2024-10-20T00:31:28.483+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">雑記</category><title>今ブログを始めるならHugo*Vercelが良いかもしれない</title><description>Bloggerは流石に使いづらくなってきた。


&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;要件&lt;/h2&gt;
&lt;hr /&gt;

&lt;ul type=&quot;disc&quot;&gt;
    &lt;li&gt;とりあえず無料で始めたい&lt;/li&gt;
    &lt;li&gt;マークダウンなどで簡単に書けるようにしたい&lt;/li&gt;
    &lt;li&gt;画像添付を簡単にしたい&lt;/li&gt;
    &lt;li&gt;自由度が高いほうがいい&lt;/li&gt;
    &lt;li&gt;広告だとかは勝手についてこないようにしたい&lt;/li&gt;
    &lt;li&gt;ソースコードをきれいに表示したい&lt;/li&gt;
    &lt;li&gt;サーバは日本に近いほうがいい&lt;/li&gt;
&lt;/ul&gt;


&lt;hr /&gt;
&lt;h2&gt;Hugoについて&lt;/h2&gt;
&lt;hr /&gt;
静的サイトジェネレーター。&lt;br&gt;
Markdownで記事を書い、HTMLに変換することができる。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;h3&gt;Hugoのインストール&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://gohugo.io/installation/&quot;&gt;https://gohugo.io/installation/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;WindowsならWinGetでインストールできる。&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;winget install Hugo.Hugo.Extended
hugo version
&lt;/pre&gt;
&lt;br&gt;

&lt;h3&gt;Hugoの使い方&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://gohugo.io/getting-started/quick-start/&quot; target=&quot;_blank&quot;&gt;https://gohugo.io/getting-started/quick-start/&lt;/a&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;hugo new site quickstart
cd quickstart
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
echo &quot;theme = &#39;ananke&#39;&quot; &gt;&gt; hugo.toml
hugo server
&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;echo &quot;theme = &#39;ananke&#39;&quot; &gt;&gt; hugo.toml&lt;/code&gt;&lt;br&gt;
はpowershellだと動かないのでbash等を使うかhugo.tomlへ直接追記する。&lt;/p&gt;

&lt;p&gt;&lt;code&gt;hugo.toml&lt;/code&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:java&quot;&gt;
baseURL = &#39;https://example.org/&#39;
languageCode = &#39;ja-jp&#39;
title = &#39;My New Hugo Site&#39;
theme = &#39;ananke&#39;
&lt;/pre&gt;

&lt;p&gt;&lt;a href=&quot;http://localhost:1313&quot; target=&quot;_blank&quot;&gt;http://localhost:1313&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://localhost:1313/sitemap.xml&quot; target=&quot;_blank&quot;&gt;http://localhost:1313/sitemap.xml&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://localhost:1313/404.html&quot; target=&quot;_blank&quot;&gt;http://localhost:1313/404.html&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://localhost:1313/categories/&quot; target=&quot;_blank&quot;&gt;http://localhost:1313/categories/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://localhost:1313/tags/&quot; target=&quot;_blank&quot;&gt;http://localhost:1313/tags/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;デフォルトで8ページほど生成される。&lt;/p&gt;
&lt;br&gt;

&lt;h3&gt;テーマ&lt;/h3&gt;

&lt;p&gt;あらかじめ用意されたデザインを利用することができる。&lt;br&gt;
&lt;p&gt;テーマは以下から選ぶことが可能。&lt;br&gt;
&lt;a href=&quot;https://themes.gohugo.io/&quot; target=&quot;_blank&quot;&gt;https://themes.gohugo.io/&lt;/a&gt;&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;Kayalを試してみる&lt;br&gt;
&lt;a href=&quot;https://themes.gohugo.io/themes/kayal/&quot; target=&quot;_blank&quot;&gt;https://themes.gohugo.io/themes/kayal/&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;space&quot;&gt;&lt;code&gt;git submodule add -b main https://github.com/mnjm/kayal.git themes/kayal
  &lt;/code&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;themes\kayal\config&lt;/code&gt;&lt;br&gt;
をコピーする。config内のhugo.tomlの先頭にテーマを追記する。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
theme = &quot;kayal&quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;コンテンツの追加&lt;/h3&gt;

&lt;div class=&quot;space&quot;&gt;&lt;code&gt;hugo new content content/posts/hello-wowld.md
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;content/posts&lt;/code&gt;以下にコンテンツが作成されていく。&lt;br&gt;
マークダウンで記述して記事を作成することが可能。&lt;br&gt;
デフォルトはドラフト状態で作成されすぐに公開されることはない。&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;
+++
date = &#39;2024-10-19T17:28:39+09:00&#39;
draft = true
title = &#39;Hello Wowld&#39;
+++
### Hello World2

This is **bold** text, and this is *emphasized* text.
&lt;/pre&gt;

&lt;div class=&quot;space&quot;&gt;&lt;code&gt;hugo server -D
&lt;/code&gt;&lt;/div&gt;

&lt;p&gt;でドラフト込みのページも確認可能&lt;/p&gt;

&lt;p&gt;まだまだ大量にできることがありそうだがHugoについてはいったんここまで。&lt;/p&gt;
&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;Vercelについて&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://gohugo.io/hosting-and-deployment/&quot; target=&quot;_blank&quot;&gt;https://gohugo.io/hosting-and-deployment/&lt;/a&gt;&lt;br&gt;
以下のコマンドで静的ファイルが生成されるため公開自体なら割となんでもいい。&lt;br&gt;
&lt;p&gt;&lt;code&gt;hugo --gc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;でpublicディレクトリに静的ファイルが生成されるので基本的にこれをデプロイするだけでよい。&lt;/p&gt;
&lt;p&gt;当初はNetlifyの予定だったが日本のリージョンがないのでVercelで試してみる。&lt;/p&gt;
&lt;p&gt;VercelでデプロイするにはVercel CLIを使用する方法とGitHub連携する方法がある。&lt;br&gt;
今回はGitHub連携する方法を試してみる。&lt;/p&gt;

&lt;br&gt;&lt;br&gt;
&lt;h3&gt;GitHubへプッシュ&lt;/h3&gt;
&lt;p&gt;詳細については割愛。&lt;/p&gt;
&lt;br&gt;
&lt;h3&gt;Vercelへデプロイする&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://vercel.com/&quot; target=&quot;_blank&quot;&gt;https://vercel.com/&lt;/a&gt;&lt;br&gt;
GitHubアカウントでサインアップするとスムーズに進めることができる。&lt;/p&gt;
&lt;p&gt;Vercelでインポートプロジェクトを設定する。&lt;/p&gt;
&lt;p&gt;Import Git Repository&lt;br&gt;
→ 先ほどプッシュしたリポジトリ　を選択する&lt;/p&gt;
&lt;p&gt;Configure Projectで各種設定を行う&lt;/p&gt;

&lt;p&gt;Project Name: 任意のプロジェクト名&lt;br&gt;
Framework Preset: Hugo&lt;br&gt;
Build and Output Setting: Hugoを選択していればデフォルトで良い&lt;/p&gt;
&lt;p&gt;Deploy&lt;/p&gt;

&lt;br&gt;
&lt;h3&gt;Hugoのビルドバージョンを指定する&lt;/h3&gt;
&lt;p&gt;場合によってはデプロイに成功してもサイトを表示したときにエラーになる場合がある。&lt;br&gt;
ビルド時のバージョンが違うようなので環境変数を設定する。&lt;/p&gt;

&lt;p&gt;https://vercel.com/[your-project]/settings/environment-variables&lt;br&gt;
Settingsより&lt;br&gt;
Key:HUGO_VERSION&lt;br&gt;
Value:hugo versionで確認できるバージョン(-移行は不要x.y.zまでで良い)&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;以上でウェブサイトが公開できるはず。&lt;br&gt;
&lt;a href=&quot;https://memonote-seven.vercel.app/&quot; target=&quot;_blank&quot;&gt;https://memonote-seven.vercel.app/&lt;/a&gt;&lt;/p&gt;



&lt;br&gt;&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;p&gt;&lt;a href=&quot;https://kt-graph.com/hugo_netlify_deploy_2_deploy/&quot; target=&quot;_blank&quot;&gt;https://kt-graph.com/hugo_netlify_deploy_2_deploy/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.nyan-da-full.com/posts/vercel-deploy-hugo-version/&quot; target=&quot;_blank&quot;&gt;https://www.nyan-da-full.com/posts/vercel-deploy-hugo-version/&lt;/a&gt;&lt;/p&gt;

&lt;br&gt;
&lt;br&gt;</description><link>http://trueman-developer.blogspot.com/2024/10/hugovercel.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-4935576018132077783</guid><pubDate>Tue, 13 Aug 2024 13:44:00 +0000</pubDate><atom:updated>2024-09-04T19:57:13.790+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GCP</category><title>Google Drive APIを使用する</title><description>Goで試してみる。&lt;br&gt;


&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;1. Google Cloud Platformでプロジェクトを作成する題&lt;/h2&gt;
&lt;hr /&gt;

多くのサービスがGoogle Cloudに寄せてあるようだ。&lt;br&gt;
Google Drive APIのみの使用であれば基本的に無料。&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;https://console.cloud.google.com/&quot; target=&quot;_blank&quot;&gt;https://console.cloud.google.com/&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;2. Google Drive APIを有効にする&lt;/h2&gt;
&lt;hr /&gt;

以下のURLから。&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;https://console.cloud.google.com/apis/library/drive.googleapis.com&quot; target=&quot;_blank&quot;&gt;https://console.cloud.google.com/apis/library/drive.googleapis.com&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;



&lt;hr /&gt;
&lt;h2&gt;3. OAuth 2.0 クライアント IDを作成する&lt;/h2&gt;
&lt;hr /&gt;

Google DriveをAPI経由でアクセスする方法はユーザにGoogle経由で認証(ログイン)してもらって取得したトークンを利用するといった流れになる。&lt;br&gt;
&lt;a href=&quot;https://console.cloud.google.com/apis/credentials/consent&quot; target=&quot;_blank&quot;&gt;https://console.cloud.google.com/apis/credentials/consent&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
設定項目として事前に承認済のドメインが必要。サーチコンソールから設定する。&lt;br&gt;
&lt;a href=&quot;https://search.google.com/search-console/about&quot; target=&quot;_blank&quot;&gt;https://search.google.com/search-console/about&lt;/a&gt;&lt;br&gt;
ドメインを自分で取得している場合はTXTやCNAMEの設定でよいがGAEなどを使用している場合はURLプレフィックスを使用する。&lt;br&gt;
&lt;br&gt;

OAuth 同意画面 → スコープ → テストユーザー → 概要&lt;br&gt;
の順に設定する。&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
3.1 OAuth 同意画面定&lt;/h2&gt;
&lt;hr /&gt;
OAuth 同意画面 → UserType:外部 → 作成&lt;br&gt;

UserType:内部はGoogle Workspace Userのみ&lt;br&gt;

&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;アプリ名:&lt;/li&gt;
&lt;li&gt;ユーザーサポートメール:&lt;/li&gt;
&lt;li&gt;アプリのロゴ:&lt;/li&gt;
&lt;li&gt;アプリケーションのホームページ:&lt;/li&gt; 
&lt;li&gt;アプリケーションプライバシーポリシーのリンク:&lt;/li&gt;
&lt;li&gt;アプリケーションの利用規約のリンク:&lt;/li&gt;
&lt;li&gt;承認済みドメイン:&lt;/li&gt;
&lt;/ul&gt;

&lt;br&gt;
プライバシーポリシーと利用規約のリンクは少なくともテスト中は仮で良さそうだ。&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
3.2 スコープの設定&lt;/h2&gt;
&lt;hr /&gt;

スコープの追加または削除 → Google Drive APIでフィルタ → 利用するスコープを選択&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw_rOYuwqF49_ibDambI9w8VaF57hsWp-osUUYWQlBG1PcPzR7JfCt4K9CITkiDAMBd3irU4ugR7QYobAguqoGYDysPdj7-sML1FH4g8Av_H7GDg2kwYugTvHzQDUpMicCEnNWj3tAzU3rdh_3_SUXQExgll4PJKR0sgfytEfcJw6bLs99tdPpue22RFsS/s1000/gdrive.png&quot; style=&quot;padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;616&quot; data-original-width=&quot;1000&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw_rOYuwqF49_ibDambI9w8VaF57hsWp-osUUYWQlBG1PcPzR7JfCt4K9CITkiDAMBd3irU4ugR7QYobAguqoGYDysPdj7-sML1FH4g8Av_H7GDg2kwYugTvHzQDUpMicCEnNWj3tAzU3rdh_3_SUXQExgll4PJKR0sgfytEfcJw6bLs99tdPpue22RFsS/s400/gdrive.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
アプリでファイル置き場がほしいだけなら&lt;br&gt;
「このアプリで使用する Google ドライブ上の特定のファイルのみの参照、編集、作成、削除」&lt;br&gt;
だけで良い。&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
3.3 テストユーザーの追加&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
gmailのアドレスを追加する。&lt;br&gt;
概要で全体を確認して問題なければOK。後で編集も可能。
&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;4. Google Drive APIの認証情報を取得&lt;/h2&gt;
&lt;hr /&gt;
する

&lt;a href=&quot;https://console.cloud.google.com/apis/api/drive.googleapis.com/credentials&quot; target=&quot;_blank&quot;&gt;https://console.cloud.google.com/apis/api/drive.googleapis.com/credentials&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
認証情報を作成 → OAuth クライアント ID&lt;br&gt;
→ アプリケーションの種類: ウェブクライアント&lt;br&gt;
→ 名前: 任意 → 作成&lt;br&gt;
&lt;br&gt;&lt;br&gt;
『承認済みの JavaScript 生成元』『承認済みのリダイレクト URI』へアプリケーションのドメインを指定する&lt;br&gt;
localhostも指定しておくとローカルで動作確認可能。&lt;br&gt;
&lt;br&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;クライアントIDを控えておく。&lt;/li&gt;
&lt;li&gt;クライアントシークレットを控えておく。&lt;/li&gt;
&lt;li&gt;JSONをダウンロードして保存する。&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
GoからGoogle Drive APIへアクセスしてみる&lt;/h2&gt;
&lt;hr /&gt;

&lt;div class=&quot;space&quot;&gt;
go get -u google.golang.org/api/drive/v3
go get -u golang.org/x/oauth2/google
&lt;/div&gt;


&lt;pre class=&quot;brush:java&quot;&gt;
http.HandleFunc(&quot;/oauth2callback&quot;, handleAuthCallback)



func handleAuthCallback(w http.ResponseWriter, r *http.Request) {
	fmt.Print(&quot;handleAuthCallback\n&quot;)
    // クエリから認証コードを取得
    code := r.URL.Query().Get(&quot;code&quot;)

	// Google Drive APIの認証
	b, err := os.ReadFile(&quot;credentials/client_secret.com.json&quot;) // jsonのファイルパス
	// fmt.Printf(&quot;b: %s\n&quot;, b)
	if err != nil {
        fmt.Printf(&quot;Unable to read client secret file: %v&quot;, err)
        return
    }

    // Configを生成
    config, err := google.ConfigFromJSON(b, drive.DriveFileScope)
    if err != nil {
        fmt.Printf(&quot;Unable to parse client secret file to config: %v&quot;, err)
        return
    }
    // トークンを交換
    token, err := config.Exchange(context.Background(), code)
    if err != nil {
        http.Error(w, &quot;Failed to exchange token: &quot;+err.Error(), http.StatusInternalServerError)
        return
    }

    // トークンを使ってDriveサービスを作成
    client := config.Client(context.Background(), token)
    driveService, err := drive.New(client)
    if err != nil {
        http.Error(w, &quot;Failed to create Drive client: &quot;+err.Error(), http.StatusInternalServerError)
        return
    }

    // ファイルのメタデータを設定
    f := &amp;#38;drive.File{
        Name:    &quot;TestFile.txt&quot;,
        MimeType: &quot;text/plain&quot;,
    }

    // ファイル内容を作成
    fileContent := &quot;Hello, World!&quot;
	reader := io.NopCloser(strings.NewReader(fileContent))

    // ファイルのアップロード
	_, err = driveService.Files.Create(f).Media(reader).Do()
    if err != nil {
        log.Fatalf(&quot;Unable to create file: %v&quot;, err)
    }


    // Drive APIを使った処理例（ファイルリストを取得）
    files, err := driveService.Files.List().PageSize(10).Fields(&quot;nextPageToken, files(id, name)&quot;).Do()
    if err != nil {
        http.Error(w, &quot;Unable to retrieve files: &quot;+err.Error(), http.StatusInternalServerError)
        return
    }

    fmt.Fprintf(w, &quot;Files:\n&quot;)
    for _, f := range files.Files {
        fmt.Fprintf(w, &quot;%s (%s)\n&quot;, f.Name, f.Id)
    }
}
&lt;/pre&gt;

ダウンロードしたjsonファイルのredirect_urisを置き換えると認証後のリダイレクト先が変わる。&lt;br&gt;
redirect_urisにport番号を指定すると弾かれるので80以外にしている場合は認証後に手動で置き換えるといった対応が必要になる。&lt;br&gt;
リダイレクトURLに含まれるコードから取得したトークンを利用していく。このトークンを保持したりリフレッシュしたりしてGoogle Drive APIを利用することになる。&lt;br&gt;
&lt;br&gt;
ファイルを作成して一覧を取得するといったサンプルコードになっているがスコープを&lt;i&gt;./auth/drive.file&lt;/i&gt;に設定している場合1ファイルしか確認できない。&lt;br&gt;
API経由で作成したファイルのみアクセスすることが可能になる。&lt;br&gt;
Google Driveを確認する。&lt;br&gt;
&lt;a href=&quot;https://drive.google.com/drive/home&quot; target=&quot;_blank&quot;&gt;https://drive.google.com/drive/home&lt;/a&gt;
&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;a href=&quot;https://qiita.com/doran/items/15b2c59adb410ddeeb8a&quot; target=&quot;_blank&quot;&gt;https://qiita.com/doran/items/15b2c59adb410ddeeb8a&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
</description><link>http://trueman-developer.blogspot.com/2024/08/google-drive-api.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw_rOYuwqF49_ibDambI9w8VaF57hsWp-osUUYWQlBG1PcPzR7JfCt4K9CITkiDAMBd3irU4ugR7QYobAguqoGYDysPdj7-sML1FH4g8Av_H7GDg2kwYugTvHzQDUpMicCEnNWj3tAzU3rdh_3_SUXQExgll4PJKR0sgfytEfcJw6bLs99tdPpue22RFsS/s72-c/gdrive.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-3060146850642136054</guid><pubDate>Sat, 03 Aug 2024 10:30:00 +0000</pubDate><atom:updated>2024-08-12T17:37:29.004+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GCP</category><category domain="http://www.blogger.com/atom/ns#">google app engine</category><title>AppEngineデプロイ時にエラー</title><description>少し仕組みが変わっている？&lt;br&gt;&lt;br&gt;


&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;


&lt;hr /&gt;
&lt;h2&gt;service account does not have access to the bucketと表示される&lt;/h2&gt;
&lt;hr /&gt;
  

&lt;div class=&quot;space&quot;&gt;
  ERROR: (gcloud.app.deploy) Error Response: [13] Failed to create cloud build: com.google.net.rpc3.client.RpcClientException:
&lt;eye3 title=&#39;/ArgoAdminNoCloudAudit.CreateBuild, FAILED_PRECONDITION&#39;/&gt;
APPLICATION_ERROR;google.devtools.cloudbuild.v1/ArgoAdminNoCloudAudit.CreateBuild;invalid bucket &quot;staging.XXXXXXXX-431409.appspot.com&quot;;
service account markdowneditor-431409@appspot.gserviceaccount.com does not have access to the bucket;AppErrorCode=9;StartTimeMs=1722679395963;unknown;ResFormat=uncompressed;ServerTimeSec=2.104986938;LogBytes=256;Non-FailFast;EndUserCredsRequested;EffSecLevel=none;ReqFormat=uncompressed;ReqID=b5c351844a9bad1b;GlobalID=0;Server=[2002:a05:630c:969:b0:6e:903a:5e33]:4001.

&lt;/div&gt;

Cloud Storageへの権限がないといったエラー。&lt;br&gt;
新しくプロジェクトを作成 → App Engine作成時に課金アカウント制限に引っかかる → 対応したときに権限周りが中途半端になっている。ということかもしれない。&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;対応方法&lt;/h2&gt;
&lt;hr /&gt;

App Engine 管理者を有効化する。&lt;br&gt;
&lt;a href=&quot;https://console.cloud.google.com/cloud-build/settings/service-account&quot; target=&quot;_blank&quot;&gt;https://console.cloud.google.com/cloud-build/settings/service-account&lt;/a&gt;count
&lt;br&gt;&lt;br&gt;
以下も有効化&lt;br&gt;
&lt;a href=&quot;https://console.cloud.google.com/apis/api/appengine.googleapis.com/metrics&quot; target=&quot;_blank&quot;&gt;https://console.cloud.google.com/apis/api/appengine.googleapis.com/metrics&lt;/a&gt;
&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2&gt;ERROR: (gcloud.app.deploy) B instance [staging.app-xxxxx.appspot.com] not found: The specified bucket does not exist.&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
軽率にGoogle Cloud Storageのバゲットを丸ごと消したら動作しなくなった。&lt;br&gt;
今までは問題なかったと思うがどうやら少し仕組みが変わっているらしい。&lt;br&gt;


キャッシュを無効にしてデプロイ。&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
gcloud app deploy --no-cach
&lt;/div&gt;
特に変わらず。&lt;br&gt;


&lt;a href=&quot;https://stackoverflow.com/questions/76826568/gcloud-app-deploy-complains-about-missing-staging-bucket&quot; target=&quot;_blank&quot;&gt;https://stackoverflow.com/questions/76826568/gcloud-app-deploy-complains-about-missing-staging-bucket&lt;/a&gt;

&lt;div class=&quot;space&quot;&gt;
gcloud beta app repair
&lt;/div&gt;
こちらもダメ。&lt;br&gt;


&lt;h3&gt;API経由でRepairを試す&lt;/h3&gt;

&lt;a href=&quot;https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps/repair&quot; target=&quot;_blank&quot;&gt;https://cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps/repair&lt;/a&gt;&lt;br&gt;
右側のTry this methodから実際に試すことが出来る。&lt;br&gt;
&lt;br&gt;
appsIdにはプロジェクトIDを指定するだけで良い。&lt;br&gt;
Cloud Storageにバケットが作成されていればOK.&lt;br&gt;
デプロイ出来るようになっているはず。
&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuTyOj0cXDd5Z-tWEEJnWVyv6pewZABP6sfZIleuVoqHuFO2YsPn0iAeCvtg4gCjBBjxSKO4jfTlYdHmCWaxn0lHwZ0nWFcywDyhB-C9vgwiS7mTOXz_bzLIPY_K6csvje-hHP0YvECqQ_XGC-ChXrN8ujizwrItF7N5Gzvp1Ijv-ZpxwJcRROTThBYVGN/s1020/repairgae.png&quot; style=&quot; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;493&quot; data-original-width=&quot;1020&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuTyOj0cXDd5Z-tWEEJnWVyv6pewZABP6sfZIleuVoqHuFO2YsPn0iAeCvtg4gCjBBjxSKO4jfTlYdHmCWaxn0lHwZ0nWFcywDyhB-C9vgwiS7mTOXz_bzLIPY_K6csvje-hHP0YvECqQ_XGC-ChXrN8ujizwrItF7N5Gzvp1Ijv-ZpxwJcRROTThBYVGN/s320/repairgae.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://stackoverflow.com/questions/64274811/gcloud-app-deploy-error-response-13-failed-to-create-cloud-build-invalid-buc&quot; target=&quot;_blank&quot;&gt;https://stackoverflow.com/questions/64274811/gcloud-app-deploy-error-response-13-failed-to-create-cloud-build-invalid-buc&lt;/a&gt;
&lt;br&gt;&lt;br&gt;

</description><link>http://trueman-developer.blogspot.com/2024/08/appengineservice-account-does-not-have.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuTyOj0cXDd5Z-tWEEJnWVyv6pewZABP6sfZIleuVoqHuFO2YsPn0iAeCvtg4gCjBBjxSKO4jfTlYdHmCWaxn0lHwZ0nWFcywDyhB-C9vgwiS7mTOXz_bzLIPY_K6csvje-hHP0YvECqQ_XGC-ChXrN8ujizwrItF7N5Gzvp1Ijv-ZpxwJcRROTThBYVGN/s72-c/repairgae.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-3564158639642751870</guid><pubDate>Sun, 21 Apr 2024 13:45:00 +0000</pubDate><atom:updated>2024-04-21T22:45:14.518+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">python</category><title>FastAPIの開発環境をDockerで構築する</title><description>デバッグできるところまで。&lt;br&gt;
概ね公式ドキュメント通りでOK&lt;br&gt;
&lt;a href=&quot;https://fastapi.tiangolo.com/ja/deployment/docker/&quot; target=&quot;_blank&quot;&gt;https://fastapi.tiangolo.com/ja/deployment/docker/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;プロジェクト構成&lt;/h2&gt;
&lt;hr /&gt;

以降はVisual Studio Codeを前提として話を進める。&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
  &lt;pre&gt;
ProjectDirectory
  ├─ .vscode
  │   ├─ launch.json
  ├─ app
  │   ├─ main.py
  ├─ debug-docker-compose.yml
  ├─ docker-compose.yml
  ├─ Dockerfile
  ├─ requirements.txt&lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;
少し重くなるため、開発用と+デバッグ実行用途で分けている。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;app/main.py&lt;/h2&gt;
&lt;hr /&gt;


&lt;pre class=&quot;brush:java&quot;&gt;
from typing import Union
from fastapi import FastAPI

app = FastAPI()

@app.get(&quot;/&quot;)
def read_root():
    test = 1
    return {&quot;Hello&quot;: &quot;World&quot;}

@app.get(&quot;/items/{item_id}&quot;)
def read_item(item_id: int, q: Union[str, None] = None):
    return {&quot;item_id&quot;: item_id, &quot;q&quot;: q}
&lt;/pre&gt;

app以下のファイルはコンテナにマウントされる（後ほど設定する）&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;Dockerfile&lt;/h2&gt;
&lt;hr /&gt;

&lt;pre class=&quot;brush:bash&quot;&gt;
FROM python:3.13-rc-slim as builder
# FROM python:3

# Python FastAPI用Dockerfile
# 以下はdocker-composeで設定
## コンテナとホスト間でポートのマッピング
## ホストの./appディレクトリをコンテナ上の/code/appへマウント

WORKDIR /code

RUN apt-get update
# ロケール設定、タイムゾーン変更
RUN apt-get -y install locales &amp;&amp; \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9

# コンテナ内での編集用
RUN apt-get install -y vim less

# 依存関係インストール
COPY ./requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
# RUN pip install fastapi
# RUN pip install pydantic
# RUN pip install &quot;uvicorn[standard]&quot;

# COPY ./app /code/app

&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;

元となるイメージは以下から対応しているバージョンの一番新しいものを選択する。&lt;br&gt;
&lt;a href=&quot;https://hub.docker.com/_/python&quot; target=&quot;_blank&quot;&gt;https://hub.docker.com/_/python&lt;/a&gt;&lt;br&gt;
slimだとサイズが小さくなる（必要なものが含まれていない可能性もある）&lt;br&gt;&lt;br&gt;

app以下のソースファイルは後ほどマウントするため公式の手順と違ってコピーしない。&lt;br&gt;
また起動コマンドはdocker-composeで記述するためDockerfileには記述しない。&lt;br&gt;

&lt;br&gt;&lt;br&gt;
&lt;h3&gt;requirements.txt&lt;/h3&gt;
&lt;br&gt;
依存関係を記述してビルド時にインストールするように。&lt;br&gt;
&lt;br&gt;
&lt;pre class=&quot;brush:xml&quot;&gt;
fastapi&amp;gt;=0.68.0,&amp;lt;0.69.0
pydantic&amp;gt;=1.8.0,&amp;lt;2.0.0
uvicorn&amp;gt;=0.15.0,&amp;lt;0.16.0
debugpy
&lt;/pre&gt;

&lt;hr /&gt;
&lt;h2&gt;docker-compose.yml&lt;/h2&gt;
&lt;hr /&gt;

&lt;pre class=&quot;brush:xml&quot;&gt;
version: &#39;3&#39;
services:
  python3:
    ports:
      - 80:80
    restart: always
    build:
      context: .
      target: dev
    container_name: &#39;python3&#39;
    # tty: true
    volumes:
      - ./app:/code/app
    command:
        [
            &quot;uvicorn&quot;,
            &quot;app.main:app&quot;,
            &quot;--reload&quot;,
            &quot;--host&quot;, &quot;0.0.0.0&quot;,
            &quot;--port&quot;, &quot;80&quot;
        ]
&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;
以上で起動して確認可能。&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
docker-compose up&lt;br&gt;
docker-compose -f docker-compose.yml up -d&lt;br&gt;
docker-compose -f docker-compose.yml up -d  --build&lt;br&gt;
&lt;/div&gt;
&lt;b&gt;-f ファイル名&lt;/b&gt;：設定ファイルを指定。デフォルトはdocker-compose.yml&lt;br&gt;
&lt;b&gt;-d&lt;/b&gt;：バックグラウンドで起動する&lt;br&gt;
&lt;b&gt;--build&lt;/b&gt;：再ビルドをおこなう。Dockerfileを変更したときなど。&lt;br&gt;
&lt;br&gt;

docker-compose upコマンド実行後に以下のいずれかへアクセス（どれもおおよそ同じ意味）&lt;br&gt;
http://localhost/&lt;br&gt;
http://0.0.0.0/&lt;br&gt;
http://127.0.0.1&lt;br&gt;&lt;br&gt;

また&lt;br&gt;
http://127.0.0.1/docs&lt;br&gt;
で作成したAPIのドキュメント確認すことが可能(FastAPIの機能)&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;デバッグをおこなう&lt;/h2&gt;
&lt;hr /&gt;

&lt;h3&gt;debug-docker-compose.yml&lt;/h3&gt;

&lt;pre class=&quot;brush:xml&quot;&gt;
version: &#39;3&#39;
services:
  python3:
    ports:
      - 80:80
      - &quot;5678:5678&quot;
    restart: always
    build: .
    container_name: &#39;python3&#39;
    # tty: true
    volumes:
      - ./app:/code/app
    command:
        [
          &quot;python3&quot;,
          
          &quot;-m&quot;, &quot;debugpy&quot;,
          &quot;--listen&quot;, &quot;0.0.0.0:5678&quot;,
          
          &quot;-m&quot;,
          &quot;uvicorn&quot;,
          &quot;app.main:app&quot;,
          &quot;--reload&quot;,
          &quot;--host&quot;, &quot;0.0.0.0&quot;,
          &quot;--port&quot;, &quot;80&quot;
        ]
&lt;/pre&gt;
&lt;br&gt;
通常のdocker-composeファイルとの違いはportと起動コマンドのみ。&lt;br&gt;&lt;br&gt;

&lt;h3&gt;launch.json&lt;/h3&gt;
&lt;br&gt;
Visual Studio CodeのRUN AND DEBUGから&lt;br&gt;
&lt;i&gt;create a launch.json&lt;br&gt;
→ Python Debugger&lt;br&gt;
→ Remote Attach&lt;br&gt;
→ localhost&lt;br&gt;
→ 5678&lt;br&gt;&lt;/i&gt;
&lt;br&gt;&lt;br&gt;
以下のファイルが作成される。&lt;br&gt;
&lt;br&gt;
&lt;pre class=&quot;brush:js&quot;&gt;
{
    &quot;version&quot;: &quot;0.2.0&quot;,
    &quot;configurations&quot;: [
        {
            &quot;name&quot;: &quot;Python Debugger: Remote Attach&quot;,
            &quot;type&quot;: &quot;debugpy&quot;,
            &quot;request&quot;: &quot;attach&quot;,
            &quot;connect&quot;: {
                &quot;host&quot;: &quot;localhost&quot;,
                &quot;port&quot;: 5678
            },
            &quot;pathMappings&quot;: [
                {
                    &quot;localRoot&quot;: &quot;${workspaceFolder}&quot;,
                    &quot;remoteRoot&quot;: &quot;.&quot;
                }
            ]
        }
    ]
}
&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;
ブレークポイントを貼った状態でF5でデバッグ実行をおこなうと、該当の処理を実行するときに一時停止して変数等を確認できるようになる。
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;https://fastapi.tiangolo.com/ja/deployment/docker/&quot; target=&quot;_blank&quot;&gt;https://fastapi.tiangolo.com/ja/deployment/docker/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://qiita.com/yagrush/items/e46ab11b22495cd2c0a0&quot; target=&quot;_blank&quot;&gt;https://qiita.com/yagrush/items/e46ab11b22495cd2c0a0&lt;/a&gt;

&lt;br&gt;&lt;br&gt;</description><link>http://trueman-developer.blogspot.com/2024/04/fastapidocker.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-4798977424128779640</guid><pubDate>Sat, 13 Jan 2024 09:37:00 +0000</pubDate><atom:updated>2024-01-13T21:47:31.436+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>GPTStoreがオープンされたとのことで自作GPTsを公開してみる</title><description>少し出遅れてしまった。&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;TRPG 立ち絵メーカーVer0.1
&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://chat.openai.com/g/g-QlFMYSXet-trpg-li-tihui-mekaver0-1&quot; target=&quot;_blank&quot;&gt;https://chat.openai.com/g/g-QlFMYSXet-trpg-li-tihui-mekaver0-1&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
オリジナルのGPTの作成方法については以下&lt;br&gt;
&lt;a href=&quot;https://trueman-developer.blogspot.com/2023/12/gpt-builderchatgptgpts.html&quot; target=&quot;_blank&quot;&gt;https://trueman-developer.blogspot.com/2023/12/gpt-builderchatgptgpts.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;TRPG 立ち絵メーカーVer0.1の利用例、利用方法
&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

タイトルの通り立ち絵を作成してくれるGPTsになっている。&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht3TdCqfCRRuPXORzAaCdY2ysoJjgilQHP8Lb9FufEqo179OObMWWI3EOm7XZ8wkkUCTfEkrB0XUpou69XEZRplJ7wqYWG5HhbL-vtkhq8vGA0LcRglHIF-xESzyxpN-ssJk3Gfw0cdx5lIpishYrCUM359_L3fmGvRaGcKmX4blmtl4a5PkdsF8_EhS-a/s791/1.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;RPG 立ち絵メーカーVer0.1&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;662&quot; data-original-width=&quot;791&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht3TdCqfCRRuPXORzAaCdY2ysoJjgilQHP8Lb9FufEqo179OObMWWI3EOm7XZ8wkkUCTfEkrB0XUpou69XEZRplJ7wqYWG5HhbL-vtkhq8vGA0LcRglHIF-xESzyxpN-ssJk3Gfw0cdx5lIpishYrCUM359_L3fmGvRaGcKmX4blmtl4a5PkdsF8_EhS-a/s400/1.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
選択肢から始めることでジャンルやテーマ、雰囲気、出力する&lt;br&gt;
できれば最初にGPT側からプッシュするような（何かしら案内を出すような）仕組みにしたいが現状はできない。&lt;br&gt;&lt;br&gt;

&lt;h3&gt;ファンタジーのキャラクターを作成する1 &lt;/h3&gt;

&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;TRPGのジャンルと雰囲気について。&lt;/li&gt;
&lt;li&gt;キャラクターの種族と髪の色を定義しましょう。&lt;/li&gt;
&lt;li&gt;キャラクターの役割と背景について。&lt;/li&gt;
&lt;li&gt;キャラクターの特徴について。&lt;/li&gt;
&lt;/ul&gt;

最初の選択肢は意図して質問文の形式にしないようにしている。&lt;br&gt;
このように記述することでChatGPT側から提案してくれるようになり、また利用者が選択肢から始められることを意図している。&lt;br&gt;
これならどこから手をつけていいかわからない人でもとっかかりになる。&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
キャラクターの種族と髪の色を定義しましょう。
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
了解しました。TRPGのキャラクターを作成する際には、種族と髪の色が重要な要素ですね。まず、いくつかの選択肢を提示しますので、それに基づいてお好きな組み合わせを選んでください。&lt;br&gt;
&lt;br&gt;
種族の選択肢：&lt;br&gt;
&lt;br&gt;
人間：多様性があり、どんな世界観にも馴染みやすい。&lt;br&gt;
エルフ：長寿で、優美な外見を持ち、しばしば自然と強い結びつきを持つ。&lt;br&gt;
ドワーフ：頑丈で、山岳地帯や地下世界に住むことが多い。&lt;br&gt;
ハーフリング：小柄で陽気、運が良く、隠密行動に長けている。&lt;br&gt;
オーク：力強く、野生的な雰囲気を持ち、戦士に向いている。&lt;br&gt;
ドラゴンボーン：竜の特徴を持ち、威厳があり、力強い。&lt;br&gt;
ティーフリング：悪魔の血を引き、ユニークな外見と魔法的な才能を持つ。&lt;br&gt;
髪の色の選択肢：&lt;br&gt;
&lt;br&gt;
黒：神秘的で強い印象を与える。&lt;br&gt;
白：純粋または超自然的な雰囲気を醸し出す。&lt;br&gt;
赤：情熱的または獰猛な性格を象徴。&lt;br&gt;
金：高貴または太陽のような魅力を持つ。&lt;br&gt;
青：冷静かつ知的、または魔法的な特徴を持つ。&lt;br&gt;
緑：自然との結びつきや、生命力を示唆。&lt;br&gt;
多色：奇抜でユニークな個性を表現。&lt;br&gt;
どの種族と髪の色の組み合わせが、お考えのキャラクターに最も合うと思われますか？&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVwVqri_wmtn6XrwoeGqwBWoSTZ8ll92lwTDfPSDFqNEX2k8vVP4_QRyH1KIfZK7dr8sPVf8MkMRyGKcLgZElWp76oprG7Wh7Flnx_lEhk8ch3brzCg9ajJir6dyzyhcUpD6KLf2X2g2g3T6Qb1blqifWS1PBJFO4yiOPNf3FiI3GeE_T46ep8csr2PtM5/s764/3.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;キャラクターの種族と髪の色を定義しましょう&quot; border=&quot;0&quot; height=&quot;320&quot; data-original-height=&quot;764&quot; data-original-width=&quot;715&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVwVqri_wmtn6XrwoeGqwBWoSTZ8ll92lwTDfPSDFqNEX2k8vVP4_QRyH1KIfZK7dr8sPVf8MkMRyGKcLgZElWp76oprG7Wh7Flnx_lEhk8ch3brzCg9ajJir6dyzyhcUpD6KLf2X2g2g3T6Qb1blqifWS1PBJFO4yiOPNf3FiI3GeE_T46ep8csr2PtM5/s320/3.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
種族はドラゴンボーンが良いです。髪の色は燃えるような赤色で性別は女性が良いです
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
 素晴らしい選択です！ドラゴンボーンの女性キャラクターで、髪の色は燃えるような赤色ということですね。ドラゴンボーンは竜の特徴を持つ種族で、威厳と力強さを象徴しています。燃えるような赤い髪は情熱的で、そのキャラクターの強い意志や勇敢さを表現するでしょう。&lt;br&gt;
&lt;br&gt;
次に、このキャラクターの役割や背景について考えてみましょう。例えば、彼女は戦士、魔法使い、盗賊、または何か他の役割を担っていますか？また、彼女の性格や背景について特に重要な要素はありますか？これらの詳細を教えていただければ、より具体的なキャラクター像を形成することができます。&lt;br&gt;
&lt;/div&gt;


&lt;div class=&quot;space&quot;&gt;
戦士で大きな斧を持っています
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
理解しました。ドラゴンボーンの女性戦士で、彼女の武器は大きな斧ですね。このキャラクターは、竜の血を引く強力な戦士としての存在感があります。燃えるような赤い髪は、彼女の情熱的で勇敢な性格を強調し、大きな斧はその力強さと戦闘スキルを象徴しています。&lt;br&gt;
&lt;br&gt;
次に、彼女の装備や服装について考えてみましょう。戦士としての彼女はどのような鎧を着ていますか？また、彼女の外見に特徴的なアクセサリーや細部はありますか？例えば、竜のスケールを模した鎧、特定の紋章や装飾などが考えられます。&lt;br&gt;
&lt;br&gt;
この情報をもとに、キャラクターの詳細なイメージをさらに深めていきましょう。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_yssuBCCykSpsgjrEi3ow7gIqSdeSwx5ejjT6Br8hNUM7k2Djdzo3WnePhZWwfkrjXy3z_gt-Zrwavsj-wJvC5QMKJ5kukjJ283JZhDMHawieFo80PKjlo-xevC9ejdMpBiAyJ9JW7ZcbrEkrhu__QI5pISTKl5b8UT2UKmHRexzKaX64EVIRpSLEF0g-/s741/4.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;種族はドラゴンボーンが良いです。髪の色は燃えるような赤色で性別は女性が良いです。戦士で大きな斧を持っています&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;741&quot; data-original-width=&quot;611&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_yssuBCCykSpsgjrEi3ow7gIqSdeSwx5ejjT6Br8hNUM7k2Djdzo3WnePhZWwfkrjXy3z_gt-Zrwavsj-wJvC5QMKJ5kukjJ283JZhDMHawieFo80PKjlo-xevC9ejdMpBiAyJ9JW7ZcbrEkrhu__QI5pISTKl5b8UT2UKmHRexzKaX64EVIRpSLEF0g-/s400/4.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;


&lt;div class=&quot;space&quot;&gt;
全身を覆う黒い鎧を着ています
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
  素晴らしいです。ドラゴンボーンの女性戦士が、全身を覆う黒い鎧を着用しているイメージが浮かびます。この鎧は彼女の力強い身体と戦闘スキルを強調し、燃えるような赤い髪とのコントラストが彼女の印象的な外見を際立たせます。&lt;br&gt;
&lt;br&gt;
さらに、この鎧には竜のスケールのような模様が施されているかもしれません。また、彼女が戦闘中に身につけるかもしれないアクセサリーや装飾品、例えば鎧に組み込まれた特殊な紋章や、腰にぶら下がる装飾的な布などが彼女の背景や所属を示唆している可能性があります。&lt;br&gt;
&lt;br&gt;
このキャラクターに関して、他に特に描きたい要素や詳細はありますか？たとえば、彼女の性格の特徴や、特定のポーズなどです。それらの情報を追加して、キャラクターのイメージを完全なものにしましょう。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2x-p0OgdCOuzfn71u3CarJvPAp3ZudUOUF1oTpgFrvLlVgZMmheQv8jRnQ-_if4buxK2KrhptiKB6qaqJAlOHmi-I15dWpLZyLg_hQCO2iqdr0LlxtlCgIke3VI6dF7LsazEOlTqI-rsDc82y1QsIJgWjC_DbOBxUEaCzyzuPNYL4jC-0JgNvc2eQncUt/s693/5.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;全身を覆う黒い鎧を着ています&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;544&quot; data-original-width=&quot;693&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2x-p0OgdCOuzfn71u3CarJvPAp3ZudUOUF1oTpgFrvLlVgZMmheQv8jRnQ-_if4buxK2KrhptiKB6qaqJAlOHmi-I15dWpLZyLg_hQCO2iqdr0LlxtlCgIke3VI6dF7LsazEOlTqI-rsDc82y1QsIJgWjC_DbOBxUEaCzyzuPNYL4jC-0JgNvc2eQncUt/s400/5.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4APRrzrCiXvke6eaihNw9LaEkEK1Yicryj-v1wbJNwhBomDeXsWQReeFDYb-PPUw95246K8NamWPQgArYPXAovQ0T1rWRiGc00nsdRTr_6GQwpQ3OpBMQXH_FgFwGo14_okB_3yuxJ_CWRl5A1RoMaJWjICdvaX_zCqZ7QsbsW59CeGGDT7FxzrVfN0CV/s1000/dragon.jpg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;ドラゴンボーンの戦士（女性）&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;571&quot; data-original-width=&quot;1000&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4APRrzrCiXvke6eaihNw9LaEkEK1Yicryj-v1wbJNwhBomDeXsWQReeFDYb-PPUw95246K8NamWPQgArYPXAovQ0T1rWRiGc00nsdRTr_6GQwpQ3OpBMQXH_FgFwGo14_okB_3yuxJ_CWRl5A1RoMaJWjICdvaX_zCqZ7QsbsW59CeGGDT7FxzrVfN0CV/s400/dragon.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br&gt;
ドラゴンボーンと所謂日本アニメスタイルの画風の組み合わせがあまりよくなかったかもしれない。&lt;br&gt;&lt;br&gt;&lt;br&gt;


&lt;h3&gt;ファンタジーのキャラクターを作成する2&lt;/h3&gt;
最初の選択肢を変えて立ち絵を作成してみる。

&lt;div class=&quot;space&quot;&gt;
  TRPGのジャンルと雰囲気について。
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
  TRPG（テーブルトークRPG）のジャンルと雰囲気は、実に多彩で、各ゲームごとに独自の世界観やスタイルを持っています。代表的なジャンルと雰囲気には以下のようなものがあります：
&lt;br&gt;&lt;br&gt;
ファンタジー：魔法やドラゴン、エルフやドワーフなどの神話的な要素が特徴。代表的なゲームには「ダンジョンズ&amp;ドラゴンズ」があります。雰囲気は、壮大な冒険、魔法の謎、古代の伝説などが中心。
&lt;br&gt;&lt;br&gt;
サイエンスフィクション：未来的な技術や宇宙旅行、異星人の文明などがテーマ。ゲームによってはサイバーパンクや宇宙オペラのようなサブジャンルもあります。
&lt;br&gt;&lt;br&gt;
ホラー：怖い雰囲気や恐怖を楽しむジャンル。クトゥルフ神話を題材にした「クトゥルフの呼び声」などが有名です。不気味な謎解き、心理的な恐怖が特徴です。
&lt;br&gt;&lt;br&gt;
現代：現実世界を舞台にしたゲーム。日常的な環境だけど、そこに特別な要素が加わることが多いです。
&lt;br&gt;&lt;br&gt;
歴史的：特定の歴史的時代を舞台にしたゲーム。歴史的な出来事や実際の地域、文化を取り入れます。
&lt;br&gt;&lt;br&gt;
ミステリー：謎解きや探偵物が中心。複雑な謎や犯罪の解明がゲームの鍵を握ります。
&lt;br&gt;&lt;br&gt;
それぞれのジャンルには独自の雰囲気があり、プレイヤーはその世界観に没入することで、リアルな体験を楽しむことができます。キャラクター作成時には、そのジャンルや雰囲気に合わせて、外見やバックストーリーを考えることが重要です。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7HJfkGgw2JIXc3wyg6haFHF0SN9ZdiZY53BhQhlhBJbCKuNMMHRvktVQHBrRW3YACvcp_Dr0xNAlJtrz5FNdvncf_x2rtD9Okdm7OCo18ZofZXxHz5VAVSha3fjxry5_0AJJItPSdGQAdgzeD7lnK8fxBsIwhQroku8k1eUOAlM-ftXW-enK6xuqmxRB6/s720/6.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;  TRPGのジャンルと雰囲気について。&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;720&quot; data-original-width=&quot;684&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7HJfkGgw2JIXc3wyg6haFHF0SN9ZdiZY53BhQhlhBJbCKuNMMHRvktVQHBrRW3YACvcp_Dr0xNAlJtrz5FNdvncf_x2rtD9Okdm7OCo18ZofZXxHz5VAVSha3fjxry5_0AJJItPSdGQAdgzeD7lnK8fxBsIwhQroku8k1eUOAlM-ftXW-enK6xuqmxRB6/s400/6.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR66ZG74NHRcPoWe0dJAgJEl2JpCukVMqqMsfL1SLioVusJW0k3tuqFGQQ0nviZHWdDYdgdbk-NcQyizyJP-Sm5o9P9LP14d4C8ayeSVarqyhvLJCWzlYkmy5G4H8G7HklA3581EFTWnWcdpQ2SiYJtXFwS4K2hsHxCg2WF0j_OMg0XKa3Zg2GIhJaYPaB/s689/7.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;ファンタジーが良いです&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;643&quot; data-original-width=&quot;689&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR66ZG74NHRcPoWe0dJAgJEl2JpCukVMqqMsfL1SLioVusJW0k3tuqFGQQ0nviZHWdDYdgdbk-NcQyizyJP-Sm5o9P9LP14d4C8ayeSVarqyhvLJCWzlYkmy5G4H8G7HklA3581EFTWnWcdpQ2SiYJtXFwS4K2hsHxCg2WF0j_OMg0XKa3Zg2GIhJaYPaB/s400/7.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;


&lt;div class=&quot;space&quot;&gt;
  スケルトンがいいです。&lt;br&gt;
赤いマフラーをしていてかっこいい雰囲気がいいです。&lt;br&gt;
バックストーリーは「かつての英雄が長い時を経て黄泉返った」です。&lt;br&gt;
武器は剣が良いです。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
  素晴らしいキャラクターコンセプトですね。スケルトンで、赤いマフラーを巻き、かつての英雄が黄泉返ったというバックストーリーを持つキャラクターですね。この設定をもとに、さらにキャラクターを具体化してみましょう：&lt;br&gt;
&lt;br&gt;
外見：&lt;br&gt;

　スケルトン：骨の姿をしており、謎めいた雰囲気を持ちます。&lt;br&gt;
　赤いマフラー：鮮やかな赤色のマフラーが、冷たい骨の姿に対照的な暖かさとスタイルを加えます。&lt;br&gt;
　装飾品：古代の装飾品や紋章があしらわれた装具を身につけていることで、かつての英雄であったことを暗示します。&lt;br&gt;
武器：&lt;br&gt;

　剣：長く、威厳のある剣を持っています。剣は彼の戦士としての過去とスキルを象徴しています。デザインは古代や伝説的なスタイルで、彼の長い歴史を表現します。&lt;br&gt;
バックストーリー：&lt;br&gt;

　かつては大英雄であり、多くの戦いで勝利を収めたが、時が経過するにつれて忘れ去られていきました。&lt;br&gt;
　長い時を経て、何らかの魔法や呪いによりスケルトンとして黄泉返りしました。彼の目的は、自らの遺産を取り戻すこと、あるいは未完成の使命を果たすことかもしれません。&lt;br&gt;
性格と特徴：&lt;br&gt;

　冷静で寡黙だが、戦いの際には冷酷なほどの決断力を見せます。&lt;br&gt;
　かつての英雄としての誇りを持ちつつも、現在はその過去を隠しているかもしれません。&lt;br&gt;
このキャラクターは、ファンタジーTRPGの世界で非常に印象的な存在になるでしょう。彼の過去の英雄譚と現在のスケルトンとしての生を絡めた物語は、ゲームプレイ中に多くの興味深いシナリオを生み出す可能性があります。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_HldBos3RG4HwGFzKaBQ4cfPk5P7-ggdPLEawxk38m_49eLVsjw5qGUqKOObiuCEXPsJhbDvaVn9IHby94K3BYy1TRRiFgAd4I2Hv-kPOU8O6xXYIzkCRHG7nGyopGlGgTZSnLW_uaMgCxKQwqfLVog9zvsriOKaSvt8Zt_YfNgMNnXsWsp3IcC0V3kDY/s1024/A%20skeletal%20warrior.jpg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_HldBos3RG4HwGFzKaBQ4cfPk5P7-ggdPLEawxk38m_49eLVsjw5qGUqKOObiuCEXPsJhbDvaVn9IHby94K3BYy1TRRiFgAd4I2Hv-kPOU8O6xXYIzkCRHG7nGyopGlGgTZSnLW_uaMgCxKQwqfLVog9zvsriOKaSvt8Zt_YfNgMNnXsWsp3IcC0V3kDY/s600/A%20skeletal%20warrior.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

これよくない！？かっこ良くない！！！&lt;br&gt;
それはそれとして結局のところプロンプトが大事になってくるがそれっぽいものは完成した。&lt;br&gt;
使い勝手も案外悪くない。&lt;br&gt;

&lt;br&gt;&lt;br&gt;&lt;br&gt;
&lt;h3&gt;クトゥルフをテーマにのキャラクターを作成する&lt;/h3&gt;
少し変わり種のパターン。&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
  ジャンルはクトゥルフが良いです。
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
  クトゥルフ神話をベースにしたTRPGは、ホラーと不思議な雰囲気が混じり合った独特の世界観を持っています。このジャンルでは、以下のような要素が特徴的です：&lt;br&gt;
&lt;br&gt;
古代の秘密と禁断の知識: プレイヤーはしばしば古代の文書や忘れられた言語を解読し、知られざる真実に近づいていきます。&lt;br&gt;
不気味な生物と神話上の存在: クトゥルフ神話の怪物や異次元の存在が頻繁に登場します。&lt;br&gt;
心理的な恐怖と狂気: キャラクターは不可解な出来事や恐怖に直面し、精神的な負担を経験します。&lt;br&gt;
1920年代の背景: 多くのクトゥルフTRPGは1920年代が舞台ですが、他の時代設定も可能です。&lt;br&gt;
このジャンルに合わせて、キャラクターの設定を考えてみましょう。たとえば、キャラクターは探偵、学者、ジャーナリスト、または博物館のキュレーターなど、神秘的な事件を解明する立場にいることが多いです。特に重要なのは、キャラクターがどのようにして神秘的な現象やクトゥルフ神話の世界に関わることになったのか、という背景です。&lt;br&gt;
&lt;br&gt;
キャラクターの外見や個性についても考えてみましょう。彼らの服装、髪型、特徴的なアイテム（例えば古い本、拡大鏡、記録ノートなど）が重要です。また、彼らが持つ特別な能力やスキル、そして彼らの精神的な強さや弱さも考慮に入れるとよいでしょう。&lt;br&gt;
&lt;br&gt;
クトゥルフ神話のTRPGキャラクターについて、どのような具体的なアイデアがありますか？&lt;br&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivLYDEgoXW2Tg-7DDTTy6p3VfN4ho3N7Lcw7Zk_aWo_Bc6CFWL3G-iPXKr_WD7dZCnQNbd-QG6CSMPy1WWjPj88165wEosiYl4CsDAR-L5lpVl6ojkIA7U9rW8kH3rFm3B5xEvX3P_m6ecvbr_ahLP-BphdwGCci6PZN9w9rCtFvCYDy5BzQ8oy82jPc7h/s794/8.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;ジャンルはクトゥルフが良いです。&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;794&quot; data-original-width=&quot;681&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivLYDEgoXW2Tg-7DDTTy6p3VfN4ho3N7Lcw7Zk_aWo_Bc6CFWL3G-iPXKr_WD7dZCnQNbd-QG6CSMPy1WWjPj88165wEosiYl4CsDAR-L5lpVl6ojkIA7U9rW8kH3rFm3B5xEvX3P_m6ecvbr_ahLP-BphdwGCci6PZN9w9rCtFvCYDy5BzQ8oy82jPc7h/s400/8.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
  探偵の助手をしている現代的な日本の女子高生が良いです
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
  素晴らしい選択です！現代の日本を舞台にしたクトゥルフ神話TRPGで、探偵の助手を務める女子高生キャラクターを作成するというコンセプトは魅力的です。以下は、このキャラクターの具体的な設定案です：&lt;br&gt;
&lt;br&gt;
キャラクター概要&lt;br&gt;
名前: 例えば「渚 愛美（なぎさ まなみ）」など、現代的な日本の名前。&lt;br&gt;
年齢: 高校生なので、15～18歳の間。&lt;br&gt;
背景: 日常生活の中で不可解な出来事に遭遇し、探偵の助手としての活動を始める。好奇心旺盛で、オカルトや未解決事件に強い関心を持つ。&lt;br&gt;
外見&lt;br&gt;
服装: 学校の制服（ブレザーやセーラー服など）と私服の両方を着こなす。制服は、クトゥルフ神話の不気味な雰囲気に合うように、少し古風なデザインが良いかもしれません。&lt;br&gt;
髪型: 肩までの長さの髪、ポニーテールやボブカットなど、活動的なスタイルが適しています。&lt;br&gt;
アクセサリー: 探偵の助手としての活動に役立つアイテム（例：拡大鏡、ノート、ペン）を持つ。&lt;br&gt;
特徴と能力&lt;br&gt;
特技: 細かい観察力、記憶力、解析能力。オカルト知識や、学校で学んだ科学的な知識を活用する。&lt;br&gt;
性格: 好奇心旺盛、頭の回転が速い、しかし時には無鉄砲。不気味な出来事にも臆することなく立ち向かう勇敢さを持つ。&lt;br&gt;
弱点: 精神的なショックに対する耐性が低い、物理的な力はそれほど強くない。&lt;br&gt;
物語の役割&lt;br&gt;
探偵の指示に従いつつ、時には独自の調査を進める。学校や友人関係を通じて、異常な出来事の情報を入手する。&lt;br&gt;
神秘的な事件を解決する過程で、自身の内面的な成長を遂げる。&lt;br&gt;
このキャラクターについてさらに詳しく、または他のアイデアをお聞かせください。それに基づいて、キャラクターイメージの具体化を進めていきましょう。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
 服装はセーラー服で髪型はボブカットで
&lt;/div&gt;


&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg7ViYnoK9vvUJM6ijso9JD941znAMuqoX-HggCJaHIPrIRmrlQQOhk3TnKyUHZVQE8NSkX53QeW4UdCX_DHC7KxDktimxRIK-thO_8DWrSLhf2rCMoM60rTmlqbuMfypztiqOF2yMOLQFITLdXpcJ23m_djG205W3GrZAnuOBNeMgLTAgj0hjbzDSaNve/s1168/9.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;1168&quot; data-original-width=&quot;697&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg7ViYnoK9vvUJM6ijso9JD941znAMuqoX-HggCJaHIPrIRmrlQQOhk3TnKyUHZVQE8NSkX53QeW4UdCX_DHC7KxDktimxRIK-thO_8DWrSLhf2rCMoM60rTmlqbuMfypztiqOF2yMOLQFITLdXpcJ23m_djG205W3GrZAnuOBNeMgLTAgj0hjbzDSaNve/s400/9.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG_qDj-kLKC9-yoYPnt2SE2tddbJBy7KlX2GOpRDzuHrIQ_XC1fhYikECWlrHt29bTm7QQaXEE6sYIokpGZ__Dn6XVDh7QZNKa0P0pJzOkERjYIycqPP8Az5tuXSgvQwOI85pJHYsNFD-nlSWS7lO09lkSE8ZivYUiopgAF9NXJTbri292i1-T1-IJnSWg/s1024/girl.jpg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;探偵の助手をしている女子高生&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;1024&quot; data-original-width=&quot;1024&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG_qDj-kLKC9-yoYPnt2SE2tddbJBy7KlX2GOpRDzuHrIQ_XC1fhYikECWlrHt29bTm7QQaXEE6sYIokpGZ__Dn6XVDh7QZNKa0P0pJzOkERjYIycqPP8Az5tuXSgvQwOI85pJHYsNFD-nlSWS7lO09lkSE8ZivYUiopgAF9NXJTbri292i1-T1-IJnSWg/s400/girl.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
画像生成の特徴である文字がおかしくなる現象が発生しているが、クトゥルフならむしろ世界観に沿っている気がする。&lt;br&gt;

&lt;br&gt;&lt;br&gt;
出力される画風は日本アニメ風をベースにしているがDALL-Eはざっくりした指定だと所謂マスピ顔になってしまうので少しだけ命令文に手を加えている。&lt;br&gt;

&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;不満点
&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;h3&gt;GPTsの取り消しとバージョン管理ができない？&lt;/h3&gt;
&lt;br&gt;
編集はできるが元に戻せないので前のが良かったので戻せないといったことができない。&lt;br&gt;
トライアル＆エラーができるようになってほしいところ。一応ConfigureタブのInstructionsを控えておけば良さそうだが...&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;意図した指示通り動かない場合がある&lt;/h3&gt;
&lt;br&gt;
一部指示を無視してしまうケースがあり意図しない出力になる。途中で出力が英語になったりなど。&lt;br&gt;
改善が難しい。&lt;br&gt;
&lt;br&gt;

&lt;h3&gt;カスタマイズしたGPTは今のところリンクを共有できない？&lt;/h3&gt;
通常であれば質疑応答の結果を共有することができるが共有リンクを作成しようとするとエラーになってしまう。&lt;br&gt;
正確には画像が共有できないのかも？&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;h3&gt;利用方法を案内するような機能が存在しない&lt;/h3&gt;
今のところタイトルとDescriptionと4つの選択肢のみ。&lt;br&gt;
せめてDescriptionが改行できるようになっていると多少マシになるのだが。&lt;br&gt;

&lt;br&gt;&lt;br&gt;
自作GPTsの利用頻度に応じて利益を分配する所謂レベニューシェアを予定しているらしいので小遣い稼ぎができたりするかもしれない。&lt;br&gt;
某SNSのように粗製濫造されて優良なGPTが探せなくなる懸念もそれなりにある。&lt;br&gt;
&lt;br&gt;&lt;br&gt;
</description><link>http://trueman-developer.blogspot.com/2024/01/gptstoregpts.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht3TdCqfCRRuPXORzAaCdY2ysoJjgilQHP8Lb9FufEqo179OObMWWI3EOm7XZ8wkkUCTfEkrB0XUpou69XEZRplJ7wqYWG5HhbL-vtkhq8vGA0LcRglHIF-xESzyxpN-ssJk3Gfw0cdx5lIpishYrCUM359_L3fmGvRaGcKmX4blmtl4a5PkdsF8_EhS-a/s72-c/1.jpeg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-8316098218834149290</guid><pubDate>Sun, 31 Dec 2023 09:57:00 +0000</pubDate><atom:updated>2023-12-31T18:57:34.397+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>GPT Builderを使用してカスタマイズしたChatGPT(GPTs)を作成する</title><description>想定通りのものを作るのはなかなか難しい。手順書等を作成するのは結構難しいかもしれない。&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;GPTs作成手順&lt;/h2&gt;
&lt;hr /&gt;

探索する → Create a GPTより
&lt;a href=&quot;https://chat.openai.com/gpts/editor&quot; target=&quot;_blank&quot;&gt;https://chat.openai.com/gpts/editor&lt;/a&gt;
&lt;br&gt;
CreateとConfigureの2つのタブが表示されてGPTsを作成できる。&lt;br&gt;
作成したGPTsは右側のプレビューですぐに試すことが可能。&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOIWfZl6Ui7Z855wRHXp6Ry5jO7ywENopEeYQ5aKOqn_hfuvLdfEit2Xo9WpttM7aO_FK0IhNu0gSkq-LO5L8zzrTKTmxKZUQUmLc8aGWwslcWUxA0LDOBbKgGD94HTOzW1LUTCeGd9-cI_94mMc-wC0jJzdPbp6GjN6bzRUaI76sdemYrk8X33beojNR-/s1218/0.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;GPT Builder&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;959&quot; data-original-width=&quot;1218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOIWfZl6Ui7Z855wRHXp6Ry5jO7ywENopEeYQ5aKOqn_hfuvLdfEit2Xo9WpttM7aO_FK0IhNu0gSkq-LO5L8zzrTKTmxKZUQUmLc8aGWwslcWUxA0LDOBbKgGD94HTOzW1LUTCeGd9-cI_94mMc-wC0jJzdPbp6GjN6bzRUaI76sdemYrk8X33beojNR-/s400/0.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

&lt;h3&gt;Createについて&lt;/h3&gt;
対話形式でどのようなGPTsを作成するかを設定していく。&lt;br&gt;
対話内容を元にConfigureに設定が追加される。&lt;br&gt;
&lt;br&gt;
「まず何を作りたいですか？」といった質問をされるので作成したいGPTsの概要を入力する。&lt;br&gt;
質問は常に英語のようだが回答は日本語で良い。&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
「日本語でGPTsの作成をサポートするようなものを作成したいです」
&lt;/div&gt;
&lt;br&gt;
GPTsの名前を提示される。変更するかどうかを解答する。&lt;br&gt;
次にアイコンが自動生成される。こちらも気に入ったか否か。変更する場合どういった風にするのかを回答する。&lt;br&gt;
&lt;br&gt;
一問一答というわけでもないらしく一気にいろいろと設定される場合もある。&lt;br&gt;
細かく調整したい場合は質問文に対して回答していくといいようだ。&lt;br&gt;
&lt;br&gt;
「To start, what specific tasks or types of questions do you expect this GPT to handle? This will help in defining its role and goals more precisely.
」&lt;br&gt;
（まずこのGPTで処理できるタスクについて教えてください）&lt;br&gt;
&lt;br&gt;
「Next, how would you like this GPT to interact with users? Should it be formal or informal? Would you prefer it to be straightforward or more conversational? This will help tailor its communication style to your preferences.」&lt;br&gt;
（どのように振る舞うか？単純明快な方がいいか。会話的な方がいいか）&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
ある程度質問に答えると「GPTsが完成したので右側のプレビューから動作確認して改良点や変更点を追記してください」といった文章が返ってきて動作を検証できる。&lt;br&gt;

&lt;br&gt;&lt;br&gt;
&lt;h3&gt;Configureについて&lt;/h3&gt;
&lt;br&gt;
GPTsの設定について記述する。&lt;br&gt;
&lt;br&gt;
アイコン：アイコンの指定(アップロードする他にDALL-Eを使用して作成することもできる)&lt;br&gt;
&lt;b&gt;Name&lt;/b&gt;：GPTsの名前&lt;br&gt;
&lt;b&gt;Description&lt;/b&gt;：作成したGPTsについての概要&lt;br&gt;
&lt;b&gt;Instructions&lt;/b&gt;：作成したGPTsについての説明。今のところ表示されない？&lt;br&gt;
&lt;b&gt;Conversation starters&lt;/b&gt;：入力例。数に制限はないが上位4つしか表示されない？&lt;br&gt;
&lt;b&gt;Knowledge&lt;/b&gt;：参照するファイル。アップロードしたファイルを解答時に参照するようになる。&lt;br&gt;
&lt;b&gt;Capabilities&lt;/b&gt;：利用する機能。Web Browsing（ウェブ）DALL·E（画像生成）Code Interpreter（コード実行）&lt;br&gt;
&lt;b&gt;Actions&lt;/b&gt;：外部APIと連携する&lt;br&gt;&lt;br&gt;

&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgijNYtXR39mgM426KTEy4rhlmMUMd2t6JvxiZXZaPuaUKyaLLwQd6Cwt8Yl4m7ZhiMbQjPRl091RCCzXXF-MlNPUhprhScf2NTYjnXaD5YKUAI5xEijEnyGsG8s9TvQuZXZ8M0mQP-Pg0laWNkITjz56DdrYifoGAi5warSvMroGcXKAphuc-fpBzpGO9v/s1432/2.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;GPT Builder Configure&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;959&quot; data-original-width=&quot;1432&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgijNYtXR39mgM426KTEy4rhlmMUMd2t6JvxiZXZaPuaUKyaLLwQd6Cwt8Yl4m7ZhiMbQjPRl091RCCzXXF-MlNPUhprhScf2NTYjnXaD5YKUAI5xEijEnyGsG8s9TvQuZXZ8M0mQP-Pg0laWNkITjz56DdrYifoGAi5warSvMroGcXKAphuc-fpBzpGO9v/s400/2.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
作成した後は右上の保存から公開範囲を設定できる&lt;br&gt;
・個人&lt;br&gt;
・リンクを知っている人だけ&lt;br&gt;
・公開&lt;br&gt;
&lt;br&gt;
作成したGPTsを削除したい場合は保存ボタン左のメニューから&lt;br&gt;
&lt;br&gt;
以上でオリジナルのChatGPTが作成され利用できるようになる。
&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjbp2p7HntFcvDrZXCnad3CPb43SiaQfwzy1rjIYi2vS_95-iH0hHMAiciCE3JH7pfWs4P_WB1_ChAf0IqXLfhGrErYjB4mX5J6NqtXmmNc6-ZKPP4KHpEGYlZFmj6SM30OnVrrPdKFqzPK5XI2M7Aa52JIio8qPRUzlvakC6fbEy_o5C-F4tug6MJ3tLq/s863/1.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;GPTs&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;863&quot; data-original-width=&quot;795&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjbp2p7HntFcvDrZXCnad3CPb43SiaQfwzy1rjIYi2vS_95-iH0hHMAiciCE3JH7pfWs4P_WB1_ChAf0IqXLfhGrErYjB4mX5J6NqtXmmNc6-ZKPP4KHpEGYlZFmj6SM30OnVrrPdKFqzPK5XI2M7Aa52JIio8qPRUzlvakC6fbEy_o5C-F4tug6MJ3tLq/s400/1.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;a href=&quot;https://zenn.dev/umi_mori/articles/gpt-builder-how-to-start&quot; target=&quot;_blank&quot;&gt;https://zenn.dev/umi_mori/articles/gpt-builder-how-to-start&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;</description><link>http://trueman-developer.blogspot.com/2023/12/gpt-builderchatgptgpts.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOIWfZl6Ui7Z855wRHXp6Ry5jO7ywENopEeYQ5aKOqn_hfuvLdfEit2Xo9WpttM7aO_FK0IhNu0gSkq-LO5L8zzrTKTmxKZUQUmLc8aGWwslcWUxA0LDOBbKgGD94HTOzW1LUTCeGd9-cI_94mMc-wC0jJzdPbp6GjN6bzRUaI76sdemYrk8X33beojNR-/s72-c/0.jpeg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-4714813364388872978</guid><pubDate>Sat, 30 Dec 2023 14:23:00 +0000</pubDate><atom:updated>2023-12-30T23:23:28.645+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>ChatGPT Plusに課金することで何ができるようになるか</title><description>2023/12/30時点&lt;br&gt;
アップデート速度が早すぎて何ができるのか完全には網羅できない。&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;概要&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
無償版のChatGPT3.5と比較して以下のような特徴がある。

&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;性能の向上&lt;/li&gt;
&lt;li&gt;制限がある（現状30Message/3時間）&lt;/li&gt;
&lt;li&gt;画像生成機能が使える&lt;/li&gt;
&lt;li&gt;ファイルをアップロードしてデータ分析が可能&lt;/li&gt;
&lt;li&gt;画像が入力可能&lt;/li&gt;
&lt;li&gt;ウェブの情報にアクセスすることができる&lt;/li&gt;
&lt;li&gt;独自にカスタマイズしたGPTsを作成、利用できる&lt;/li&gt;
&lt;li&gt;他人が作成したGPTsを利用できる&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;ファイルを生成してダウンロード&lt;/h2&gt;
&lt;hr /&gt;

&lt;div class=&quot;space&quot;&gt;
id, 名前, メールアドレス, 住所を持つサンプルデータを20件ほど作成してください。名前と住所は日本語がいいです。
&lt;/div&gt;

&lt;div class=&quot;space&quot;&gt;
上記データを全てをcsv形式でダウンロード可能ですか？
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHH-6fnyS2xQCXlYDERls5Sfe_2u9u5SK_KKkw2eW-2yZCdAVnLi2-iy1VMSBnqutyZ55HGHq7lEFCFg_ppKP4hSXHZngzg_PaXBwAbIk9-XOvS6RBJhhEY4tCvrkZSFnYCD_-wpfrnL6p4lfLysGYpfqZEZt_EWqlRBvLOodQML5mTmc6nB2Y1MWhMBLE/s798/1.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;798&quot; data-original-width=&quot;644&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHH-6fnyS2xQCXlYDERls5Sfe_2u9u5SK_KKkw2eW-2yZCdAVnLi2-iy1VMSBnqutyZ55HGHq7lEFCFg_ppKP4hSXHZngzg_PaXBwAbIk9-XOvS6RBJhhEY4tCvrkZSFnYCD_-wpfrnL6p4lfLysGYpfqZEZt_EWqlRBvLOodQML5mTmc6nB2Y1MWhMBLE/s400/1.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
データを作成してもらった後にファイル形式を指定して依頼することでダウンロードリンクが作成される。&lt;br&gt;
命令によって裏でPythonを動かしているようだ。恐らく以前のCode Interpreter機能が統合されていると思われる。&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
id, 名前, メールアドレス, 住所を持つサンプルデータをcsv形式で20件ほど作成してください。名前と住所は日本語がいいです。
&lt;/div&gt;
&lt;br&gt;
といった指示だとダウンロードリンクが表示されるが中身は想定したものにはならなかった（名前1、名前2のようなデータ）&lt;br&gt;
処理を分けることで上手くサンプルデータを作成してダウンロードすることができた。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;https://chat.openai.com/ の QRコードを作って&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4WbDo04lLPIUbg9P-vDrn0V8bLZqVqwy6kJIH1DLWAycxW2YL1cTW0TSXxHckBeEOdnBLHDYslO3khfjJMmgO1IE-nYPbH4EmR1c2Xg97_aoHXXzg-CU713jQ3MfiEPpSPQmkrAYCB0n03uml9jFOX-M5W6lFibDpyLVbbTksdxMnye3zDj3BWX2oxtcH/s805/2.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;805&quot; data-original-width=&quot;693&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4WbDo04lLPIUbg9P-vDrn0V8bLZqVqwy6kJIH1DLWAycxW2YL1cTW0TSXxHckBeEOdnBLHDYslO3khfjJMmgO1IE-nYPbH4EmR1c2Xg97_aoHXXzg-CU713jQ3MfiEPpSPQmkrAYCB0n03uml9jFOX-M5W6lFibDpyLVbbTksdxMnye3zDj3BWX2oxtcH/s400/2.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
こちらも内部でPythonが動いている模様。コードも確認できる。
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;ファイルをアップロードしてデータを分析する&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
ChatGPT4では入力欄の左側にファイルアイコンが追加されファイルをアップロードすることができる。&lt;br&gt;
少し古いが自治体から提供されているオープンデータを分析してみる。&lt;br&gt;
&lt;a href=&quot;https://data.e-gov.go.jp/data/ja/dataset/cao_20170710_0010/resource/b50b654f-342a-49f0-a203-df7c248818d9&quot; target=&quot;_blank&quot;&gt;https://data.e-gov.go.jp/data/ja/dataset/cao_20170710_0010/resource/b50b654f-342a-49f0-a203-df7c248818d9&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
平成26年度のデータで47都道府県のうちトップ10の都道府県をグラフにして表示してください。
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFmHSFjYtJkotMd8fZMPCfOYvVa9SyXvlgQcBJzfbUwwbEcvf1Qbd6uPLYRcuB_FfPSBBq2ouoNApSDaQWEZs31k6vu4Z6bBB9fmFfcPAfYtAsJf4af6XlNfWhIL5FESKW39FnHwey1g84BJAhI05SE1awq7-6S-2zIfnMsXJje-c12tbVTShWMhyJgHEc/s766/3.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;766&quot; data-original-width=&quot;674&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFmHSFjYtJkotMd8fZMPCfOYvVa9SyXvlgQcBJzfbUwwbEcvf1Qbd6uPLYRcuB_FfPSBBq2ouoNApSDaQWEZs31k6vu4Z6bBB9fmFfcPAfYtAsJf4af6XlNfWhIL5FESKW39FnHwey1g84BJAhI05SE1awq7-6S-2zIfnMsXJje-c12tbVTShWMhyJgHEc/s400/3.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

例の如く残念なフォーマットのExcelだがきちんと解釈して分析できている。2014年度の名目県内総生産は東京都が抜きん出ていて、大阪府、愛知県、神奈川県...と続いているようだ。&lt;br&gt;
微妙なエクセルデータを整形するといった用途にも利用できるかもしれない。&lt;br&gt;
都道府県名を表示させようとしたら日本語が文字化けになってしまった。恐らくPython側の問題なのでうまく回避する方法もあるかもしれない。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;DALL-Eを使用して画像を生成する&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
正直この機能だけでも20ドル/月の価値はありそうな気がする。&lt;br&gt;&lt;br&gt;
今時点だと『探索する』 → 『DALL-E』から画像生成可能。&lt;br&gt;
恐らく以下から&lt;br&gt;
&lt;a href=&quot;https://chat.openai.com/g/g-2fkFE8rbu-dall-e&quot; target=&quot;_blank&quot;&gt;https://chat.openai.com/g/g-2fkFE8rbu-dall-e&lt;/a&gt;&lt;br&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
月明かりに照らされた花畑にたたずむ少女の画像を生成してください。
日本的なアニメスタイルが良いです。
幻想的で神秘的なそして儚げな雰囲気にしてください。
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEoR0tSmIp6b_oEuG4rXslUVlZDrTG_Gl05djBONhVTcgz5g94ec6bu60X1_7pY5ONAf87jF5tPMS2TS17wz71mrTTIOUOsUuMDdlm4B9XYxjM9L94FEuQsnv07Ow7ULX1Txqts4nDILVLDdMAVhJ-xFWT_scFW1q2wxnJT56tZHfmJjypa_CQyHEfd_S1/s693/4.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;ChatGPT DALL-E&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;561&quot; data-original-width=&quot;693&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEoR0tSmIp6b_oEuG4rXslUVlZDrTG_Gl05djBONhVTcgz5g94ec6bu60X1_7pY5ONAf87jF5tPMS2TS17wz71mrTTIOUOsUuMDdlm4B9XYxjM9L94FEuQsnv07Ow7ULX1Txqts4nDILVLDdMAVhJ-xFWT_scFW1q2wxnJT56tZHfmJjypa_CQyHEfd_S1/s400/4.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
出力される画像のサイズは1024*1024&lt;br&gt;
AI同士解釈しやすいプロンプトに変換してくれるのか、Bing Image Creatorなどで直接プロンプトを指定するよりも良いものが出てきやすい。&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
女の子を和装に変換できますか？
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsEl_q0C9P_S9sTlTO-9AHJlVRu5H_-Me-r24iyxOUQsbBLclgWRGFv6lUydxOKsUwXfOBOn-rgcbKkOyNyIe9l9Ikj2K4ESiFLf2jqzRVGch8GKt-stsdibJ486ij5EWpLpBeVq8Jo-KMJXHbR0pETLY6Xy2ydFUiC3QtgV9bcH_E4iiswXVLk1qtuRmv/s686/5.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;ChatGPT DALL-E&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;528&quot; data-original-width=&quot;686&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsEl_q0C9P_S9sTlTO-9AHJlVRu5H_-Me-r24iyxOUQsbBLclgWRGFv6lUydxOKsUwXfOBOn-rgcbKkOyNyIe9l9Ikj2K4ESiFLf2jqzRVGch8GKt-stsdibJ486ij5EWpLpBeVq8Jo-KMJXHbR0pETLY6Xy2ydFUiC3QtgV9bcH_E4iiswXVLk1qtuRmv/s400/5.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

プロンプトを破綻なく追加で指定できるのも良い。&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdpBIlqfk2Tiwr1IY2AqpV4qFDlkvwi8kDrGE0xWy0TqGdT6gm4pEE0r2C_uwmwmIVCsNKByqfid3V9Gm-RqG0l3GekAq1tJH7Qw5yH0vNwIV26LWYKTGBHFOIuBqaBnACcCv86JSd11ZyZatbhynJ4jxhtRKRzIJg_S5osIYIQJ3MkTsOPBNbIWjEpRHL/s686/6.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;ChatGPT DALL-E&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;551&quot; data-original-width=&quot;686&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdpBIlqfk2Tiwr1IY2AqpV4qFDlkvwi8kDrGE0xWy0TqGdT6gm4pEE0r2C_uwmwmIVCsNKByqfid3V9Gm-RqG0l3GekAq1tJH7Qw5yH0vNwIV26LWYKTGBHFOIuBqaBnACcCv86JSd11ZyZatbhynJ4jxhtRKRzIJg_S5osIYIQJ3MkTsOPBNbIWjEpRHL/s400/6.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
普通なら何度もプロンプトの微修正が必要だが一発でいい感じのものが出てくる。手指も破綻してない。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;カスタマイズしたChatGPTを作成、公開できる&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

非公式だがGPTsを公開しているサイトがある。どのようなことができるかを確認できる（できれば遷移する時は普通のリンクにして欲しかった）&lt;br&gt;
&lt;a href=&quot;https://gptslist.jp/&quot; target=&quot;_blank&quot;&gt;https://gptslist.jp/&lt;/a&gt;&lt;br&gt;

&lt;br&gt;
英語等の学習向けにカスタマイズするのが使い方としては良さそう。&lt;br&gt;
まだ出たばかりというのもあってか魅力的なものは少ない（あるいは見つけられなかった）&lt;br&gt;
&lt;br&gt;
また公式でカスタムしたGPTsを公開できるGPT Storeが近日公開予定らしい。後日いろいろ試してみたい。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description><link>http://trueman-developer.blogspot.com/2023/12/chatgpt-plus.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHH-6fnyS2xQCXlYDERls5Sfe_2u9u5SK_KKkw2eW-2yZCdAVnLi2-iy1VMSBnqutyZ55HGHq7lEFCFg_ppKP4hSXHZngzg_PaXBwAbIk9-XOvS6RBJhhEY4tCvrkZSFnYCD_-wpfrnL6p4lfLysGYpfqZEZt_EWqlRBvLOodQML5mTmc6nB2Y1MWhMBLE/s72-c/1.jpeg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-208567581453999078</guid><pubDate>Fri, 29 Dec 2023 05:31:00 +0000</pubDate><atom:updated>2023-12-29T14:36:33.744+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>Bard Extensionが公開されたのでできることを改めて調べてみる</title><description>Youtube検索したり、Gmail検索したり、Google Docs検索したり。

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;style&gt;
  .separator {
      text-align: center;
  }
  
&lt;/style&gt;
&lt;hr /&gt;
&lt;h2&gt;Bard Extension&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
2023.12.18よりYouTube, Gmail, Google Drive, Google Mapへアクセスして回答することが可能となっている。&lt;br&gt;
&lt;a href=&quot;https://bard.google.com/updates?hl=ja&quot; target=&quot;_blank&quot;&gt;https://bard.google.com/updates?hl=ja&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
@youtube, @gmail, @drive等を使用して各サービスのデータを利用することが可能。&lt;br&gt;
指定しなくても必要に応じて各種サービスへアクセスしてくれる&lt;br&gt;
&lt;br&gt;
利用前に以下から拡張機能をONにする必要がある。&lt;br&gt;
&lt;a href=&quot;https://bard.google.com/extensions&quot; target=&quot;_blank&quot;&gt;https://bard.google.com/extensions&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj11vXXX3MyX8VhT9Wn3irk2luA1ayEvYnI51CP64-_yrBZXd6L90jgu38wZvwcxkK1bdfYwGN25eKvkBckPLEzTGXmt39B104tgBVKg3gFzDCDMdo0LJfaXsnPZmQYcNXLF8eHMRhmRiKCAI1PpLZ7K8ZAw_FcCZQqIKYyh8VIWCq-YRuTjX47HbV6lvD0/s902/cap1.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;Bard Extension&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;795&quot; data-original-width=&quot;902&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj11vXXX3MyX8VhT9Wn3irk2luA1ayEvYnI51CP64-_yrBZXd6L90jgu38wZvwcxkK1bdfYwGN25eKvkBckPLEzTGXmt39B104tgBVKg3gFzDCDMdo0LJfaXsnPZmQYcNXLF8eHMRhmRiKCAI1PpLZ7K8ZAw_FcCZQqIKYyh8VIWCq-YRuTjX47HbV6lvD0/s400/cap1.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

またGoogle Drive等へアクセスする場合はGMailの設定変更も必要。&lt;br&gt;
Gmail → 設定 → 全ての設定を表示&lt;br&gt;
&lt;a href=&quot;https://mail.google.com/mail/u/0/?tab=rm&amp;amp;ogbl#settings/general&quot; target=&quot;_blank&quot;&gt;https://mail.google.com/mail/u/0/?tab=rm&amp;ogbl#settings/general&lt;/a&gt;&lt;br&gt;
「スマート機能のパーソナライズ」と、「他のGoogleサービスのスマート機能とパーソナライズ」にチェック（一番下で変更を保存が必要）&lt;br&gt;
なぜGmailなのかは謎&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhItBruVVJUjeT0PyI5a4Ji_6cGhMoL53Mu1SqTsFWpDqARQxmwLBr4D6ARHUyU1CL7sFtlL4W5W95R8uBo-XRwnkoyya3z7T6QgRZnnaOJP0fILHEfBl3_kofvUyIT2Yb2EN0KRILpN2gRbDOBPB_LBC-hU-678Wd8KMx6ahQRMUTWOECy-xQoaUycNR7U/s1000/cap2.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;スマート機能のパーソナライズ&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;476&quot; data-original-width=&quot;1000&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhItBruVVJUjeT0PyI5a4Ji_6cGhMoL53Mu1SqTsFWpDqARQxmwLBr4D6ARHUyU1CL7sFtlL4W5W95R8uBo-XRwnkoyya3z7T6QgRZnnaOJP0fILHEfBl3_kofvUyIT2Yb2EN0KRILpN2gRbDOBPB_LBC-hU-678Wd8KMx6ahQRMUTWOECy-xQoaUycNR7U/s400/cap2.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;Bard Extensionを利用してGoogle Mapへアクセスする&lt;/h2&gt;
&lt;hr /&gt;

&lt;div class=&quot;space&quot;&gt;
大阪でおすすめのランチを教えてください
&lt;/div&gt;

&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpPXds5X36_4tY0-qS2FwBFnEcPW_-NVDLSwAxMYt24csEWlleCaUGH4Nok_NfU5EEg_l-ShMYJoZtNbfoGSH_XdbgRnakYxOAqkcZkSwM9KozdvKMcPF4cbUDIpQ7hhr2aM6XkENc7m9AF8RRKpTNTgQez3Ey_W1EQ-pGbmJuIxS57Tb5wm0mRa8cwYMV/s935/cap3.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;618&quot; data-original-width=&quot;935&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpPXds5X36_4tY0-qS2FwBFnEcPW_-NVDLSwAxMYt24csEWlleCaUGH4Nok_NfU5EEg_l-ShMYJoZtNbfoGSH_XdbgRnakYxOAqkcZkSwM9KozdvKMcPF4cbUDIpQ7hhr2aM6XkENc7m9AF8RRKpTNTgQez3Ey_W1EQ-pGbmJuIxS57Tb5wm0mRa8cwYMV/s400/cap3.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPFvh1xZ_Hi4jfYXJUs1tbC9i5ng_fAcEcAJo_JrgDhxfMoVwHis-rz2ZE5QNXbt_ZiG2LtO698_CgPPgpRtAZMX_p3ZJudtI0GfSAGGLDrasW7WohFo1IUqWI_JMfY4XE-InWWoxYqr-gjvvEEXFIneuq7SoOqibTl7Ete9GNqXBvUXS11r6FHleFSPI-/s800/cap4.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;615&quot; data-original-width=&quot;800&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPFvh1xZ_Hi4jfYXJUs1tbC9i5ng_fAcEcAJo_JrgDhxfMoVwHis-rz2ZE5QNXbt_ZiG2LtO698_CgPPgpRtAZMX_p3ZJudtI0GfSAGGLDrasW7WohFo1IUqWI_JMfY4XE-InWWoxYqr-gjvvEEXFIneuq7SoOqibTl7Ete9GNqXBvUXS11r6FHleFSPI-/s400/cap4.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

「ラーメンが美味しい店を教えてください」といった質問だと位置情報をもとに解答を返すようだ。恐らく近場であまりない料理名を出すとうまく回答してくれない。&lt;br&gt;
出力内容としてはGoogleMapを直接扱うのと代わり映えはなさそうだがBardに相談しながら旅行計画を立てるといったことができそうだ。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;Bard Extensionを利用してYoutubeへアクセスする&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
@YouTube Unityの初心者向けの動画を探してください。言語は英語がいいです。
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6elNJ1joL3FvxM9D0Bjg4ky6C5jR67UDLTB7gOshcddXVoeaX9t3XTc87u3UjnW9N_qav1esH8J9pT6HgkFURMXj7GwKSnIuof7_fwnNRpvk-nYpcSotpSkk2k3w2QSUVdHK5uy-Nem0HTm2W7SRaszXzVM6JP_64IJFQCdntWX4vKz2QWsrSYStL1MgN/s800/cap7.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;600&quot; data-original-width=&quot;800&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6elNJ1joL3FvxM9D0Bjg4ky6C5jR67UDLTB7gOshcddXVoeaX9t3XTc87u3UjnW9N_qav1esH8J9pT6HgkFURMXj7GwKSnIuof7_fwnNRpvk-nYpcSotpSkk2k3w2QSUVdHK5uy-Nem0HTm2W7SRaszXzVM6JP_64IJFQCdntWX4vKz2QWsrSYStL1MgN/s400/cap7.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
言語を指定しない場合は恐らく言語設定等をもとにした検索結果になる。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
@YouTube http://www.youtube.com/watch?v=XtQMytORBmM について教えてください
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTPCSRZCkmXgJPJJJh-8aOCaOCOH0GZbgtif2kHz94l0y5KxzQlkD02G5Fou_2be7_RVIl_5R1ranXmY0Me7uUGsd4Ix-Vl1jLiqYRUlaslpUD5fQhU3HgG2pZTF7ewgN6auYaxUTBssZkyfKXzsp-7gKpqbDNA73IcbzN2kTKVJ1eo7J6hGGl3gEj1h5X/s800/cap8.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;572&quot; data-original-width=&quot;800&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTPCSRZCkmXgJPJJJh-8aOCaOCOH0GZbgtif2kHz94l0y5KxzQlkD02G5Fou_2be7_RVIl_5R1ranXmY0Me7uUGsd4Ix-Vl1jLiqYRUlaslpUD5fQhU3HgG2pZTF7ewgN6auYaxUTBssZkyfKXzsp-7gKpqbDNA73IcbzN2kTKVJ1eo7J6hGGl3gEj1h5X/s400/cap8.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
動画の内容を説明してくれる。ただし解析できるのは英語の音声のみ？&lt;br&gt;
&lt;br&gt;

『英語の動画を説明してもらう』といった使い方が非常に便利。TEDを解説してもらおう。&lt;br&gt;
TEDを片っ端から流し込むとタイパ最強かもしれない。&lt;br&gt;
&lt;br&gt;
Bard Extensionの機能をONした場合、微妙なニュアンスを拾ってくれないことがある。&lt;br&gt;
&lt;b&gt;@YouTube  Unityの初心者向け動画を探してください&lt;/b&gt; ○&lt;br&gt;
&lt;b&gt;@YouTube  Unityの初心者向け動画を教えてください&lt;/b&gt; ×&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;Bard Extensionを利用してGoogle Docsにアクセスする&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
保存されているGoogle DocsへBardからアクセスすることが可能。&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
@Google Docs 「環境構築手順」について300文字程度にまとめてください
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
 &lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYScpLkU-gmAgF6DybALiP7Sl7gh_y3nVR4zpideVKYfVyPdhDPfWyCBERqDIRwemI3IGT23VClRamdL6oYH2vNDVmQLqJ8lMRz4mXZQCCIq1pkEuFNMllc5FYSw4TRnhQ3ZXZkdnT9ixwKfVb0IdKVjoQgF84_YPYzRW-fGDlwjsDMA2cHGiIVp49hKgj/s900/cap9.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;Bard Extension Google Docs&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;846&quot; data-original-width=&quot;900&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYScpLkU-gmAgF6DybALiP7Sl7gh_y3nVR4zpideVKYfVyPdhDPfWyCBERqDIRwemI3IGT23VClRamdL6oYH2vNDVmQLqJ8lMRz4mXZQCCIq1pkEuFNMllc5FYSw4TRnhQ3ZXZkdnT9ixwKfVb0IdKVjoQgF84_YPYzRW-fGDlwjsDMA2cHGiIVp49hKgj/s400/cap9.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

Google Docs形式だと詳細に中身を分析してくれる。&lt;br&gt;
文書の要約や特定のキーワードを持つ文書の探索といった用途で使用可能。&lt;br&gt;
Google DocsだけでなくGoogle Driveへのアクセスも可能だが使いづらくうまい利用方法は思いつかなかった。&lt;br&gt;
PDFなどGoogle Docs形式以外では中身を解釈してまとめるといったことはまだできない。&lt;br&gt;
&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;Bardにコードスニペットを作成してもらいReplit(Webエディタ)へエクスポート&lt;/h2&gt;
&lt;hr /&gt;
Bardから出力されたコードの挙動をその場で確認することが可能。&lt;br&gt;

Bardからコードサンプルを出力 → 下部の共有ボタンからReplitへエクスポート → 選択肢が出てきた場合Continue without upgrating&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjQ1IUjPRIWW9lBMzzIUpiENYOpTCVTr0M3-ndmGBady68QCYDF7gOueL7BOLY1o4Jwy9cg-CZ8YkazYplxxQqvgc3ngM8RJLsXLbw9QDl6guYrFZx7XzWAYAHeJWvY2BJYsY-1jiq_CT2yZWg-V0CsZUP7toaWF02BMI_tYVydREH-scq5KyE3iSOyW4A/s953/cap5.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;Bard Replit&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;715&quot; data-original-width=&quot;953&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjQ1IUjPRIWW9lBMzzIUpiENYOpTCVTr0M3-ndmGBady68QCYDF7gOueL7BOLY1o4Jwy9cg-CZ8YkazYplxxQqvgc3ngM8RJLsXLbw9QDl6guYrFZx7XzWAYAHeJWvY2BJYsY-1jiq_CT2yZWg-V0CsZUP7toaWF02BMI_tYVydREH-scq5KyE3iSOyW4A/s400/cap5.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJf4xbrfhqhTXCQpe3X0vbn9eyANdTVyt_N-ba3ARz-pyFuu3o96v5ReLnqu7WxWBOY1x5s5dgD5ERIDpCTpQ4G6KyvcEZpMHv262F9bW_44xXOy9bRKTW-8zryJU98IkAXXJY-Q_2LOjx56n1AZMOxLANJKUyPozvR6Jk1uq2l6wegXrLuL1Emlf8PHuQ/s618/cap6.png&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;Replit&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;288&quot; data-original-width=&quot;618&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJf4xbrfhqhTXCQpe3X0vbn9eyANdTVyt_N-ba3ARz-pyFuu3o96v5ReLnqu7WxWBOY1x5s5dgD5ERIDpCTpQ4G6KyvcEZpMHv262F9bW_44xXOy9bRKTW-8zryJU98IkAXXJY-Q_2LOjx56n1AZMOxLANJKUyPozvR6Jk1uq2l6wegXrLuL1Emlf8PHuQ/s400/cap6.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;Bardに画像を読み込ませる&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
2023年9月に日本語での画像認識が対応されている。入力欄の左のアイコンより。
&lt;br&gt;
&lt;h3&gt;画像からHTML作成(Image to HTML)&lt;/h3&gt;

&lt;div class=&quot;space&quot;&gt;Create Html from image&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3_Re56T6r8fgVrqeVhy152aM0WlkhB0mcTSLZN0RIa0_6KqHs-AT7Fnh8vTvgPGKFXY3KBixl1QVHG3vUL9erVXPsDcgrsHBsdcHCwgVnK5kLYfk74P5k5G8HDiBMIAB-b0_bUdPdjilnVBLcXtak6MlhhIgcV0_U8hKYPQc3VATTU0VMMCeKUZji3xg/s973/html.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;744&quot; data-original-width=&quot;973&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD3_Re56T6r8fgVrqeVhy152aM0WlkhB0mcTSLZN0RIa0_6KqHs-AT7Fnh8vTvgPGKFXY3KBixl1QVHG3vUL9erVXPsDcgrsHBsdcHCwgVnK5kLYfk74P5k5G8HDiBMIAB-b0_bUdPdjilnVBLcXtak6MlhhIgcV0_U8hKYPQc3VATTU0VMMCeKUZji3xg/s400/html.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfWeV_tzhc9kKXas0LruQFpw5k8zOWcwsjsJ8MqjZ9s644SWa4QlyTIoixd5LX50Lshb4DNXju9VrMPZfDDkoAborpRkwGJy_OOlznTAqltPYLKaac2EtqOtxxw8DyP8M6hB4e7vovJqN5uKnzxSDl1nyNEvxfWFcJBFH6Ttsd49zL7I-mNp1_94B_PrxI/s809/html2.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;400&quot; data-original-height=&quot;809&quot; data-original-width=&quot;700&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfWeV_tzhc9kKXas0LruQFpw5k8zOWcwsjsJ8MqjZ9s644SWa4QlyTIoixd5LX50Lshb4DNXju9VrMPZfDDkoAborpRkwGJy_OOlznTAqltPYLKaac2EtqOtxxw8DyP8M6hB4e7vovJqN5uKnzxSDl1nyNEvxfWFcJBFH6Ttsd49zL7I-mNp1_94B_PrxI/s400/html2.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
画像内に日本語が含まれている場合日本語で質問した方がいいようだ。&lt;br&gt;
また以前は問題なかったがメンバ一覧など名前やメールアドレス等が入っているような画像だと弾くような挙動になる（アップロードした画像も削除される）&lt;br&gt;
あまり複雑なものだと対応できなかったり、追加でコンテキストの説明が必要になってくる。&lt;br&gt;
&lt;br&gt;

&lt;h3&gt;ER図の画像からテーブルを作成するSQL文を作成する(ER to SQL)&lt;/h3&gt;

&lt;div class=&quot;space&quot;&gt;添付のER図をもとにテーブルを作成するSQLを作成してください&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6seFDMLAUC1cr2FSUZfDZh3EXZx8Rxf1GjnERtLcIASfUw04i1FD5DAsDxBOw3e0FG0kE-QExstDdlStPKJy7_QsKdk8QttiQHgcll0UFOZKqGHaX4JGkQphw0XKMtj59zbG16upOJu1bR54NnBp5fUAnIbw3S3EwI4l7NlPdV-OzDfoxNpr-inh0spNf/s658/er.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;350&quot; data-original-width=&quot;658&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6seFDMLAUC1cr2FSUZfDZh3EXZx8Rxf1GjnERtLcIASfUw04i1FD5DAsDxBOw3e0FG0kE-QExstDdlStPKJy7_QsKdk8QttiQHgcll0UFOZKqGHaX4JGkQphw0XKMtj59zbG16upOJu1bR54NnBp5fUAnIbw3S3EwI4l7NlPdV-OzDfoxNpr-inh0spNf/s400/er.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdUi5lNa9cocq_9Qg7toLapS0icZgbwFV8-kr7zNqgeCQLmlZ8U3F4TCuAn6RF9VQlqIV8Edi3gbG4ZzS-hTLzbhYeAcFS8iaHtc3sYqlCbaIUxdrv-4wr856jGn-n06ieErK7imdLF1QppUJODQkLIBOz0RRJdWBB4SZFSIPGxBsFUlCOBQeFcDLc41Kb/s799/er2.jpeg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;Er to SQL&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;789&quot; data-original-width=&quot;799&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdUi5lNa9cocq_9Qg7toLapS0icZgbwFV8-kr7zNqgeCQLmlZ8U3F4TCuAn6RF9VQlqIV8Edi3gbG4ZzS-hTLzbhYeAcFS8iaHtc3sYqlCbaIUxdrv-4wr856jGn-n06ieErK7imdLF1QppUJODQkLIBOz0RRJdWBB4SZFSIPGxBsFUlCOBQeFcDLc41Kb/s400/er2.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

</description><link>http://trueman-developer.blogspot.com/2023/12/bard-extension.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj11vXXX3MyX8VhT9Wn3irk2luA1ayEvYnI51CP64-_yrBZXd6L90jgu38wZvwcxkK1bdfYwGN25eKvkBckPLEzTGXmt39B104tgBVKg3gFzDCDMdo0LJfaXsnPZmQYcNXLF8eHMRhmRiKCAI1PpLZ7K8ZAw_FcCZQqIKYyh8VIWCq-YRuTjX47HbV6lvD0/s72-c/cap1.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-7027826733933929259</guid><pubDate>Thu, 31 Aug 2023 02:22:00 +0000</pubDate><atom:updated>2023-08-31T11:24:52.175+09:00</atom:updated><title>Google検索の検索のAI(SGE)を試してみる</title><description>機能としては検索結果の要約が主。検索結果自体が微妙なBingを使うよりはいいかもしれない。&lt;br&gt;&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;利用方法&lt;/h2&gt;
&lt;hr /&gt;

以下のGoogle Search LabからONにすると検索結果に出てくるようになる。Googleアカウントでログインしておく必要がある。&lt;br&gt;&lt;br&gt;

&lt;a href=&quot;https://labs.google.com/search/experiments?is=ng&quot; target=&quot;_blank&quot;&gt;https://labs.google.com/search/experiments?is=ng&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZTftOAqEKQGFRWBBS0AMv57ohpxCxTKfOyKoiwFhemdfGgFL0YkjvBOznsaAvPlwxpjZIhVwSfq00cirllY-8qvC363YFKZxy1VEGPwsrMlYDpfVupOQruCtKxjk2y4qSNKFnQ4is7t0207qf29BlsUBDIKo3kk7VWQG9LgSlQ39qZjlZffvL7vUabTqe/s837/cap2.png&quot; style=&quot;padding: 1em 0;&quot;&gt;&lt;img alt=&quot;SGE有効化&quot; border=&quot;0&quot; height=&quot;320&quot; data-original-height=&quot;837&quot; data-original-width=&quot;717&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZTftOAqEKQGFRWBBS0AMv57ohpxCxTKfOyKoiwFhemdfGgFL0YkjvBOznsaAvPlwxpjZIhVwSfq00cirllY-8qvC363YFKZxy1VEGPwsrMlYDpfVupOQruCtKxjk2y4qSNKFnQ4is7t0207qf29BlsUBDIKo3kk7VWQG9LgSlQ39qZjlZffvL7vUabTqe/s320/cap2.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

検索結果にAIによる生成結果が出てくるようになる。&lt;br&gt;
たとえば「GCPとは」と検索するといくつかのサイトを参考に要約が表示される。参考にしたサイトも表示される。
&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIbFvtx1Ph3NPUoxSReURh2xZOMEemiN0Q0vmIAfbg4ni-m9Ac5tveTrCQpSQEGlLNJ7x4cy7xCqLLQ2efiCjD7VR5vCgkA4yNbUBcto42njCgAJFYhhkCDt1i8pTzwi1hL2HjMtbRhdPGiLZZZcUYEXITrZClCe_1FpEAWyRPgrDg71soMOdQGvzJ-MlO/s1161/image_2023_8_30.png&quot; style=&quot;padding: 1em 0;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;677&quot; data-original-width=&quot;1161&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIbFvtx1Ph3NPUoxSReURh2xZOMEemiN0Q0vmIAfbg4ni-m9Ac5tveTrCQpSQEGlLNJ7x4cy7xCqLLQ2efiCjD7VR5vCgkA4yNbUBcto42njCgAJFYhhkCDt1i8pTzwi1hL2HjMtbRhdPGiLZZZcUYEXITrZClCe_1FpEAWyRPgrDg71soMOdQGvzJ-MlO/s400/image_2023_8_30.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;ChatGPTのような使い方はできない&lt;/h2&gt;
&lt;hr /&gt;

『jqueryでtableのheaderにクリックイベントを付与する方法』みたいなのは無理。&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyPYhTu3hy_yjwodI6XQkonweNXOlxdxnP-UtXH4wCDMvjc2BAMqhq8hVMIJW2SBFCUd4pZZjAjfGOB8h6TclZKGnR9Q3TcgS6cGyu3ZrVrO9Xz6erAnOifbekm0TRrFv6f9ob-1b9TL5oZ0Cy3NjTa0K_OAVqmMmAjlgi4--GToLTAt2rbjS0-W0PzpZq/s1156/cap.jpeg&quot; style=&quot;padding: 1em 0;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;518&quot; data-original-width=&quot;1156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyPYhTu3hy_yjwodI6XQkonweNXOlxdxnP-UtXH4wCDMvjc2BAMqhq8hVMIJW2SBFCUd4pZZjAjfGOB8h6TclZKGnR9Q3TcgS6cGyu3ZrVrO9Xz6erAnOifbekm0TRrFv6f9ob-1b9TL5oZ0Cy3NjTa0K_OAVqmMmAjlgi4--GToLTAt2rbjS0-W0PzpZq/s400/cap.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
今のところはあくまで検索結果の要約と捉えると良い。&lt;br&gt;
Bingでいうところの「より厳密に」を設定したAIに近い。&lt;br&gt;

Bardも普通に使えるようになってきているので併用すると良い。&lt;br&gt;
&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://japan.googleblog.com/2023/08/search-sge.html&quot; target=&quot;_blank&quot;&gt;https://japan.googleblog.com/2023/08/search-sge.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;
</description><link>http://trueman-developer.blogspot.com/2023/08/googleaisge.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZTftOAqEKQGFRWBBS0AMv57ohpxCxTKfOyKoiwFhemdfGgFL0YkjvBOznsaAvPlwxpjZIhVwSfq00cirllY-8qvC363YFKZxy1VEGPwsrMlYDpfVupOQruCtKxjk2y4qSNKFnQ4is7t0207qf29BlsUBDIKo3kk7VWQG9LgSlQ39qZjlZffvL7vUabTqe/s72-c/cap2.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-5972843686299742540</guid><pubDate>Mon, 07 Aug 2023 01:57:00 +0000</pubDate><atom:updated>2023-08-09T11:39:59.507+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Docker</category><title>Cloud SQL Proxy V2をDockerで使用する</title><description>微妙に記述が変わっていてそこそこ手間取った。&lt;br&gt;
Cloud SQLへアクセスする方法は以前まとめているが、Dockerのアプリケーションからプロキシ経由でCloud SQLヘアクセスする場合は一手間必要になる。&lt;br&gt;
&lt;a href=&quot;https://trueman-developer.blogspot.com/2020/07/gcp-cloud-sqlmysql.html&quot; target=&quot;_blank&quot;&gt;https://trueman-developer.blogspot.com/2020/07/gcp-cloud-sqlmysql.html&lt;/a&gt;&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;Docker Run経由でCloud SQL Proxy&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;h3&gt;DB接続名確認&lt;/h3&gt;
&lt;div class=&quot;space&quot;&gt;
gcloud sql instances describe データベース名 --format=&#39;value(connectionName)&#39;
&lt;/div&gt;

※Cloud SQLのダッシュボードから確認可能&lt;br&gt;&lt;br&gt;

&lt;h3&gt;認証用jsonファイル取得&lt;/h3&gt;
&lt;a href=&quot;https://cloud.google.com/sql/docs/mysql/authentication?hl=ja&quot; target=&quot;_blank&quot;&gt;https://cloud.google.com/sql/docs/mysql/authentication?hl=ja&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;https://cloud.google.com/sql/docs/mysql/add-manage-iam-users?hl=ja#creating-a-database-user&quot; target=&quot;_blank&quot;&gt;https://cloud.google.com/sql/docs/mysql/add-manage-iam-users?hl=ja#creating-a-database-user&lt;/a&gt;&lt;br&gt;&lt;br&gt;

IAMと管理 → サービスアカウントからサービスアカウントを作成。
&lt;a href=&quot;https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts&quot; target=&quot;_blank&quot;&gt;https://console.cloud.google.com/projectselector2/iam-admin/serviceaccounts&lt;/a&gt;&lt;br&gt;&lt;br&gt;

②このサービス アカウントにプロジェクトへのアクセスを許可する でロールを追加する。&lt;br&gt;
ロール: Cloud SQL クライアント&lt;br&gt;&lt;br&gt;

作成したサービスアカウントを選択してキーの作成(JSON)&lt;br&gt;
xxxxxxxxxxxxxxxx.json&lt;br&gt;
ダウンロードしたjsonファイルはProxyと同階層に配置する必要がある。&lt;br&gt;&lt;br&gt;


&lt;h3&gt;Docker run&lt;/h3&gt;

以下はCloud SQL ProxyV2での指定方法。&lt;br&gt;
&lt;pre class=&quot;brush:shell&quot; style=&quot;text-wrap: balance;&quot;&gt;
docker run -d \
  -v ./xxxxxxxxxxxxxxx.json:/var/service-account-key.json \
  -p 127.0.0.1:13306:13306 \
  gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.6.0 \
  --credentials-file /var/service-account-key.json joy-service:asia-northeast2:joy-service-db
&lt;/pre&gt;&lt;br&gt;

※ -pは任意のポート番号。接続するときに指定する。&lt;br&gt;
※ -vはボリューム。先ほど取得したjsonファイルをDocker配下へコピーする。&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;docker-composeの記述方法&lt;/h2&gt;
&lt;hr /&gt;

以下はLaravel Sailの例。&lt;br&gt;
cloud-sql-proxyのvolumes, networks, commandの最後の2つjsonファイル名と接続名をを変更すれば良い&lt;br&gt;&lt;br&gt;

&lt;pre class=&quot;brush:java&quot;&gt;
version: &#39;3&#39;
services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.2
            dockerfile: Dockerfile
            args:
                WWWGROUP: &#39;${WWWGROUP}&#39;
        image: sail-8.2/app
        extra_hosts:
            - &#39;host.docker.internal:host-gateway&#39;
        ports:
            - &#39;${APP_PORT:-80}:80&#39;
            - &#39;${VITE_PORT:-5173}:${VITE_PORT:-5173}&#39;
        environment:
            WWWUSER: &#39;${WWWUSER}&#39;
            LARAVEL_SAIL: 1
            IGNITION_LOCAL_SITES_PATH: &#39;${PWD}&#39;
        volumes:
            - &#39;.:/var/www/html&#39;
            - &#39;/var/www/html/storage/framework&#39;
        networks:
            - sail
        depends_on:
            - cloud-sql-proxy
    cloud-sql-proxy:
        container_name: cloudsql-proxy
        image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.6.0
        volumes:
            - ./xxxxxxxxxxxxxxxx.json:/var/xxxxxxxxxxxxxxxx.json
        ports:
            - &quot;127.0.0.1:13306:13306&quot;
        networks:
            - sail
        command:
            [
                &quot;--address&quot;,
                &quot;0.0.0.0&quot;,
                &quot;--port&quot;,
                &quot;13306&quot;,
                &quot;--credentials-file&quot;,
                &quot;/var/xxxxxxxxxxxxxxxx.json&quot;,
                &quot;service名:asia-northeast2:DB名&quot;
            ]
&lt;/pre&gt;
&lt;br&gt;
これでDockerのアプリケーションからGCPのDBへアクセスできるようになる。&lt;br&gt;
また適当なDB接続クライアントでDBの操作ができるようになる。&lt;br&gt;

&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;接続情報&lt;/h2&gt;
&lt;hr /&gt;

Host: 127.0.0.1&lt;br&gt;
Username:root&lt;br&gt;
Password:&lt;br&gt;
Port:13306&lt;br&gt;&lt;br&gt;

HostはDockerアプリケーションから接続する場合&quot;cloud-sql-proxy&quot;を指定する。&lt;br&gt;
Username/PasswordはGCPのCloudSQLから設定する。&lt;br&gt;
PortはDockerで指定した左側のポート番号になる。&lt;br&gt;

&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;


&lt;a href=&quot;https://cloud.google.com/sql/docs/postgres/connect-auth-proxy?hl=ja#docker&quot; target=&quot;_blank&quot;&gt;https://cloud.google.com/sql/docs/postgres/connect-auth-proxy?hl=ja#docker&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;https://qiita.com/r-dohara/items/28cf0e6a2bfb31f05d45#docker-compose&quot; target=&quot;_blank&quot;&gt;https://qiita.com/r-dohara/items/28cf0e6a2bfb31f05d45#docker-compose&lt;/a&gt;&lt;br&gt;&lt;br&gt;

</description><link>http://trueman-developer.blogspot.com/2023/08/cloud-sql-proxy-v2docker.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-620557702566166336</guid><pubDate>Sat, 29 Jul 2023 13:26:00 +0000</pubDate><atom:updated>2023-12-31T13:52:52.353+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">typeScript</category><title>郵便番号ライブラリYubinbango-coreをstrict, esnextで使用できるようにした</title><description>公開からそれなりの年月が経っていて現状ではいろいろと不備が出てそのままでは利用できない。&lt;br&gt;
修正ついでにNPMに公開してみたかったのでやってみた。&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;利用方法&lt;/h2&gt;
&lt;hr /&gt;

Vue等を使用しない場合は以下で良い。classを使用するだけで動作する。&lt;br&gt;
&lt;a href=&quot;https://github.com/yubinbango/yubinbango&quot; target=&quot;_blank&quot;&gt;https://github.com/yubinbango/yubinbango&lt;/a&gt;&lt;br&gt;&lt;br&gt;

上記は便利だがVue等のフレームワークと相性が悪い。&lt;br&gt;
VueでTypeScriptを利用したい場合は以下&lt;br&gt;
&lt;a href=&quot;https://www.npmjs.com/package/yubinbango-core-strict&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/yubinbango-core-strict&lt;/a&gt;&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
npm install yubinbango-core-strict
&lt;/div&gt;

&lt;pre class=&quot;brush:js&quot;&gt;
import { YubinBangoCore } from &#39;yubinbango-core-strict&#39;;

const postalcd = &quot;1010001&quot;
new YubinBangoCore(postalcd, function (addr) {
    // region_id=県コード, region=都道府県
    // locality=市区町村, street=町域
    console.log(addr)
})
&lt;/pre&gt;
&lt;br&gt;
Visual Studio Code等を使っている場合addrにインテリセンスが効くようにしてある(型情報を定義している)。&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;経緯とかやったことメモとか&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://www.npmjs.com/package/yubinbango-core&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/yubinbango-core&lt;/a&gt;
こちらは本家で公開されているものだがモジュールがエクスポートされておらず利用できない。&lt;br&gt;

これを解消したものとしてYubinbango-core2というパッケージがある。&lt;br&gt;
&lt;a href=&quot;https://www.npmjs.com/package/yubinbango-core2&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/package/yubinbango-core2&lt;/a&gt;&lt;br&gt;
core2はトランスパイルするだけなら問題ないがstrictモードやESNEXTでビルドするとエラーになる。このライブラリのためだけのためにいろいろ設定を変更するわけにはいかない。&lt;br&gt;&lt;br&gt;

本当は本家で修正してもらうのが良いと思うがずっと放置されているようだ。&lt;br&gt;
&lt;a href=&quot;https://github.com/yubinbango/yubinbango-core/issues&quot; target=&quot;_blank&quot;&gt;https://github.com/yubinbango/yubinbango-core/issues&lt;/a&gt;&lt;br&gt;&lt;br&gt;

短いソースだから自分で用意してしまえば＆ついでに公開してしまえば便利では！？というのが経緯。&lt;br&gt;
具体的には以下のような対応をおこなった。&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
Export assignment cannot be used when targeting ECMAScript modules. Consider using &#39;export default&#39; or another module format instead
&lt;/div&gt;

exportの記述が少し古いものになっているので修正。&lt;br&gt;
&lt;a href=&quot;https://qiita.com/ystkr/items/84deec9a9fe8a85a96d1&quot; target=&quot;_blank&quot;&gt;https://qiita.com/ystkr/items/84deec9a9fe8a85a96d1&lt;/a&gt;&lt;br&gt;&lt;br&gt;

非推奨になった記述を修正。substrなど。&lt;br&gt;
型を全て明示するように変更。&lt;br&gt;
元々あったgulpのテストもやりたかったが少し手直しした程度では実行できなかった......
やるなら0からやり直す必要があるがそこまでやるメリットを感じない。&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;NPMへ公開する&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://www.npmjs.com/&quot; target=&quot;_blank&quot;&gt;https://www.npmjs.com/&lt;/a&gt;
にてサインアップ。&lt;br&gt;
パスワードは後で入力することになるので自動生成しないほうがいいかも。&lt;br&gt;&lt;br&gt;
package.jsonとREADME.mdを公開用に修正する。NPMの該当ページに表示される情報になる。&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
npm adduser
npm publish ./
&lt;/div&gt;

これだけでnpm installできるようになるうえに普通にNPMで検索した時に出てくる。いいのか？&lt;br&gt;&lt;br&gt;

100行にも満たない短いライブラリだが時間が経つと動かなくなるのはなかなか辛いものがある。&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://qiita.com/TsutomuNakamura/items/f943e0490d509f128ae2&quot; target=&quot;_blank&quot;&gt;https://qiita.com/TsutomuNakamura/items/f943e0490d509f128ae2&lt;/a&gt;&lt;br&gt;&lt;br&gt;
</description><link>http://trueman-developer.blogspot.com/2023/07/yubinbango-corestrict-esnext.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-3813640715833593164</guid><pubDate>Sun, 07 May 2023 15:18:00 +0000</pubDate><atom:updated>2023-05-08T00:34:00.861+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>画像生成AI Bing Image Creator(DALL-E)の使い方、プロンプトについて検証する</title><description>DALL-Eを使用しているので正確にはDALL-Eのプロンプトの調査、検証になる。&lt;br&gt;
Stable Diffusionでもある程度応用は利くはず。&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br&gt;
&lt;br&gt;

&lt;style&gt;
  .separator {
      text-align: center;
  }
&lt;/style&gt;

&lt;h2&gt;目次&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;#target&quot;&gt;描画対象：犬、女の子、老人、ロボットなど&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#style&quot;&gt;画風&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#feature&quot;&gt;身体的特徴&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#expression&quot;&gt;表情&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#pose&quot;&gt;ポーズ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#clothes&quot;&gt;服装、装飾&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#camera&quot;&gt;画角、カメラ、視点&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#situation&quot;&gt;シチュエーション&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#background&quot;&gt;背景&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#option&quot;&gt;その他オプション&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#referernce&quot;&gt;参考&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;Bing Image Creatorについて&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
新Bingのプレビュー版に登録していれば無料で使用することができる。&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create&lt;/a&gt;&lt;br&gt;
詳細は以下にまとめている。&lt;br&gt;
&lt;a href=&quot;https://trueman-developer.blogspot.com/2023/03/bingbing-image-creator.html&quot; target=&quot;_blank&quot;&gt;https://trueman-developer.blogspot.com/2023/03/bingbing-image-creator.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;target&quot;&gt;描画対象：犬、女の子、老人、ロボットなど&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

まず『何を描画するか』を決める。&lt;br&gt;
重要なものを先にオプション的な要素を後付けにするのが主流になっているようだ。&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
cat girl
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRbK0vCYyRUKWDK1_RVzfhnYbv-5sYMwGNAJRBRNSbJ3hq8tQZCk889uSUZw1Tkw8pU_pLUR10W5COHvmVzijnuQpVD_tRdWS2oy_UXgXx7erXhWCP0daijwiUL9QdsaIht2u0YAkdGoa_todvKQxrp7K8-VOwuWMkqpQilewucBKHmfjbLdz5K20Z6A/s297/cat%20girl1.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;DALL-E prompt cat girl&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRbK0vCYyRUKWDK1_RVzfhnYbv-5sYMwGNAJRBRNSbJ3hq8tQZCk889uSUZw1Tkw8pU_pLUR10W5COHvmVzijnuQpVD_tRdWS2oy_UXgXx7erXhWCP0daijwiUL9QdsaIht2u0YAkdGoa_todvKQxrp7K8-VOwuWMkqpQilewucBKHmfjbLdz5K20Z6A/s320/cat%20girl1.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG4GI1E4Au1_LyekWz4mf4_5VgtxWRk-3hYpxycP0v6T-qvsohZCMkTaKiVkRVVCk-hPQpvVFa2VT6P-fo3nKH1a_HdeFqsJK0zS2GNiaGLUl324UJk7hyIMlOaxoz1Z1IFEeia8QGAUlfw5PyLnUb7MEtKevR0NotMd82AHvKDjuEn52QjY2X_EE2-A/s297/cat%20girl2.jpg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG4GI1E4Au1_LyekWz4mf4_5VgtxWRk-3hYpxycP0v6T-qvsohZCMkTaKiVkRVVCk-hPQpvVFa2VT6P-fo3nKH1a_HdeFqsJK0zS2GNiaGLUl324UJk7hyIMlOaxoz1Z1IFEeia8QGAUlfw5PyLnUb7MEtKevR0NotMd82AHvKDjuEn52QjY2X_EE2-A/s320/cat%20girl2.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/cat-girl/6422962be52b4560a6624fd7fdf5ee7a?FORM=GUH2CR&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/cat-girl/6422962be52b4560a6624fd7fdf5ee7a?FORM=GUH2CR&lt;/a&gt;&lt;br&gt;&lt;br&gt;

上記画像は&quot;cat girl&quot;のみのプロンプトを指定して作成した例(cat girlそのものに猫耳少女といった意味合いがあるらしい)&lt;br&gt;
単純な1,2ワードだけでは全く望んだようにならないので、ここからキーワードを加えてもう少し方向性を持たせる必要がある。&lt;br&gt;&lt;br&gt;

&lt;style&gt;
  .prompt {
    width: 100%;
    border-spacing: 0;
  }
  .prompt th {
    border-bottom: 1px solid #666;
  }
  .prompt td:first-of-type, .prompt th:first-of-type {
    border-right: 1px solid #666;
  }
  .prompt td {
    border-bottom: 1px solid #666;
    font-size: 1rem;
    padding: 0.5rem;
  }
&lt;/style&gt;
&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;描画対象：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;dog&lt;/td&gt;
        &lt;td&gt;犬&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cat&lt;/td&gt;
        &lt;td&gt;猫&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;robot&lt;/td&gt;
        &lt;td&gt;ロボット&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;man&lt;/td&gt;
        &lt;td&gt;男性&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;woman&lt;/td&gt;
        &lt;td&gt;女性&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;boy&lt;/td&gt;
        &lt;td&gt;少年&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;girl&lt;/td&gt;
        &lt;td&gt;少女&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;old man&lt;/td&gt;
        &lt;td&gt;老人&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;creature&lt;/td&gt;
        &lt;td&gt;異形&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;dragon&lt;/td&gt;
        &lt;td&gt;竜&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cat girl&lt;/td&gt;
        &lt;td&gt;猫耳少女&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;witch&lt;/td&gt;
        &lt;td&gt;魔女&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;fairy girl&lt;/td&gt;
        &lt;td&gt;妖精&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;



&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;style&quot;&gt;画風&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
～風、～調といった出力画像の画風、絵柄を指定する。&lt;br&gt;
サイバーパンク風、日本のマンガアニメ風と言った指定が可能。&lt;br&gt;
一部個人名でも指定できるらしいが試してみてもあまり似なかった。&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
robot girl, cel anime, cyberpank
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRi9ReovgI_f6Ky63T80ZtmcxF0GOFwTxZJAAki_D4FL9lcwIdBtm3AU_Bmvgt61w-gd-77ze1KPNDsLq77N20rfxFgQTrAsac9LKl8YQLhcEC1UtXeIIbbXANzRHuUof0yqiaTBQSRUfbupfN0BRihpIePF53GGbcNajkT_LoKN2pGX2-rgIfR7-15Q/s297/robot%20girl,%20cel%20anime,%20cyberpank.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRi9ReovgI_f6Ky63T80ZtmcxF0GOFwTxZJAAki_D4FL9lcwIdBtm3AU_Bmvgt61w-gd-77ze1KPNDsLq77N20rfxFgQTrAsac9LKl8YQLhcEC1UtXeIIbbXANzRHuUof0yqiaTBQSRUfbupfN0BRihpIePF53GGbcNajkT_LoKN2pGX2-rgIfR7-15Q/s320/robot%20girl,%20cel%20anime,%20cyberpank.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/robot-girl2c-cel-anime2c-cyberpank/6422f50875cb40f3ae1fb5dbec4dbfc5?id=JbleDWQ4jKINzDxVkUJGfA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot-girl2c-cel-anime2c-cyberpank1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot-girl2c-cel-anime2c-cyberpank/6422f50875cb40f3ae1fb5dbec4dbfc5?id=DVyxvXyRv3QDtGSy6BhGNQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot-girl2c-cel-anime2c-cyberpank2&lt;/a&gt;&lt;br&gt;&lt;br&gt;

&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;画風：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Van Gogh&lt;/td&gt;
        &lt;td&gt;ゴッホ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cel anime, anime&lt;/td&gt;
        &lt;td&gt;日本の漫画アニメ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;chibi anime&lt;/td&gt;
        &lt;td&gt;2等身、3等身キャラ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;concept art&lt;/td&gt;
        &lt;td&gt;コンセプトアート。細部まで書き込まれたはっきりしたイラストになりやすい&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Oil painting&lt;/td&gt;
        &lt;td&gt;油絵&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;watercolor, gouache, dreamy watercolor&lt;/td&gt;
        &lt;td&gt;水彩&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;flat color&lt;/td&gt;
        &lt;td&gt;影の少ない絵柄&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;ink drawing&lt;/td&gt;
        &lt;td&gt;水墨画&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;hyper realism&lt;/td&gt;
        &lt;td&gt;リアル風イラスト&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;3D&lt;/td&gt;
        &lt;td&gt;3D風イラスト&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;sketch&lt;/td&gt;
        &lt;td&gt;手描きスケッチ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Grisaille&lt;/td&gt;
        &lt;td&gt;グリザイユ。モノクロ。灰色っぽいイラスト&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;art nouveau&lt;/td&gt;
        &lt;td&gt;アール・ヌーヴォー。花や植物ガラスなど&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;rococo&lt;/td&gt;
        &lt;td&gt;ロココ調&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;renaissance&lt;/td&gt;
        &lt;td&gt;ルネッサンス美術&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;baroque&lt;/td&gt;
        &lt;td&gt;バロック&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;pixel art&lt;/td&gt;
        &lt;td&gt;ピクセルアート&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;metal texture&lt;/td&gt;
        &lt;td&gt;金属のような質感&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;


&lt;br&gt;&lt;br&gt;
アニメ*サイバーパンクなど複数指定が可能。混ざったような出力になる。&lt;br&gt;
アニメ*何かしらの美術様式を指定するとイメージ通りのイラストが出力されやすいかも。
animeとrococoを指定すると繊細でイイ感じになるが何故か生成がブロックされる確率が跳ね上がる。&lt;br&gt;
描画対象と画風を組み合わせるだけでいろいろな画像が出力できるようになる。&lt;br&gt;
画風として以下のアーティストが使えるらしいがあまり効いていない。&lt;br&gt;
&lt;a href=&quot;https://decentralizedcreator.com/list-of-artists-supported-by-dall-e-2/&quot; target=&quot;_blank&quot;&gt;https://decentralizedcreator.com/list-of-artists-supported-by-dall-e-2/&lt;/a&gt;

&lt;br&gt;&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2 id=&quot;feature&quot;&gt;身体的特徴&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
目の色、髪色、髪型、肌の色、耳の形など&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
blue eyes white dragon
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwzJKa1mTP2-Mg_bvDEIjUYkacPKHmvBqOp9dRWPiKV5uC84iTCObeV8C3TFtS84uhcFNDAtgBou_aP2G0B_I58asUvTsSoh90pcBKo6a3tSSv0Mu5P549fqIx6TafTrotbE3hIreX85t86Q7-R_UAmgWOQ0LmL5ywVpzQgc7Qxskxj_LSjIHTBvC43A/s297/blue%20eyes%20white%20dragon.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;blue eyes white dragon&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwzJKa1mTP2-Mg_bvDEIjUYkacPKHmvBqOp9dRWPiKV5uC84iTCObeV8C3TFtS84uhcFNDAtgBou_aP2G0B_I58asUvTsSoh90pcBKo6a3tSSv0Mu5P549fqIx6TafTrotbE3hIreX85t86Q7-R_UAmgWOQ0LmL5ywVpzQgc7Qxskxj_LSjIHTBvC43A/s320/blue%20eyes%20white%20dragon.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/blue-eyes-white-dragon/64337dedcf4f4146900e98ebddb5f0d0?id=Vb2Hl7Gl5F3MAe6jABPrRw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/blue-eyes-white-dragon&lt;/a&gt;&lt;br&gt;&lt;br&gt;



&lt;div class=&quot;space&quot;&gt;
woman, white wavy long hair, red eyes, rabbit ears, brown skin, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7aa-G3zUF3yS_COpD_Y7lQPLjHpQhXzfCG37oG4giRtd5sklmjyzNvCTXygSR6-ceYY0sL1a9B3so2Hh0Rk0E8yk1YgqPbLdUHU5Nstzv5-OoJJYL5a37dKpx8vmiWFXq-vrJK-2kC0se8F8K84m-576lGKWIH6n-S7KqqTaocPkzZB4Hxhn-zA-zOw/s297/woman,%20white%20wavy%20long%20hair,%20red%20eyes,%20rabbit%20ears,%20brown%20skin,%20cel%20anime.jpg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;woman, white wavy long hair, red eyes, rabbit ears, brown skin, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7aa-G3zUF3yS_COpD_Y7lQPLjHpQhXzfCG37oG4giRtd5sklmjyzNvCTXygSR6-ceYY0sL1a9B3so2Hh0Rk0E8yk1YgqPbLdUHU5Nstzv5-OoJJYL5a37dKpx8vmiWFXq-vrJK-2kC0se8F8K84m-576lGKWIH6n-S7KqqTaocPkzZB4Hxhn-zA-zOw/s320/woman,%20white%20wavy%20long%20hair,%20red%20eyes,%20rabbit%20ears,%20brown%20skin,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/woman2c-white-wavy-long-hair2c-red-eyes2c-rabbit-ears/643382f191bb45f6802fa191a0448d03?id=1jFHsEG%2fpuFhAtBURbFdiA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/woman2c-white-wavy-long-hair2c-red-eyes2c-rabbit-ears&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;身体的特徴：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;[Color] eyes&lt;/td&gt;
        &lt;td&gt;指定した目の色&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;[Color] hair&lt;/td&gt;
        &lt;td&gt;指定した髪の色&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;short hair&lt;/td&gt;
        &lt;td&gt;ショートヘア&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;long hair&lt;/td&gt;
        &lt;td&gt;ロングヘア&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;spiked hair&lt;/td&gt;
        &lt;td&gt;ツンツンした髪&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;bob hair&lt;/td&gt;
        &lt;td&gt;ボブ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Wavy hair&lt;/td&gt;
        &lt;td&gt;ウェーブのかかった髪&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Ponytail&lt;/td&gt;
        &lt;td&gt;ポニーテール&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;brown skin&lt;/td&gt;
        &lt;td&gt;褐色&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cat ear&lt;/td&gt;
        &lt;td&gt;猫耳&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;wolf ear&lt;/td&gt;
        &lt;td&gt;狼耳&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;rabbit ears&lt;/td&gt;
        &lt;td&gt;ウサミミ&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;br&gt;&lt;br&gt;

細かくプロンプトを分けるよりwhite wavy long hairと言った具合に自然言語で指定したほうがうまく反映される気がする。&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2 id=&quot;expression&quot;&gt;表情&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
喜怒哀楽など。


&lt;div class=&quot;space&quot;&gt;
woman, black bob hair, surprised expression, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcnShxC-Ohe01-aFrov3SGr9iQqcwpselvtSUmjIZEFUounmri7aaU0O88_wFtVpiMVoRNqQcWavrGRzd7fy2HNECt94MdphbXLcSSX4vFVufAAv33u10sTo8qfe6pYWNULoMi6WH1bDT2iWSrzVfEU4S3XIfZVuD03c7cfzqmVGOgSF9aTG6t-r95aQ/s297/woman,%20black%20bob%20hair,%20surprised%20expression,%20cel%20anime.jpg&quot; style=&quot;text-align: center; &quot;&gt;&lt;img alt=&quot;woman, black bob hair, surprised expression, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcnShxC-Ohe01-aFrov3SGr9iQqcwpselvtSUmjIZEFUounmri7aaU0O88_wFtVpiMVoRNqQcWavrGRzd7fy2HNECt94MdphbXLcSSX4vFVufAAv33u10sTo8qfe6pYWNULoMi6WH1bDT2iWSrzVfEU4S3XIfZVuD03c7cfzqmVGOgSF9aTG6t-r95aQ/s320/woman,%20black%20bob%20hair,%20surprised%20expression,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/woman2c-black-bob-hair2c-surprised-expression2c-cel-a/6433849cd1954bb3b4dc5aba25220a87?id=VW83gVF51o%2f%2byDPxrfRxYg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/woman2c-black-bob-hair2c-surprised-expression2c-cel-anime&lt;/a&gt;&lt;br&gt;&lt;br&gt;



&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;表情：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;happy/smile/laugh&lt;/td&gt;
        &lt;td&gt;喜び&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;angry&lt;/td&gt;
        &lt;td&gt;怒り&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cry, sad&lt;/td&gt;
        &lt;td&gt;悲しむ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;surprised expression&lt;/td&gt;
        &lt;td&gt;驚き&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;sleepy&lt;/td&gt;
        &lt;td&gt;眠そうな&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;evil smile&lt;/td&gt;
        &lt;td&gt;悪巧み、邪悪な笑み&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;serious&lt;/td&gt;
        &lt;td&gt;シリアスな表情&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;wink&lt;/td&gt;
        &lt;td&gt;ウインク&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;melancholy&lt;/td&gt;
        &lt;td&gt;憂鬱&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;screaming&lt;/td&gt;
        &lt;td&gt;叫ぶ、どちらかというと大口を開けるといった表情になる&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;pose&quot;&gt;ポーズ&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
girl, sitting,against wall, melancholy, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2p1QjX4VPY21YQ8cAAp8RF_9FsPGCVTxddd86QyaPSZa4WLe38XDrvRDR1aMKqcW___ajj-1wlEmUICbfhq8uzSImgSYh2lQnRXWSsW5ezlm_FwQVcWh7nvohpjOUW8iu1AjqhcyGy-YbfFM0qJWhJVL4Jlgbi_CkM64N_KU0NRUFiZKIU82zPxhb2Q/s297/girl,%20sitting,against%20wall,%20melancholy,%20cel%20anime.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;girl, sitting,against wall, melancholy, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2p1QjX4VPY21YQ8cAAp8RF_9FsPGCVTxddd86QyaPSZa4WLe38XDrvRDR1aMKqcW___ajj-1wlEmUICbfhq8uzSImgSYh2lQnRXWSsW5ezlm_FwQVcWh7nvohpjOUW8iu1AjqhcyGy-YbfFM0qJWhJVL4Jlgbi_CkM64N_KU0NRUFiZKIU82zPxhb2Q/s320/girl,%20sitting,against%20wall,%20melancholy,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/girl2c-sitting2cagainst-wall2c-melancholy2c-cel-anime/6433891f872743579069863703afb8be?id=GdbN4%2b6X3IR0UtsKzm70Iw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/girl2c-sitting2cagainst-wall2c-melancholy2c-cel-anime&lt;/a&gt;&lt;br&gt;&lt;br&gt;



&lt;div class=&quot;space&quot;&gt;
middle age, cook, battle action, hyper realism
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUNfUxZRB005_-6FoPpMliJa6M1N_sqgFVb4SwUl400BSrIIWxhs43zJhjzp9LO1lLZAo1I-ibjIvxTnq3-QcwJbOSnl3jJ18qkVOJ-p-mZ5_lCLoWDwy9qOIcaFgelJCN4N8hrFN3f4L-m0YX1Jp7ny3Kq7xqPmOzofNu2VdnnHa6hve4GYaiJZ6Jfg/s297/middle%20age,%20cook,%20battle%20action,%20hyper%20realism.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;middle age, cook, battle action, hyper realism&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUNfUxZRB005_-6FoPpMliJa6M1N_sqgFVb4SwUl400BSrIIWxhs43zJhjzp9LO1lLZAo1I-ibjIvxTnq3-QcwJbOSnl3jJ18qkVOJ-p-mZ5_lCLoWDwy9qOIcaFgelJCN4N8hrFN3f4L-m0YX1Jp7ny3Kq7xqPmOzofNu2VdnnHa6hve4GYaiJZ6Jfg/s320/middle%20age,%20cook,%20battle%20action,%20hyper%20realism.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/middle-age2c-cook2c-battle-action2c-hyper-realism/64338e05a0384ede8778479ee9b9edf6?id=66av8t88LMCfKtTkLC3pSA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/middle-age2c-cook2c-battle-action2c-hyper-realis&lt;/a&gt;&lt;br&gt;&lt;br&gt;



&lt;div class=&quot;space&quot;&gt;
a girl, goat horn, white hair, red eyes, business black suit, sit in a chair, cross-legged, drinking red wine, cel anime, highquality
&lt;/div&gt;


&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTR3M45TkR2XUdCYdq0Z3OEMKJK0Fbq8UKRpDohwrMhlrpb5hJUVs7_SuMYmdY-2ID7saeWvcCXZDrtbkdnyT5o-jv0xNGwQJlld3g6QtdxkEeFaRddOfBVXj2gnx1-cwy1IGztMKg14VxJ5mpSPOS1_86hm-oiXoRhseE2BUxfXMwpetSYr7B0pJJpw/s297/a%20girl,%20goat%20horn,%20white%20hair,%20red%20eyes,%20business%20black%20suit,%20sit%20in%20a%20chair,%20cross-legged,%20drinking%20red%20wine,%20cel%20anime,%20highquality.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;a girl, goat horn, white hair, red eyes, business black suit, sit in a chair, cross-legged, drinking red wine, cel anime, highquality&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTR3M45TkR2XUdCYdq0Z3OEMKJK0Fbq8UKRpDohwrMhlrpb5hJUVs7_SuMYmdY-2ID7saeWvcCXZDrtbkdnyT5o-jv0xNGwQJlld3g6QtdxkEeFaRddOfBVXj2gnx1-cwy1IGztMKg14VxJ5mpSPOS1_86hm-oiXoRhseE2BUxfXMwpetSYr7B0pJJpw/s320/a%20girl,%20goat%20horn,%20white%20hair,%20red%20eyes,%20business%20black%20suit,%20sit%20in%20a%20chair,%20cross-legged,%20drinking%20red%20wine,%20cel%20anime,%20highquality.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-goat-horn2c-white-hair2c-red-eyes2c-business-/641f09121abf4a159721f0b1b47cd517?id=mdZYA4uyV2XTlrbnS%2fVf4Q%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-goat-horn2c-white-hair2c-red-eyes2c-business-&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;ポーズ：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;sitting,against wall&lt;/td&gt;
        &lt;td&gt;壁にもたれかかる&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;hands up&lt;/td&gt;
        &lt;td&gt;手を挙げる&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;action&lt;/td&gt;
        &lt;td&gt;アクション&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;battle action&lt;/td&gt;
        &lt;td&gt;バトルアクション&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;dynamic action&lt;/td&gt;
        &lt;td&gt;ダイナミックなアクション&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;from side&lt;/td&gt;
        &lt;td&gt;横向き&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cook&lt;/td&gt;
        &lt;td&gt;料理&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;looking up&lt;/td&gt;
        &lt;td&gt;見上げる&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;covering eyes&lt;/td&gt;
        &lt;td&gt;手で両目を覆う&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cross-legged&lt;/td&gt;
        &lt;td&gt;足を組む&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;sit in a chair&lt;/td&gt;
        &lt;td&gt;椅子に座る&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;ride on XXXX&lt;/td&gt;
        &lt;td&gt;XXXXに乗る。馬、バイク、ドラゴンなど&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
足を組んだり手を見せるようなポーズは崩れやすい。かなり数をこなす必要がある。

&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;clothes&quot;&gt;服装、装飾&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
woman, white short hair, red eyes, goat ears, stand up, business suit, loafers, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDPjYTc6nw918-ySfFNsYO-NMs4Eg2drzN-54GASlmEBtIvCEMrTetYQae-4gHYLLLqQoz81oRVfkENJhmkfIDBtJgTVmQGRndda3qHmfkqTw8r0WDr_Hparh6jB87ulIwiAlu4-KXbBc22vEVlDSfsj7vfLbWrqqYBERomPXVrhYDDr6eAS9JhGCR1g/s297/woman,%20white%20short%20hair,%20red%20eyes,%20goat%20ears,%20stand%20up,%20business%20suit,%20loafers,%20cel%20anime.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;woman, white short hair, red eyes, goat ears, stand up, business suit, loafers, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDPjYTc6nw918-ySfFNsYO-NMs4Eg2drzN-54GASlmEBtIvCEMrTetYQae-4gHYLLLqQoz81oRVfkENJhmkfIDBtJgTVmQGRndda3qHmfkqTw8r0WDr_Hparh6jB87ulIwiAlu4-KXbBc22vEVlDSfsj7vfLbWrqqYBERomPXVrhYDDr6eAS9JhGCR1g/s320/woman,%20white%20short%20hair,%20red%20eyes,%20goat%20ears,%20stand%20up,%20business%20suit,%20loafers,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/woman2c-white-short-hair2c-red-eyes2c-goat-ears2c-stan/6433a4bf3997440191abaa4ba65175bc?id=IzWp%2bh6HAwtNKcndmDf0Dg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/woman2c-white-short-hair2c-red-eyes2c-goat-ears2c-sta&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
old age, butler, wearing glasses, cel anime, concept art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLfuG5WCFEmACRCiDvomlIRevacwZAVbxHsI_WwhFMFF9b8onTFXpQo3M4zWfjvsk-BkWOZcku9WxFR5ZAIM7wecd5X5vJVDyUNk1exeO9mRO_twubqSW-3F8WpLzBUYc7A40lj3TlzL7srWIowLUvCmC5548AukGM3SyROuty3uz48fve5iqgi0zYKQ/s297/old%20age,%20butler,%20wearing%20glasses,%20cel%20anime,%20concept%20art.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;old age, butler, wearing glasses, cel anime, concept art&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLfuG5WCFEmACRCiDvomlIRevacwZAVbxHsI_WwhFMFF9b8onTFXpQo3M4zWfjvsk-BkWOZcku9WxFR5ZAIM7wecd5X5vJVDyUNk1exeO9mRO_twubqSW-3F8WpLzBUYc7A40lj3TlzL7srWIowLUvCmC5548AukGM3SyROuty3uz48fve5iqgi0zYKQ/s320/old%20age,%20butler,%20wearing%20glasses,%20cel%20anime,%20concept%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;


&lt;a href=&quot;https://www.bing.com/images/create/old-age2c-butler2c-wearing-glasses2c-cel-anime2c-conce/6433adc2731f42bf99bf7ea2ab396191?id=k1ScnkGOUC%2fqGUuEs5oakA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/old-age2c-butler2c-wearing-glasses2c-cel-anime2c-conce&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;服装、装飾：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;business suit&lt;/td&gt;
        &lt;td&gt;ビジネススーツ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;maid&lt;/td&gt;
        &lt;td&gt;メイド服&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;one piece dress&lt;/td&gt;
        &lt;td&gt;ワンピース&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;military&lt;/td&gt;
        &lt;td&gt;ミリタリー、軍服&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;pumps&lt;/td&gt;
        &lt;td&gt;パンプス(ヒールあり)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;loafers&lt;/td&gt;
        &lt;td&gt;ローファー(ヒールなし)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;boots&lt;/td&gt;
        &lt;td&gt;ブーツ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;nun&lt;/td&gt;
        &lt;td&gt;修道女&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;nurse&lt;/td&gt;
        &lt;td&gt;ナース&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;butler&lt;/td&gt;
        &lt;td&gt;執事&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;wearing glasses&lt;/td&gt;
        &lt;td&gt;眼鏡&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;holding an umbrella&lt;/td&gt;
        &lt;td&gt;傘を持つ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;wearing armor&lt;/td&gt;
        &lt;td&gt;鎧&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;wearing armor&lt;/td&gt;
        &lt;td&gt;鎧&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;feather helmet&lt;/td&gt;
        &lt;td&gt;羽つきヘルメット&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;feathered cap&lt;/td&gt;
        &lt;td&gt;羽つき帽&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;silk hat&lt;/td&gt;
        &lt;td&gt;シルクハット&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;blindfold&lt;/td&gt;
        &lt;td&gt;目隠し&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;hair over one eye&lt;/td&gt;
        &lt;td&gt;メカクレ(片側)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;covering eyes&lt;/td&gt;
        &lt;td&gt;手で両目を覆う&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;
眼鏡、服、靴などで動詞を入れる必要はあまりない。
&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;camera&quot;&gt;画角、カメラ、視点&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

靴を入れると全体を表示出力してくれたりするがもう少し明示的に出力したい場合は視点を設定する。


&lt;div class=&quot;space&quot;&gt;
girl, white short hair, black dress, Over-the-shoulder shot, cel anime, concept art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsZeN4O0DyYPpAy-U0FdZGaZ45tbbElnj-V_ccHePfyt90qxqCDWfEd9LXBW9AldHYii-2tzN4uzbT_GtvS1IxAjbsK7OLe7uUjX0QNsX6yb4k4iSQ777mq1ig9Q7njUq9QhW2EqpboHx3xDbeN4p2R5F6gcz5w-Eu9gW8kRBdq1Om1wrhgq1rN56Ttg/s297/girl,%20white%20short%20hair,%20black%20dress,%20Over-the-shoulder%20shot,%20cel%20anime,%20concept%20art.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsZeN4O0DyYPpAy-U0FdZGaZ45tbbElnj-V_ccHePfyt90qxqCDWfEd9LXBW9AldHYii-2tzN4uzbT_GtvS1IxAjbsK7OLe7uUjX0QNsX6yb4k4iSQ777mq1ig9Q7njUq9QhW2EqpboHx3xDbeN4p2R5F6gcz5w-Eu9gW8kRBdq1Om1wrhgq1rN56Ttg/s320/girl,%20white%20short%20hair,%20black%20dress,%20Over-the-shoulder%20shot,%20cel%20anime,%20concept%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;


&lt;a href=&quot;https://www.bing.com/images/create/girl2c-white-short-hair2c-black-dress2c-over-the-shou/6433dab0613c4d09ab1674df54223c0d?&lt;br&gt;id=iLmc4vJVyQ2HvUxb8dCOGA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/girl2c-white-short-hair2c-black-dress2c-over-the-shou&lt;/a&gt;&lt;br&gt;


&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;画角、カメラ、視点：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Close-up shot&lt;/td&gt;
        &lt;td&gt;近接ショット&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;dynamic angle&lt;/td&gt;
        &lt;td&gt;ダイナミックな視点&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;back shot&lt;/td&gt;
        &lt;td&gt;背面&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;side shot&lt;/td&gt;
        &lt;td&gt;横からのアングル&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Full body shot&lt;/td&gt;
        &lt;td&gt;全身&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;extreme long shot&lt;/td&gt;
        &lt;td&gt;超望遠。それほどエクストリームではない。&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;low angle&lt;/td&gt;
        &lt;td&gt;下からのアングル&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;overhead view&lt;/td&gt;
        &lt;td&gt;上からのアングル&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;over-the-shoulder shot&lt;/td&gt;
        &lt;td&gt;肩越しに覗き込むようなアングル&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;fisheye&lt;/td&gt;
        &lt;td&gt;魚眼効果&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;situation&quot;&gt;シチュエーション&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
girl, white short hair, heaven, cel anime, concept art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW7SYQ5G9vsin2v0M4LePCUfk7h6Wx_igZmiPfANpReI-zBXCsFWlj1bfMnzJvV0GFQvbte2uzm483HSpMIUnaWtziwgCTiwy_xYot863AqP0H7YziEypuGUzfRiSR5BMR5sIxn_UJrREW2472_ZN4vUMw-ZKCO2Px37ppAmBIlzqN_eHl-PBfYCmozQ/s297/girl,%20white%20short%20hair,%20heaven,%20cel%20anime,%20concept%20art.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;girl, white short hair, heaven, cel anime, concept art&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW7SYQ5G9vsin2v0M4LePCUfk7h6Wx_igZmiPfANpReI-zBXCsFWlj1bfMnzJvV0GFQvbte2uzm483HSpMIUnaWtziwgCTiwy_xYot863AqP0H7YziEypuGUzfRiSR5BMR5sIxn_UJrREW2472_ZN4vUMw-ZKCO2Px37ppAmBIlzqN_eHl-PBfYCmozQ/s320/girl,%20white%20short%20hair,%20heaven,%20cel%20anime,%20concept%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;


&lt;a href=&quot;https://www.bing.com/images/create/girl2c-white-short-hair2c-heaven2c-cel-anime2c-concept/6433e4737c8646c88ee3241f4c0d7778?id=3OHk81WiLtOmzsjRLu3TYA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/girl2c-white-short-hair2c-heaven2c-cel-anime2c-concept-art&lt;/a&gt;&lt;br&gt;&lt;br&gt;



&lt;div class=&quot;space&quot;&gt;
girl, white short hair, hell, cel anime, concept art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU2ZUYde8nvlhwEfStUkiSVcVOPi3sX48P7Exsbp0cApOQ6afM7mCnvY-m9DePR3RNBwFJdntnc3blh9BNvChv_1H9sUHJr80GGqzSyzpelpI-zmOLtIfCfjoebsR759tF80sPKhlw6Wr4tMG34hQmDUVTuLPiIETWFq_LJnEWVThwOLDiVlFHAiEtyQ/s297/girl,%20white%20short%20hair,%20hell,%20cel%20anime,%20concept%20art.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;girl, white short hair, hell, cel anime, concept art&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU2ZUYde8nvlhwEfStUkiSVcVOPi3sX48P7Exsbp0cApOQ6afM7mCnvY-m9DePR3RNBwFJdntnc3blh9BNvChv_1H9sUHJr80GGqzSyzpelpI-zmOLtIfCfjoebsR759tF80sPKhlw6Wr4tMG34hQmDUVTuLPiIETWFq_LJnEWVThwOLDiVlFHAiEtyQ/s320/girl,%20white%20short%20hair,%20hell,%20cel%20anime,%20concept%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;a href=&quot;https://www.bing.com/images/create/girl2c-white-short-hair2c-hell2c-cel-anime2c-concept-a/6433e4cb08f24c8ca6b7f95292a48c5f?id=LwmEVX201BpznxauXbMZMQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/girl2c-white-short-hair2c-hell2c-cel-anime2c-concept-art&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;シチュエーション：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;cyberpank&lt;/td&gt;
        &lt;td&gt;サイバーパンク&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;fantasy&lt;/td&gt;
        &lt;td&gt;ファンタジー&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;SF&lt;/td&gt;
        &lt;td&gt;SF&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;post-apocalypse&lt;/td&gt;
        &lt;td&gt;文明が途絶えたあとの世界&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;future&lt;/td&gt;
        &lt;td&gt;未来&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;heaven&lt;/td&gt;
        &lt;td&gt;天国&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;hell&lt;/td&gt;
        &lt;td&gt;地獄&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;background&quot;&gt;背景&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
人物のプロンプトを除外するとただの背景になる。
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
girl, white short hair, Medieval fantasy indoors, cel anime, concept art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_gMq_VmTAW05RbPUWKmrpLe5DHpDPsmKc-55D_ONsEA7x6rUcE_FJgykGakRChEJzmUXiy7darzVw6IvOzIqTAWIR0hBkLa8RFjP0pmF2S-Crt7Rmtnl7EFiewmpgMWCWxl--wCPQuGYdsWXUw7_LtHN8IK1-agxgjGNZDG66JjHVgFBlnR2YH6qoeQ/s297/girl,%20white%20short%20hair,%20Medieval%20fantasy%20indoors,%20cel%20anime,%20concept%20art.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;girl, white short hair, Medieval fantasy indoors, cel anime, concept art&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_gMq_VmTAW05RbPUWKmrpLe5DHpDPsmKc-55D_ONsEA7x6rUcE_FJgykGakRChEJzmUXiy7darzVw6IvOzIqTAWIR0hBkLa8RFjP0pmF2S-Crt7Rmtnl7EFiewmpgMWCWxl--wCPQuGYdsWXUw7_LtHN8IK1-agxgjGNZDG66JjHVgFBlnR2YH6qoeQ/s320/girl,%20white%20short%20hair,%20Medieval%20fantasy%20indoors,%20cel%20anime,%20concept%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/girl2c-white-short-hair2c-medieval-fantasy-indoors2c-/6433eff335134b5a8bd6ee2c146db1e1?id=Hu2NBiwqF4j18S%2butiUAew%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/girl2c-white-short-hair2c-medieval-fantasy-indoors2c&lt;/a&gt;&lt;br&gt;&lt;br&gt;



&lt;div class=&quot;space&quot;&gt;
Medieval fantasy indoors, cel anime, concept art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcAkw1n4ZbrAU2kaUCAbGVg6Mkm2AIrqo6k3g6FWkWEKArjgsdu5PKOyapmmaMJRJxY6tUWwWZ5lcDvhlZbhDaH78MB6c2wzCxaR13E4_mIEJWskGFVqEzEixn7ADbtfQ9dGFWiiKurjNZKFukJQ1z3lglFUFeLENGTJSMc47GpbqA57_6bNpYINPIpA/s297/Medieval%20fantasy%20indoors,%20cel%20anime,%20concept%20art.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;Medieval fantasy indoors, cel anime, concept art&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcAkw1n4ZbrAU2kaUCAbGVg6Mkm2AIrqo6k3g6FWkWEKArjgsdu5PKOyapmmaMJRJxY6tUWwWZ5lcDvhlZbhDaH78MB6c2wzCxaR13E4_mIEJWskGFVqEzEixn7ADbtfQ9dGFWiiKurjNZKFukJQ1z3lglFUFeLENGTJSMc47GpbqA57_6bNpYINPIpA/s320/Medieval%20fantasy%20indoors,%20cel%20anime,%20concept%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;


&lt;a href=&quot;https://www.bing.com/images/create/medieval-fantasy-indoors2c-cel-anime2c-concept-art/6433f2813d73461c94c823243b4f464d?id=DHkALv051omBlNg76O1jUw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/medieval-fantasy-indoors2c-cel-anime2c-concept-art&lt;/a&gt;&lt;br&gt;&lt;br&gt;




&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;背景：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;background [Color]&lt;/td&gt;
        &lt;td&gt;任意の単一色で指定できる&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;background [pattern]&lt;/td&gt;
        &lt;td&gt;Dot, Stripe, Checkerなど。background pink dotのように色も指定可能&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;space&lt;/td&gt;
        &lt;td&gt;宇宙&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;moon&lt;/td&gt;
        &lt;td&gt;月&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;star&lt;/td&gt;
        &lt;td&gt;星&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;sky&lt;/td&gt;
        &lt;td&gt;空&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;forest&lt;/td&gt;
        &lt;td&gt;森&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;futuristic city background&lt;/td&gt;
        &lt;td&gt;未来都市&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;ruined city&lt;/td&gt;
        &lt;td&gt;廃墟&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;fantasy town&lt;/td&gt;
        &lt;td&gt;ファンタジーの街並み&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Medieval fantasy indoors&lt;/td&gt;
        &lt;td&gt;中世風ファンタジーの屋内&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;aurora&lt;/td&gt;
        &lt;td&gt;オーロラ&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;air castle&lt;/td&gt;
        &lt;td&gt;空に浮かぶ城&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;option&quot;&gt;その他オプション等&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;



&lt;table class=&quot;prompt&quot;&gt;
    &lt;caption&gt;その他オプション等：プロンプト例&lt;/caption&gt;
    &lt;tr&gt;
        &lt;th&gt;キーワード&lt;/th&gt;
        &lt;th&gt;意味、出力&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;daydream&lt;/td&gt;
        &lt;td&gt;空想&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;imagination&lt;/td&gt;
        &lt;td&gt;イマジネーション、有無で雰囲気が変わる&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;fantasy&lt;/td&gt;
        &lt;td&gt;ファンタジー&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;SF&lt;/td&gt;
        &lt;td&gt;SF&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;post-apocalypse&lt;/td&gt;
        &lt;td&gt;文明が途絶えたあとの世界&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;future&lt;/td&gt;
        &lt;td&gt;未来&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
boy,standing, glass, school uniform, beautiful detailed eyes, good looking,cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjrWUAXgMg-eDeIbUPUkiBIpSZAJ-S2nPIPPT_khm4bNzpi-nz8KAbpxkCtF4JKBKd4iN2GxtOK1bGjI2vuLeuhm1v_qtfXslgVc4j_Q1Oarlmr3UDwOz8OIdyBbX245rnEF4IEGL2rpHDkK0oY2AUoxRW1E3dyc7TOHoL74VdCHw9PJgdh6Ls9AMx-Q/s297/boy,standing,%20glass,%20school%20uniform,%20beautiful%20detailed%20eyes,%20good%20looking,cel%20anime.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjrWUAXgMg-eDeIbUPUkiBIpSZAJ-S2nPIPPT_khm4bNzpi-nz8KAbpxkCtF4JKBKd4iN2GxtOK1bGjI2vuLeuhm1v_qtfXslgVc4j_Q1Oarlmr3UDwOz8OIdyBbX245rnEF4IEGL2rpHDkK0oY2AUoxRW1E3dyc7TOHoL74VdCHw9PJgdh6Ls9AMx-Q/s320/boy,standing,%20glass,%20school%20uniform,%20beautiful%20detailed%20eyes,%20good%20looking,cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;a href=&quot;https://www.bing.com/images/create/boy2cstanding2c-glass2c-school-uniform2c-beautiful-det/64357522ed604eb59e75acea54573232?id=SSODZqckrN1YUJfWf1X14Q%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/boy2cstanding2c-glass2c-school-uniform2c-beautiful-det&lt;/a&gt;&lt;br&gt;&lt;br&gt;

美少年を出力したい場合beautiful detailed eyesといった指定をするといい。&lt;br&gt;&lt;br&gt;&lt;br&gt;



&lt;div class=&quot;space&quot;&gt;
old age, battlefield, combat, gun action, dynamic angle, cool, good looking, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgNldJfaSeyKa2uok3eFpRWIlZLhyuN53hEy0YlDtmXIAOR8chHNaR-mZZrqeSwTkjc0UibFi1L8dTj0Hj41fm_fM7xX7SxrH8uvMj8_AU8dYH8r5BQSS9T5I3fT4hVEsKipudseaUIEaKXZSB3hjxNoz4Qpdg8eIekuyHpy7fayMvHQT7qu7G5z2h0w/s297/old%20age,%20battlefield,%20combat,%20gun%20action,%20dynamic%20angle,%20cool,%20good%20looking,%20cel%20anime.jpg&quot; style=&quot; text-align: center; &quot;&gt;&lt;img alt=&quot;old age, battlefield, combat, gun action, dynamic angle, cool, good looking, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgNldJfaSeyKa2uok3eFpRWIlZLhyuN53hEy0YlDtmXIAOR8chHNaR-mZZrqeSwTkjc0UibFi1L8dTj0Hj41fm_fM7xX7SxrH8uvMj8_AU8dYH8r5BQSS9T5I3fT4hVEsKipudseaUIEaKXZSB3hjxNoz4Qpdg8eIekuyHpy7fayMvHQT7qu7G5z2h0w/s320/old%20age,%20battlefield,%20combat,%20gun%20action,%20dynamic%20angle,%20cool,%20good%20looking,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;a href=&quot;https://www.bing.com/images/create/old-age2c-battlefield2c-combat2c-gun-action2c-dynamic-/6422638e65094fc389f404d171e5efe2?id=qScy9g1fRuMyl%2fHDcacnRg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/old-age2c-battlefield2c-combat2c-gun-action2c-dynamic-&lt;/a&gt;&lt;br&gt;&lt;br&gt;

&lt;br&gt;
自由度が少し低く、画像にマークが入るのでBing Image Creatorは微妙に使いにくい。&lt;br&gt;
グラボを手に入れたので今後は自前でやろうと思う。&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2 id=&quot;referernce&quot;&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;

&lt;a href=&quot;https://openai.com/product/dall-e-2&quot; target=&quot;_blank&quot;&gt;https://openai.com/product/dall-e-2&lt;/a&gt;&lt;br&gt;
dalle2のprompt情報。英語。&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;https://dallery.gallery/the-dalle-2-prompt-book/&quot; target=&quot;_blank&quot;&gt;https://dallery.gallery/the-dalle-2-prompt-book/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://ishikawatsukasa.com/chat/web/4589/&quot; target=&quot;_blank&quot;&gt;https://ishikawatsukasa.com/chat/web/4589/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://blogcake.net/stable-diffusion-prompt/&quot; target=&quot;_blank&quot;&gt;https://blogcake.net/stable-diffusion-prompt/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://note.com/s41t0h/n/n2d5915198c36&quot; target=&quot;_blank&quot;&gt;https://note.com/s41t0h/n/n2d5915198c36&lt;/a&gt;&lt;br&gt;&lt;br&gt;

</description><link>http://trueman-developer.blogspot.com/2023/05/ai-bing-image-creatordall-e.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRbK0vCYyRUKWDK1_RVzfhnYbv-5sYMwGNAJRBRNSbJ3hq8tQZCk889uSUZw1Tkw8pU_pLUR10W5COHvmVzijnuQpVD_tRdWS2oy_UXgXx7erXhWCP0daijwiUL9QdsaIht2u0YAkdGoa_todvKQxrp7K8-VOwuWMkqpQilewucBKHmfjbLdz5K20Z6A/s72-c/cat%20girl1.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-547810662144166991</guid><pubDate>Wed, 19 Apr 2023 13:48:00 +0000</pubDate><atom:updated>2023-04-19T22:48:43.991+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>Bardが日本でも使用できるようになったのでBing,ChatGPTと比較してみる</title><description>大きく変わらないが性能的にはまだ使えないといったところ。
&lt;br&gt;&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;Bardへのアクセス方法&lt;/h2&gt;
&lt;hr /&gt;
 

以下より&lt;br&gt;
&lt;a href=&quot;https://bard.google.com/&quot; target=&quot;_blank&quot;&gt;https://bard.google.com/&lt;/a&gt;&lt;br&gt;
waitlistへ参加してから5分程度で使用できるようになるらしい。遅くとも6時間後に再アクセスしたときは利用できるようになっていた。&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;Bing,Bard,ChatGPTの比較表&lt;/h2&gt;
&lt;hr /&gt;
 
&lt;br&gt;

&lt;style&gt;
  .prompt {
    width: 100%;
    border-spacing: 0;
  }
  .prompt tr:first-of-type th:last-of-type {
    border-right: none;
  }
  .prompt th {
    border-bottom: 1px solid #666;
    border-right: 1px solid #666;
    min-width: 5rem;
  }
  .prompt td:last-of-type {
    border-right: none;
  }
  .prompt td {
    border-right: 1px solid #666;
    border-bottom: 1px solid #666;
    font-size: 1rem;
    padding: 0.5rem;
    width: 33%;
  }
&lt;/style&gt;
&lt;table class=&quot;prompt&quot;&gt;
    &lt;tr&gt;
        &lt;th&gt;&lt;/th&gt;
        &lt;th&gt;Bing&lt;/th&gt;
        &lt;th&gt;ChatGPT(3.5)&lt;/th&gt;
        &lt;th&gt;Bard&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;日本語対応&lt;/th&gt;
        &lt;td&gt;OK&lt;/td&gt;
        &lt;td&gt;OK&lt;/td&gt;
        &lt;td&gt;今は出来ない&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;履歴&lt;/th&gt;
        &lt;td&gt;残らない&lt;/td&gt;
        &lt;td&gt;以前の状態から再開可能&lt;/td&gt;
        &lt;td&gt;残る&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;性能&lt;/th&gt;
        &lt;td&gt;ChatGPT4相当&lt;/td&gt;
        &lt;td&gt;&lt;/td&gt;
        &lt;td&gt;現状ChatGPTより劣る&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;最新情報&lt;/th&gt;
        &lt;td&gt;○&lt;/td&gt;
        &lt;td&gt;×&lt;/td&gt;
        &lt;td&gt;○&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;ブラウザ&lt;/th&gt;
        &lt;td&gt;Edgeのみ&lt;/td&gt;
        &lt;td&gt;なんでも&lt;/td&gt;
        &lt;td&gt;なんでも&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;特徴&lt;/th&gt;
        &lt;td&gt;相対的に普通&lt;/td&gt;
        &lt;td&gt;遅め、負荷が高いときはさらに遅く回答が返ってこないケースも。&lt;/td&gt;
        &lt;td&gt;速い。性能が上がると遅くなるかも。&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;特徴&lt;/th&gt;
        &lt;td&gt;独創性、バランス、厳密など回答に指向性を待たせることが可能。ブラウザの右上Bingアイコンからいつでも呼び出し可能。&lt;/td&gt;
        &lt;td&gt;プラグインで拡張可能。APIが利用可能&lt;/td&gt;
        &lt;td&gt;回答結果が3パターン確認できる&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;悪いところ&lt;/th&gt;
        &lt;td&gt;UXが最悪&lt;/td&gt;
        &lt;td&gt;最新の情報に対応していない&lt;/td&gt;
        &lt;td&gt;性能がまだChatGPTに追いついていない&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;実際に質問して比較してみる&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;h3&gt;SQLについて教えて&lt;/h3&gt;

質問文
&lt;div class=&quot;space&quot;&gt;
Please tell me about the following SQL
SELECT
  products.id as product_id
  , products.name as product_name
  , class_categories.name as category_name
FROM
  products
INNER JOIN class_categories 
    ON products.class_category_id = class_categories.id 
WHERE
  products.id = :product_id
ORDER BY
  products.id;
&lt;/div&gt;

回答は割愛。&lt;br&gt;
どれも大きな違いは見られなかった。簡潔に説明した後にそれぞれ構文について詳細を説明してくれる。&lt;br&gt;
複数の回答を返してくれるBardが理解するという点ではいいかもしれない。&lt;br&gt;&lt;br&gt;

&lt;h3&gt;jqueryでcheckboxのイベントを取得する方法は？&lt;/h3&gt;

質問文
&lt;div class=&quot;space&quot;&gt;
How to get checkbox events in jquery?
&lt;/div&gt;

どれも目的は達成できるがChatGPTの回答が一番親切かも。&lt;br&gt;&lt;br&gt;

&lt;h3&gt;VBコードをJavaに変換してください&lt;/h3&gt;

質問文
&lt;pre class=&quot;brush:java&quot;&gt;
Please convert the following VB code to Java.

For i = 1 To 100
    If i Mod 3 = 0 And i Mod 5 = 0 Then
        Console.WriteLine(&quot;FizzBuzz&quot;)
    ElseIf i Mod 3 = 0 Then
        Console.WriteLine(&quot;Fizz&quot;)
    ElseIf i Mod 5 = 0 Then
        Console.WriteLine(&quot;Buzz&quot;)
    Else
        Console.WriteLine(i)
    End If
Next
&lt;/pre&gt;

どれも正しく回答してくれる。&lt;br&gt;
A→Bへの変換はこの手のAIが得意な分野なのかもしれない。&lt;br&gt;
ただしBardは日本語から英語への変換はまだ対応していない。できないというより意図的に弾いてそうな気がする。&lt;br&gt;&lt;br&gt;


&lt;h3&gt;ソフトウェアエンジニアとして目標を立てたい。一般的なものでいいので15個ほど例をあげてください&lt;/h3&gt;


質問文
&lt;div class=&quot;space&quot;&gt;
I want to set goals as a software engineer. Please give me 15 examples, just general ones.
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy9WzBCLPoU924k3bNj_w5DLtbtpMHmygjh_YQVHvgdpHZAy9FJp4o3X6ZbcDf-zI0FSMG8KFZz3i1jp0jLQyq4WkrAvQ7hMaCGnTXCE3jkyaXCsIjNx_A4eR4nvmb2CxVSQBEj6gPWKHPovW0RbYriQANkPVvcGv4_lKqW6Z6q68a5YCAu-y5PvhrAw/s1128/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-04-19%2022.34.11.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;I want to set goals as a software engineer. Please give me 15 examples, just general ones.&quot; border=&quot;0&quot; width=&quot;600&quot; data-original-height=&quot;917&quot; data-original-width=&quot;1128&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy9WzBCLPoU924k3bNj_w5DLtbtpMHmygjh_YQVHvgdpHZAy9FJp4o3X6ZbcDf-zI0FSMG8KFZz3i1jp0jLQyq4WkrAvQ7hMaCGnTXCE3jkyaXCsIjNx_A4eR4nvmb2CxVSQBEj6gPWKHPovW0RbYriQANkPVvcGv4_lKqW6Z6q68a5YCAu-y5PvhrAw/s600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-04-19%2022.34.11.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

Bardは他と比べて少し踏み込んで具体的なアクションも提示してくれている気がする。&lt;br&gt;&lt;br&gt;

概ねBardでもやりたいことができそう。ただし性能が上がって日本語対応されるまで出番はない。&lt;br&gt;
&lt;br&gt;
Bingの場合スクロールしたら意図せず検索結果が表示されたり変換中のエンターで送信されたり微妙にアクセスが悪かったりサイドバーからの呼び出しからだと微妙に狭かったりと使い勝手が悪いのでBardが日本語に対応すれば基本ChatGPTかBardを使うといった形になりそうな気がする。

&lt;br&gt;&lt;br&gt;&lt;br&gt;</description><link>http://trueman-developer.blogspot.com/2023/04/bardbingchatgpt.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy9WzBCLPoU924k3bNj_w5DLtbtpMHmygjh_YQVHvgdpHZAy9FJp4o3X6ZbcDf-zI0FSMG8KFZz3i1jp0jLQyq4WkrAvQ7hMaCGnTXCE3jkyaXCsIjNx_A4eR4nvmb2CxVSQBEj6gPWKHPovW0RbYriQANkPVvcGv4_lKqW6Z6q68a5YCAu-y5PvhrAw/s72-c/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202023-04-19%2022.34.11.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-3792144839579763142</guid><pubDate>Wed, 22 Mar 2023 11:34:00 +0000</pubDate><atom:updated>2023-04-04T14:46:10.527+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>新しいBingの画像生成機能Bing Image Creatorを試してみる。使い方と出力例</title><description>
仕事なんかしている場合じゃない。&lt;br&gt;&lt;br&gt;


&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;概要＆利用方法&lt;/h2&gt;
&lt;hr /&gt;


テキストからいい感じの画像を生成してくれるアプリケーション。&lt;br&gt;
Bing Chatからあるいは専用のサイトから利用できる。&lt;br&gt;
&lt;br&gt;
Bingプレビューの参加ユーザーはすでに以下のリンクから利用可能になっている。
&lt;a href=&quot;https://www.bing.com/images/create&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;

プレビュー参加は以下から&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/new&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/new&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
具体的な手順については前回まとめたものがある。&lt;br&gt;
&lt;a href=&quot;https://trueman-developer.blogspot.com/2023/02/chatgptchatgptbing.html&quot; target=&quot;_blank&quot;&gt;https://trueman-developer.blogspot.com/2023/02/chatgptchatgptbing.html&lt;/a&gt;&lt;br&gt;
今は殆ど時間をかけずにプレビューに参加できるらしい。&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2&gt;Bing Image Creatorの特徴&lt;/h2&gt;
&lt;hr /&gt;


&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;新Bingへのプレビューへアクセスできるなら即使える&lt;/li&gt;
&lt;li&gt;画像とPromptの例が見れる&lt;/li&gt;
&lt;li&gt;生成される画像は1024*1024のjpg画像&lt;/li&gt;
&lt;li&gt;破綻が少ない&lt;/li&gt;
&lt;li&gt;1週間あたりn回まで高速で生成可能なブーストがある（2023/03/22時点で25回）
生成時間はブーストありで1分。なしで10〜20分※&lt;/li&gt;
&lt;li&gt;ブーストはMSのポイントを利用して追加可能。500リワードにつき5ブースト&lt;/li&gt;
&lt;li&gt;センシティブ判定は結構厳しい上にブーストが消費される&lt;/li&gt;
&lt;li&gt;非商用利用のみOK.商用NG？&lt;/li&gt;
&lt;li&gt;画像左下にBingマークが付く&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;

※公開直後だったためアクセスが集中していたのか時間帯によってブースト無しで20秒くらいのケースもある。

&lt;hr /&gt;
&lt;h2&gt;画像生成例&lt;/h2&gt;
&lt;hr /&gt;

試しに100枚以上生成してみたが、絵として見られないレベルで破綻している画像はなかった（手が崩れていたりはする）&lt;br&gt;
※いろいろ試してみて分かったが属性を盛りすぎると徐々に崩れていく。特に人物はシンプルなプロンプトのほうが良いようだ。
&lt;br&gt;&lt;br&gt;


&lt;a href=&quot;https://www.bing.com/images/create&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create&lt;/a&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBQPtFpNK0i7Xt9E-m6zPF94wNtfgmAfWKU7n5QWT6hnxa7tiaRZ_g5GhsnT6MAXE4cWsGkBWx0fCZlahqoIzSBSzizdEUHX_gEdfFU_we0UKzxFOnU1C-2MQ2zgihhAzKs9a1Wl8vA47TA1bawg5eQ0LAsrcBJTowQJSBbUwfJF16kucbV5dYrLnUnQ/s1269/Web%20%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3_22-3-2023_114852_www.bing.com.jpeg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;815&quot; data-original-width=&quot;1269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBQPtFpNK0i7Xt9E-m6zPF94wNtfgmAfWKU7n5QWT6hnxa7tiaRZ_g5GhsnT6MAXE4cWsGkBWx0fCZlahqoIzSBSzizdEUHX_gEdfFU_we0UKzxFOnU1C-2MQ2zgihhAzKs9a1Wl8vA47TA1bawg5eQ0LAsrcBJTowQJSBbUwfJF16kucbV5dYrLnUnQ/s320/Web%20%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3_22-3-2023_114852_www.bing.com.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

まず『お任せで探す』を試してみる。&lt;br&gt;
『お任せで探す』クリックで入力欄に例が入ってくる。&lt;br&gt;
良さそうなキーワードを見つけたら『作成』&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
neon living room from the future, Scandinavian design
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgniVRV72kLGDRhEaL6WMFepwaSDiFyJRba3M4uAVXeKtaCZPGCxs6wSdxqUuOf89T4iG3jTDwCjsD-PDn6eEI2NSKRjej13vybO9ViiTSp9seabYlCTa3ItJQQcxtZRoYuQaKijN8FEGByW-xGz7TZrNcjJLhs5gAz5riOt0Axi8v7wpSL42FIyGozmQ/s297/neon%20living%20room%20from%20the%20future,%20Scandinavian%20design.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator neon living room from the future, Scandinavian design&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgniVRV72kLGDRhEaL6WMFepwaSDiFyJRba3M4uAVXeKtaCZPGCxs6wSdxqUuOf89T4iG3jTDwCjsD-PDn6eEI2NSKRjej13vybO9ViiTSp9seabYlCTa3ItJQQcxtZRoYuQaKijN8FEGByW-xGz7TZrNcjJLhs5gAz5riOt0Axi8v7wpSL42FIyGozmQ/s400/neon%20living%20room%20from%20the%20future,%20Scandinavian%20design.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/neon-living-room-from-the-future2c-scandinavian-des/641a76f158074aec850ab6e665c27375?id=khyOAJg9HWIJd00SoyCQHw%3d%3d&amp;view=detailv2&amp;idpp=genimg&amp;FORM=GCRIDP&amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/neon-living-room-from-the-future2c-scandinavian-des&lt;/a&gt;&lt;br&gt;
あれ？なんだか微妙かも？？&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
robot holding an umbrella in the rain, ink drawing
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwjEMeGy9qlMyk_VyqyJsrJR-KhlBHEcRVKR8V7mnQpP_O9uS1QfyoovdyV_dt449Jn0HY0_dHRc7ZPlvL1a7Ia8KQseEVqF_s0No_xu6Mzt2h0GqMk4lNwrsThI15HzXF9MiKrcc8KyhKWMPJoP-pdmWuA1WtKy4nAu3CiR2Vpwlm6-A5zWVsLTRhmw/s297/robot%20holding%20an%20umbrella%20in%20the%20rain,%20ink%20drawing.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator robot holding an umbrella in the rain, ink drawing&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwjEMeGy9qlMyk_VyqyJsrJR-KhlBHEcRVKR8V7mnQpP_O9uS1QfyoovdyV_dt449Jn0HY0_dHRc7ZPlvL1a7Ia8KQseEVqF_s0No_xu6Mzt2h0GqMk4lNwrsThI15HzXF9MiKrcc8KyhKWMPJoP-pdmWuA1WtKy4nAu3CiR2Vpwlm6-A5zWVsLTRhmw/s320/robot%20holding%20an%20umbrella%20in%20the%20rain,%20ink%20drawing.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/robot-holding-an-umbrella-in-the-rain2c-ink-drawing/641a777f9882421589d164b8604cc419?id=QV2lQTUEqZxyuuPVrU%2bE7A%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot-holding-an-umbrella-in-the-rain2c-ink-drawing&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
イイ感じ。&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
robot holding an umbrella in the rain, ink drawing
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic3TXpOdScQavqr6KTz3QhUXQGrEv6CSXB5szFsVpB4dQKoUzo1p6euTqLjQRcgmc2u6m6FJzHvOCDn9fI1oPYwZgkbym4jUXrWoeIWow2BbR09P5ZKqcRrelBEnx1zs64b5FYhWXo6VosZQ5GP6jb0Mc1CYzbCRXL3qX1nbqvnlbqNbtAukqF4zMOhQ/s297/a%20mechanical%20sphere%20floating%20over%20a%20pink%20desert,%201970%27s%20sci%20fi,%20illustration%20by%20Moebius.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;robot holding an umbrella in the rain, ink drawing&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic3TXpOdScQavqr6KTz3QhUXQGrEv6CSXB5szFsVpB4dQKoUzo1p6euTqLjQRcgmc2u6m6FJzHvOCDn9fI1oPYwZgkbym4jUXrWoeIWow2BbR09P5ZKqcRrelBEnx1zs64b5FYhWXo6VosZQ5GP6jb0Mc1CYzbCRXL3qX1nbqvnlbqNbtAukqF4zMOhQ/s320/a%20mechanical%20sphere%20floating%20over%20a%20pink%20desert,%201970%27s%20sci%20fi,%20illustration%20by%20Moebius.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/a-mechanical-sphere-floating-over-a-pink-desert2c-1/641a78520dbb458fae8f278b9d0a2e74?id=Da9zbTbWe1Iu6Ws0lnRI5Q%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-mechanical-sphere-floating-over-a-pink-desert2c-1&lt;/a&gt;&lt;br&gt;&lt;br&gt;

ここまでがお任せで生成したプロンプト。&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;&lt;br&gt;
以降は他の画像生成AIのプロンプトなどを参考にした趣味7割くらい出力例になる。&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
cool creature, metal texture, concept art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqTwXsP-CqpkU_FsMwYR4yVqrdsOb72qOumjtEhJAhfYBTH3ZlCGowDxIYsWm5ouLhb8IE6rqgHIE1Hj6j_2D9PLR-gFS4ybotRMm-cPDaOFKt0NMKYExAvxUVnhIg0VUZW8fei3GujTEGOQpCwTeSJR_S16QoKsOI9s2WUgt_cJOCoRU-ibYsveEHPw/s297/cool%20creature,%20metal%20texture,%20concept%20art.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator cool creature, metal texture, concept art&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqTwXsP-CqpkU_FsMwYR4yVqrdsOb72qOumjtEhJAhfYBTH3ZlCGowDxIYsWm5ouLhb8IE6rqgHIE1Hj6j_2D9PLR-gFS4ybotRMm-cPDaOFKt0NMKYExAvxUVnhIg0VUZW8fei3GujTEGOQpCwTeSJR_S16QoKsOI9s2WUgt_cJOCoRU-ibYsveEHPw/s320/cool%20creature,%20metal%20texture,%20concept%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;div&gt;
&lt;a href=&quot;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art/641a835022a34a97aeb714394154e05c?id=k84e%2fgwV%2ffQv37%2bGaOQLjQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art/641a835022a34a97aeb714394154e05c?id=LV487fSII1BaK5NM3JM8xg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art2&lt;/a&gt;
&lt;a href=&quot;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art/641a835022a34a97aeb714394154e05c?id=6drVs6kmD7DoFIacENRx%2bA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art3&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art/641a835022a34a97aeb714394154e05c?id=2Y41voVg%2fY2vvdVyDHiPJw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/cool-creature2c-metal-texture2c-concept-art4&lt;/a&gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;

大したプロンプトではないのにこれはちょっとかっこよすぎる。&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
robot, space with moon and stars, concept art, realistic
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinxsXj25cFY4A6RxXClH7TVYttbl_xTXXedTNcVUNokdDUxpt9_mvZ9npdUQbYfCpFZGzAQ6aebueNLzzCE8alGrOG34bzv80hq79KQnKWsWXFHaycpdk77M7PcMWtNSB7lU-Muyszuonr6gMyn7JofNWAVlcxdDRlo60CqVk6PNpwmIx78LgBO0WasQ/s297/robot,%20space%20with%20moon%20and%20stars,%20concept%20art,%20realistic.jpg&quot; style=&quot; padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator robot, space with moon and stars, concept art, realistic&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinxsXj25cFY4A6RxXClH7TVYttbl_xTXXedTNcVUNokdDUxpt9_mvZ9npdUQbYfCpFZGzAQ6aebueNLzzCE8alGrOG34bzv80hq79KQnKWsWXFHaycpdk77M7PcMWtNSB7lU-Muyszuonr6gMyn7JofNWAVlcxdDRlo60CqVk6PNpwmIx78LgBO0WasQ/s320/robot,%20space%20with%20moon%20and%20stars,%20concept%20art,%20realistic.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;div&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-rea/641a7e335f3f4e2bb26061ec57bc7cbe?id=zRod1Fv6Q28d7s%2fzc5dVZQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-rea1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-rea/641a7e335f3f4e2bb26061ec57bc7cbe?id=N9jySS87EVezqhX0EXsfzQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-re2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-rea/641a7e335f3f4e2bb26061ec57bc7cbe?id=kaPTTZ307WMirVA8GVfTNw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-rea3&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-rea/641a7e335f3f4e2bb26061ec57bc7cbe?id=ppbRinztseVqnFYjKXgMWA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot2c-space-with-moon-and-stars2c-concept-art2c-rea4&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;
  
&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
A girl, short hair, Close-up shot, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCK15WKX-fzqcb4qIfg3y045Dqov4_Zfb9CYAcm-3WSVj3Wy3PNpYlRyLZFFm_xSc9MYtonTvsLabNGyaVNnORteFjtNHXjMZ59RgHGJR_K2XNvMQuoAtiqyDCe4-5Ztu9H_1NvBrDmbFaZ-SJJHQNjvswknG9jxsiA8uNSvFbfak4x3WH-hoxtUTUDA/s297/A%20girl,%20short%20hair,%20Close-up%20shot,%20cel%20anime.jpg&quot; style=&quot; padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl, short hair, Close-up shot, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCK15WKX-fzqcb4qIfg3y045Dqov4_Zfb9CYAcm-3WSVj3Wy3PNpYlRyLZFFm_xSc9MYtonTvsLabNGyaVNnORteFjtNHXjMZ59RgHGJR_K2XNvMQuoAtiqyDCe4-5Ztu9H_1NvBrDmbFaZ-SJJHQNjvswknG9jxsiA8uNSvFbfak4x3WH-hoxtUTUDA/s320/A%20girl,%20short%20hair,%20Close-up%20shot,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime/641a840b9d28478d847eeb86ee05a1ff?id=zBACVrjX5il5TNfTfGaIxg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime/641a840b9d28478d847eeb86ee05a1ff?id=9pAa3uxf%2bnOL9XWxpXAj6A%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime/641a840b9d28478d847eeb86ee05a1ff?id=GIn8ccoKweTVAaTjj%2f45AQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime3&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime/641a840b9d28478d847eeb86ee05a1ff?id=RWQiyfQEQw1GzqWmcE%2bYsg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-hair2c-close-up-shot2c-cel-anime4&lt;/a&gt;&lt;br&gt;&lt;br&gt;


日本の漫画、アニメ風の画像はなんとなく無理そうだと思っていたが普通に高クオリティで出力してくれる。&lt;br&gt;
学習データはどこから引っ張ってきているんだろうか？&lt;br&gt;

&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
A girl, short white hair, red eye, dynamic angle, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk95vz8AGw7I2yZUhHmZDM9LYL83bEycdI8-nLcrLTMvinZ5_pf-91SEWj_RTTheKeujmWnp2wxzs2MfD-KxXEoFnh3m4lyXZYDrM9cj1MCsC3SGlFXNogK9DigX6IWERtDC_RLgGL7PI0VMTYaQxe0QH0AqSI4rMiZQcsbRC73i0dTl2eN5NbULKACQ/s297/A%20girl,%20short%20white%20hair,%20red%20eye,%20dynamic%20angle,%20cel%20anime.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl, short white hair, red eye, dynamic angle, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk95vz8AGw7I2yZUhHmZDM9LYL83bEycdI8-nLcrLTMvinZ5_pf-91SEWj_RTTheKeujmWnp2wxzs2MfD-KxXEoFnh3m4lyXZYDrM9cj1MCsC3SGlFXNogK9DigX6IWERtDC_RLgGL7PI0VMTYaQxe0QH0AqSI4rMiZQcsbRC73i0dTl2eN5NbULKACQ/s320/A%20girl,%20short%20white%20hair,%20red%20eye,%20dynamic%20angle,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;


&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-red-eye2c-dynamic-angle2c-/641a8768e69b4f9d95c6a02b0e4133fa?id=JIZKV%2bf6qSgAaglJD59mHw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-red-eye2c-dynamic-angle2c&lt;/a&gt;&lt;br&gt;

&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
A girl, short white hair, red eye, pov, cel anime, rococo
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIjae6Xt8RygX_BzQUxJUSGOrDy29gUhY1cXQ28fEoi2ESncKoeKQyhJnC6Uj3IJN26uZYApLG7AjOH7696x4Trq5iq559fETRQ_dlYImXS3PY2oMGL5e90zUvuYZXrQCnAINW6dZ_dNaPrdbISZfpohii6D6ZrFAU4Z47WLHxJIBGSoDjSmAfcmOJZw/s594/A%20girl,%20short%20white%20hair,%20red%20eye,%20pov,%20cel%20anime,%20rococo.jpg&quot; style=&quot;padding: 1em 0;&quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl, short white hair, red eye, pov, cel anime, rococo&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;594&quot; data-original-width=&quot;594&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIjae6Xt8RygX_BzQUxJUSGOrDy29gUhY1cXQ28fEoi2ESncKoeKQyhJnC6Uj3IJN26uZYApLG7AjOH7696x4Trq5iq559fETRQ_dlYImXS3PY2oMGL5e90zUvuYZXrQCnAINW6dZ_dNaPrdbISZfpohii6D6ZrFAU4Z47WLHxJIBGSoDjSmAfcmOJZw/s320/A%20girl,%20short%20white%20hair,%20red%20eye,%20pov,%20cel%20anime,%20rococo.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;


&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-red-eye2c-pov2c-cel-anime2c/641a88873d18462cb50acd51d76d9eb4?id=1msMeJeDsFh%2b9yQOqn%2bMFA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-red-eye2c-pov2c-cel-anime2c&lt;/a&gt;&lt;br&gt;&lt;br&gt;

上記の画像は2回（8枚）中1枚のみ有効。他の画像はNGになってしまった。&lt;br&gt;



&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
burning world, dramatic, ultra - wide angle, long exposure, ultra - hd, epic lighting, ray tracing global illumination, in a symbolic and meaningful style, heavenly perspective, trending on artstation, concept art, hyper realism, hdr
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjRt_I99T-R1ZcOAHyyuuFHmJCGL3iErMh9vmzR_hfD0G1dePLHsXkVkm7vM6nKSXaMLV-ux1xQEr4gnjM3vQ2K9h5Ze2AXwgS4QJdAv2dAPi5FoG6gs5DfyRSBH6IM1CkHd6u8z5YmXgPMhuUba7gnInghZMJm9LxFw-9lWVdO-6Rxyr5oZ0UulFI6A/s297/burning%20world.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator burning world&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjRt_I99T-R1ZcOAHyyuuFHmJCGL3iErMh9vmzR_hfD0G1dePLHsXkVkm7vM6nKSXaMLV-ux1xQEr4gnjM3vQ2K9h5Ze2AXwgS4QJdAv2dAPi5FoG6gs5DfyRSBH6IM1CkHd6u8z5YmXgPMhuUba7gnInghZMJm9LxFw-9lWVdO-6Rxyr5oZ0UulFI6A/s320/burning%20world.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;a href=&quot;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-/641a8c93ff074d56b039ab86d8feb414?id=hZ4NNYpc7XYxaUtu9lSVyQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-/641a8c93ff074d56b039ab86d8feb414?id=mm15XyFLRUDpOTWl7bcd%2fA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-/641a8c93ff074d56b039ab86d8feb414?id=J%2fTesjwVsH1KKMXJK6FpeQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-3&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-/641a8c93ff074d56b039ab86d8feb414?id=8TgQmjdjSiQinxPT3gBEqw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/burning-world2c-dramatic2c-ultra---wide-angle2c-long-4&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
A girl, short white hair, wolf year, High angle shot, cel anime, rococo
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6l8yy9ZB9wKdcjTLPhyrfnJP11NyZ88PpRjZTYwsgSm38tWTVFShjpelgTUPB2XAkLS3lO12l9Y1lUeMrgcimR_yitafMx-In9WOJDysGitCVpdBi41o-Tf6jKRZhMZXjb6D_1ledYf-VcwERmXNuF3FDjCERtCk7Y9tJ9NPWf6WPQNCGy84M-myQ0g/s594/A%20girl,%20short%20white%20hair,%20wolf%20year,%20High%20angle%20shot,%20cel%20anime,%20rococo.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl, short white hair, wolf year, High angle shot, cel anime, rococo&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;594&quot; data-original-width=&quot;594&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6l8yy9ZB9wKdcjTLPhyrfnJP11NyZ88PpRjZTYwsgSm38tWTVFShjpelgTUPB2XAkLS3lO12l9Y1lUeMrgcimR_yitafMx-In9WOJDysGitCVpdBi41o-Tf6jKRZhMZXjb6D_1ledYf-VcwERmXNuF3FDjCERtCk7Y9tJ9NPWf6WPQNCGy84M-myQ0g/s320/A%20girl,%20short%20white%20hair,%20wolf%20year,%20High%20angle%20shot,%20cel%20anime,%20rococo.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-wolf-year2c-high-angle-sh/641a9780ae9c41faa399bb66547f433d?id=ER4UBD2sLG3e2RUIQPUJDg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-wolf-year2c-high-angle-sh&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-wolf-ear2c-high-angle-sho/641aab3472224694a18d0b9a301fd5f5?id=5GuMroLar0SYX21KOgpbHQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-short-white-hair2c-wolf-ear2c-high-angle-sho2&lt;/a&gt;
&lt;br&gt;

ブーストを使い切ってしまってから気づいたが完全にスペルミスしてる（狼年ってなんだ）&lt;br&gt;
それでもいい感じに出力してくれる。&lt;br&gt;


&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
A girl, bob white hair, wolf year, back shot, cel anime
&lt;/div&gt;


&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPYQPDIL_3kBJUeGpUJjoM-uyHtqheQs_-qzBPYsOZQQVOG_jxxpIVYK_59PLjSBwFdZ0dVf4FCi4d7UtLEZE6CjjJohU69MvZH_EDGTZKy5gUU2h_NK_lA_q3IRW4kNs-6-Imh3cQo1d7J5KXLLiSIC_vk9NAtkA9Mq0pqUf7QOgWcr_80c2Lb1NTRQ/s297/A%20girl,%20bob%20white%20hair,%20wolf%20year,%20back%20shot,%20cel%20anime.jpg&quot; style=&quot;display: block; padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl, bob white hair, wolf year, back shot, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPYQPDIL_3kBJUeGpUJjoM-uyHtqheQs_-qzBPYsOZQQVOG_jxxpIVYK_59PLjSBwFdZ0dVf4FCi4d7UtLEZE6CjjJohU69MvZH_EDGTZKy5gUU2h_NK_lA_q3IRW4kNs-6-Imh3cQo1d7J5KXLLiSIC_vk9NAtkA9Mq0pqUf7QOgWcr_80c2Lb1NTRQ/s320/A%20girl,%20bob%20white%20hair,%20wolf%20year,%20back%20shot,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-back-shot2c-cel-/641a981f9ac64e9fac5974de978a9df5?id=LTcfBEZh5%2f5EF6bWi8mYqA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-back-shot2c-cel1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-back-shot2c-cel-/641a981f9ac64e9fac5974de978a9df5?id=D427rhjwUazc0Qd10qJ%2fyg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-back-shot2c-cel-2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-back-shot2c-cel-/641a981f9ac64e9fac5974de978a9df5?id=ByoeHa9x85JTyFhidS8v%2fg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-back-shot2c-cel-3&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
A girl, bob white hair, wolf year, back shot, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVjz3tdEx-mVh0HrX6HUT2nK54lveWIQEo4xwF6JiTyC8RfyHZgDueL2J6_KDBR2Yyx3Ufnz3gyPdGJ7bub4RsQU5DKyvccpJHLiHci5SQK7z1oXIBfc95OMDykpZesico2e4yr-vuUqnW1KVr9ynz7NIgwz2xA19UspBEzlFEafuYKaPewmhd9lwX3A/s297/waterdrawing%20lineart%20of%20bustup.%20buutiful%20cute%20girl%20%20dancing%20alone%20in%20gloomy%20room,%20black%20hoodie%20is%20very%20dirty,%20short%20bob%20hair.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator waterdrawing lineart of bustup. buutiful cute girl  dancing alone in gloomy room, black hoodie is very dirty, short bob hair&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVjz3tdEx-mVh0HrX6HUT2nK54lveWIQEo4xwF6JiTyC8RfyHZgDueL2J6_KDBR2Yyx3Ufnz3gyPdGJ7bub4RsQU5DKyvccpJHLiHci5SQK7z1oXIBfc95OMDykpZesico2e4yr-vuUqnW1KVr9ynz7NIgwz2xA19UspBEzlFEafuYKaPewmhd9lwX3A/s320/waterdrawing%20lineart%20of%20bustup.%20buutiful%20cute%20girl%20%20dancing%20alone%20in%20gloomy%20room,%20black%20hoodie%20is%20very%20dirty,%20short%20bob%20hair.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/waterdrawing-lineart-of-bustup-buutiful-cute-girl/641a9c1052644b6cbe8dc5a6ad3de954?id=n2i5c4LLaKsvtOi67gwgAw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/waterdrawing-lineart-of-bustup-buutiful-cute-girl1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/waterdrawing-lineart-of-bustup-buutiful-cute-girl/641a9c1052644b6cbe8dc5a6ad3de954?id=w417lwjaakLvX0YL6hRWSw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/waterdrawing-lineart-of-bustup-buutiful-cute-girl2&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
A girl with black hair walks through a flower field with the starry sky as the background, anime, rococo
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDnJc7obT0G9uL-nejLIOnSXDZH5nuk8VZZSWyKWkoGo7CCb9MpOFBBDMVE465al9B1jrdvzBehvxP_YVv20dkGfFl74vZRZUraLmO9DKkv03G4xXERqc3BLOIsNK3GPZBLDlZwiebYcHN61rX7JkV_lDlb_2R-gvDK1Zx6h7GMY9cFVVgZymWiAchtw/s297/A%20girl%20with%20black%20hair%20walks%20through%20a%20flower%20field%20with%20the%20starry%20sky%20as%20the%20background,%20anime,%20rococo.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl with black hair walks through a flower field with the starry sky as the background, anime, rococo&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDnJc7obT0G9uL-nejLIOnSXDZH5nuk8VZZSWyKWkoGo7CCb9MpOFBBDMVE465al9B1jrdvzBehvxP_YVv20dkGfFl74vZRZUraLmO9DKkv03G4xXERqc3BLOIsNK3GPZBLDlZwiebYcHN61rX7JkV_lDlb_2R-gvDK1Zx6h7GMY9cFVVgZymWiAchtw/s320/A%20girl%20with%20black%20hair%20walks%20through%20a%20flower%20field%20with%20the%20starry%20sky%20as%20the%20background,%20anime,%20rococo.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/a-girl-with-black-hair-walks-through-a-flower-fiel/641aa036ca604923980c95274a24ba15?id=2GSEwex9wdxbQ29A3oa55w%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl-with-black-hair-walks-through-a-flower-fiel1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl-with-black-hair-walks-through-a-flower-fiel/641aa036ca604923980c95274a24ba15?id=kVfuYHzgMDJxn%2fc8NmiamQ%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl-with-black-hair-walks-through-a-flower-fiel2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl-with-black-hair-walks-through-a-flower-fiel/641aa036ca604923980c95274a24ba15?id=04L8lOMcmL1zaOw31nyhwg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl-with-black-hair-walks-through-a-flower-fiel3&lt;/a&gt;&lt;br&gt;

&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
cute dog, pixel art
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC6y1nGynJyjXOsRcahhh-M368x2cDZj4IFK6OThxbvj7N594wsnP5Q6TpRMn340IEI-O4xYgv17ep0mHT6jue6ESBoUmCC7ecbDBXBuxMUE0-o7jYkKwaZyb9DZDdmiRYK1fDjeIvxBmokJL1NKPYMdWJ9Um2WwTQKWYFqdOubNovFj4iyO2x3dNH0Q/s297/cute%20dog,%20pixel%20art.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator cute dog, pixel art&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC6y1nGynJyjXOsRcahhh-M368x2cDZj4IFK6OThxbvj7N594wsnP5Q6TpRMn340IEI-O4xYgv17ep0mHT6jue6ESBoUmCC7ecbDBXBuxMUE0-o7jYkKwaZyb9DZDdmiRYK1fDjeIvxBmokJL1NKPYMdWJ9Um2WwTQKWYFqdOubNovFj4iyO2x3dNH0Q/s320/cute%20dog,%20pixel%20art.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;


いわゆるピクセルアートも可能（1024*1024はピクセルアートなのかという疑問は脇においておく）&lt;br&gt;


&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
robot girl, cyberpank, dynamic angle, futuristic city background, cel anime 
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxWfN_ZhG6zvjQikV5tYMXAygdwlgF-GAm9BG5i0hu2YD_0lGejkkdHmoNouDTocTkW56bmtKpqg8yTXUxtrrzgl29NCTlk7XDOOD6Yro5uUwGNZYp5qd-M2WYVEduFBUhhWPuswDmamaem6Dzfi8y9F484URQF4etZ7npkY7Bu0HMfI9XwFU9lcaD4A/s297/robot%20girl,%20cyberpank,%20dynamic%20angle,%20futuristic%20city%20background,%20cel%20anime%201.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator robot girl, cyberpank, dynamic angle, futuristic city background, cel anime1&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxWfN_ZhG6zvjQikV5tYMXAygdwlgF-GAm9BG5i0hu2YD_0lGejkkdHmoNouDTocTkW56bmtKpqg8yTXUxtrrzgl29NCTlk7XDOOD6Yro5uUwGNZYp5qd-M2WYVEduFBUhhWPuswDmamaem6Dzfi8y9F484URQF4etZ7npkY7Bu0HMfI9XwFU9lcaD4A/s320/robot%20girl,%20cyberpank,%20dynamic%20angle,%20futuristic%20city%20background,%20cel%20anime%201.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ-RTFR864M-xFTLMOKEVLvjpZ4Iqpui9dFrKv9vHZzWnP4b7b3gpk0ps6OQj84Ak6xVLttuftz1gcr9anRodZMmRO4N0MxxQZs5TjM9ifbK36cs5nIags7_FyCzOvAKyIow-khssUHyFnp6_ZvOf8nRgC1VlGz4IXcmxq0k7KrLyQjw3FND6CvkoLyQ/s297/robot%20girl,%20cyberpank,%20dynamic%20angle,%20futuristic%20city%20background,%20cel%20anime%202.jpg&quot; style=&quot;1em 0; &quot;&gt;&lt;img alt=&quot;robot girl, cyberpank, dynamic angle, futuristic city background, cel anime2&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ-RTFR864M-xFTLMOKEVLvjpZ4Iqpui9dFrKv9vHZzWnP4b7b3gpk0ps6OQj84Ak6xVLttuftz1gcr9anRodZMmRO4N0MxxQZs5TjM9ifbK36cs5nIags7_FyCzOvAKyIow-khssUHyFnp6_ZvOf8nRgC1VlGz4IXcmxq0k7KrLyQjw3FND6CvkoLyQ/s320/robot%20girl,%20cyberpank,%20dynamic%20angle,%20futuristic%20city%20background,%20cel%20anime%202.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;


&lt;a href=&quot;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c/641aa1ee2935459fb43734a4e1d28d89?id=ejYUSJqJJwaL8%2bQNCJFI9Q%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c/641aa1ee2935459fb43734a4e1d28d89?id=SeHLOHKeN%2bpnvgChiokNBg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c/641aa1ee2935459fb43734a4e1d28d89?id=8tQuY%2bG%2bXoRblpiqgWS%2bZA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c3&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c/641aa1ee2935459fb43734a4e1d28d89?id=PkxyxpFq7P1nF4UOB1V1kg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/robot-girl2c-cyberpank2c-dynamic-angle2c-futuristic-c4&lt;/a&gt;&lt;br&gt;



&lt;br&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
A girl, bob white hair, wolf ear, surprised expression,  Close-up shot, cel anime 
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9LPT2GsdgiIqK6JZStiqfCc9gMof5nJvomrTX8Kg4lv7xzYXTpI8fpXNGwp_ZQDDo-hvTuLnCyBlWOjOGoTqfbYAEZ0rwMLYSUw3Wf4OdJGv4s-gM5dUiZplKdqn-hNPLwOUJn7ZNJFYwwsgg3HwF__xd6QqBpqFEZd4FtUu3RKmTZ7EFiYc6zw4ngw/s297/A%20girl,%20bob%20white%20hair,%20wolf%20ear,%20surprised%20expression,%20%20Close-up%20shot,%20cel%20anime.jpg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl, bob white hair, wolf ear, surprised expression,  Close-up shot, cel anime &quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;297&quot; data-original-width=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9LPT2GsdgiIqK6JZStiqfCc9gMof5nJvomrTX8Kg4lv7xzYXTpI8fpXNGwp_ZQDDo-hvTuLnCyBlWOjOGoTqfbYAEZ0rwMLYSUw3Wf4OdJGv4s-gM5dUiZplKdqn-hNPLwOUJn7ZNJFYwwsgg3HwF__xd6QqBpqFEZd4FtUu3RKmTZ7EFiYc6zw4ngw/s320/A%20girl,%20bob%20white%20hair,%20wolf%20ear,%20surprised%20expression,%20%20Close-up%20shot,%20cel%20anime.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;


&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-surprised-expres/641aa5cc00b24086897ed6f93ab022da?id=sZSWxRrZRSFX20d1bQsAnw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-surprised-expres1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-surprised-expres/641aa5cc00b24086897ed6f93ab022da?id=0on%2f8EWN3a%2fNA1%2bfu8VvZA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-surprised-expres2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-surprised-expre/641a9a33630c4e7eb42d5867540c41dc?id=IDEOIjEQ2dC2ukBwmu8uIA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-year2c-surprised-expre3&lt;/a&gt;&lt;br&gt;&lt;br&gt;



表情をつけることもできた。笑った顔や泣いた顔なども恐らくいけるはず（ブーストが足りない）&lt;br&gt;&lt;br&gt;
できた。
&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
A girl, bob white hair, wolf ear, angry,  Close-up shot, cel anime 
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj37R1jTOY9ecjD5fC8zg2vohJVuYN4FCA95AMB2pfGPFjyaJ8WlLamzON65gnFD4pDZqedV-6Ltlq3e4V_zuz0gpuApkYiBLZ-p6nKi5JRBKTCKeSfrFu5ZMbJQkI1_1WRom_v15e-yCGRKJn-0SO9DVIpOW9cLGr6guD_8dHlAKwVWerBeVqla8jQWQ/s540/A%20girl,%20bob%20white%20hair,%20wolf%20ear,%20angry,%20%20Close-up%20shot,%20cel%20anime%20.jpeg&quot; style=&quot;padding: 1em 0; &quot;&gt;&lt;img alt=&quot;Bing Image Creator A girl, bob white hair, wolf ear, angry,  Close-up shot, cel anime&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;540&quot; data-original-width=&quot;540&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj37R1jTOY9ecjD5fC8zg2vohJVuYN4FCA95AMB2pfGPFjyaJ8WlLamzON65gnFD4pDZqedV-6Ltlq3e4V_zuz0gpuApkYiBLZ-p6nKi5JRBKTCKeSfrFu5ZMbJQkI1_1WRom_v15e-yCGRKJn-0SO9DVIpOW9cLGr6guD_8dHlAKwVWerBeVqla8jQWQ/s320/A%20girl,%20bob%20white%20hair,%20wolf%20ear,%20angry,%20%20Close-up%20shot,%20cel%20anime%20.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-angry2c--close-up/641bcf388a334c33a8c3a15dd81b7c45?id=x8iHp7yXaC4Ffo1wItxscw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-angry2c--close-up1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-angry2c--close-up/641bcf388a334c33a8c3a15dd81b7c45?id=US7%2fnOjdKuEn5wbx%2f5oYfw%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-angry2c--close-up2&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-angry2c--close-up/641bcf388a334c33a8c3a15dd81b7c45?id=ht%2b8E2EK6jek6z2haGTFtA%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-angry2c--close-up3&lt;/a&gt;&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
A girl, bob white hair, wolf ear, melancholy, Close-up shot, cel anime
&lt;/div&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY53tNktdiiqx8qWxLHEB_TXwQ-Ef5HvI5qJdOv5HZpy_kI4Pm2y1ppF0UWYAgeHhc5ft9eHPllUEMtMa4NVH5UqAs8rNBJT20xtXaOEpVd0BehamkjsIw2N-T3EFvYWdyBP7hnl2ZUeLMr3ejrbTiV8XGCGLvupjPmIUeDsgYejLpns_tAP2EQfMpcw/s270/A%20girl,%20bob%20white%20hair,%20wolf%20ear,%20melancholy,%20%20Close-up%20shot,%20cel%20anime%20.jpeg&quot; style=&quot;padding: 1em 0;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;270&quot; data-original-width=&quot;270&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY53tNktdiiqx8qWxLHEB_TXwQ-Ef5HvI5qJdOv5HZpy_kI4Pm2y1ppF0UWYAgeHhc5ft9eHPllUEMtMa4NVH5UqAs8rNBJT20xtXaOEpVd0BehamkjsIw2N-T3EFvYWdyBP7hnl2ZUeLMr3ejrbTiV8XGCGLvupjPmIUeDsgYejLpns_tAP2EQfMpcw/s320/A%20girl,%20bob%20white%20hair,%20wolf%20ear,%20melancholy,%20%20Close-up%20shot,%20cel%20anime%20.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;

&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-melancholy2c--clo/641bd5e8afb94df2ab53a3126252d20b?id=xn3hANx%2fM5fYmZveCy8kZg%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-melancholy2c--clo1&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-melancholy2c--clo/641bd5e8afb94df2ab53a3126252d20b?id=bdHQnH9ztnjzn3KnajXw2Q%3d%3d&amp;amp;view=detailv2&amp;amp;idpp=genimg&amp;amp;FORM=GCRIDP&amp;amp;mode=overlay&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/images/create/a-girl2c-bob-white-hair2c-wolf-ear2c-melancholy2c--clo2&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;生成履歴について&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
右側に過去生成した履歴を改めて閲覧することが可能。&lt;br&gt;
一定数出力すると古いものは見えなくなるがこれはBingの履歴から追うことが可能（ちょっと面倒）&lt;br&gt;&lt;br&gt;
プライバシー → 閲覧の履歴 → 表示数を増やす&lt;br&gt;
&lt;a href=&quot;https://account.microsoft.com/privacy?refd=privacy.microsoft.com&quot; target=&quot;_blank&quot;&gt;https://account.microsoft.com/privacy?refd=privacy.microsoft.com&lt;/a&gt;&lt;br&gt;
履歴をクリアしてしまったら永遠に見られなくなるかもしれない。&lt;br&gt;&lt;br&gt;

生成した結果は共有することが可能で上記の生成例でもリンクを貼っているがこれがいつまで残るのかはわからない。&lt;br&gt;
良いプロンプト、画像ができたら保存しておくほうが良さそうだ。&lt;br&gt;

</description><link>http://trueman-developer.blogspot.com/2023/03/bingbing-image-creator.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBQPtFpNK0i7Xt9E-m6zPF94wNtfgmAfWKU7n5QWT6hnxa7tiaRZ_g5GhsnT6MAXE4cWsGkBWx0fCZlahqoIzSBSzizdEUHX_gEdfFU_we0UKzxFOnU1C-2MQ2zgihhAzKs9a1Wl8vA47TA1bawg5eQ0LAsrcBJTowQJSBbUwfJF16kucbV5dYrLnUnQ/s72-c/Web%20%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3_22-3-2023_114852_www.bing.com.jpeg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-8100545703516848409</guid><pubDate>Sun, 19 Feb 2023 11:18:00 +0000</pubDate><atom:updated>2023-02-19T20:18:34.556+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>ChatGPTと(ChatGPTを組み込んだ)新しいBingを比較する</title><description>新しいBingとしか表現しないから今までのものと呼び分けができない。&lt;br&gt;
次のバージョンが出たらどうする気なんだ......&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;ChatGPTについて&lt;/h2&gt;
&lt;hr /&gt;

以前にまとめている。&lt;br&gt;
&lt;a href=&quot;https://trueman-developer.blogspot.com/2023/01/chatgpt.html&quot; target=&quot;_blank&quot;&gt;https://trueman-developer.blogspot.com/2023/01/chatgpt.html&lt;/a&gt;&lt;br&gt;

ChatGPTとは「&lt;b&gt;人間が使用する言語を理解&lt;/b&gt;し、&lt;b&gt;それを使用して文章を生成&lt;/b&gt;することができるプログラム」というのがざっくりとした説明になる。&lt;br&gt;&lt;br&gt;

&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;簡単なスニペット（コード片）調べるときのGoogle検索の代替になりうる&lt;/li&gt;
&lt;li&gt;要件（考え）を整理するときの壁打ち要因になりうる&lt;/li&gt;
&lt;li&gt;理解力、読解力そして語学力、表現力に優れている&lt;/li&gt;
&lt;li&gt;回答内容は要検証&lt;/li&gt;
&lt;li&gt;「アウトプットが正しいかどうか判断できる」人しか使えない&lt;/li&gt;
&lt;/ul&gt;
といった特徴がある。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;新しいBingについて&lt;/h2&gt;
&lt;hr /&gt;

そのうち公開されるとは思うが現時点ではプレビュー版の公開のみ&lt;br&gt;
以下より順番待ちリストへ登録可能(MSアカウントが必要)&lt;br&gt;
&lt;a href=&quot;https://www.bing.com/new?form=MY028Z&quot; target=&quot;_blank&quot;&gt;https://www.bing.com/new?form=MY028Z&lt;/a&gt;&lt;br&gt;

2/8 13:30に登録して、&lt;br&gt;
2/12 順番待ちを早めるためAndroidにBingインストール。&lt;br&gt;
2/14 午前にメールが来て利用可能に。&lt;br&gt;&lt;br&gt;
若干周りより遅かった気がするのでほとんど使用していないアカウントだと後回しにされるとかもあるかもしれない。たまたまかもしれない。&lt;br&gt;&lt;br&gt;

新しいBingは結論を書いてしまうと以下のような特徴がある。

&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;ChatGPTでできることは大体できる&lt;/li&gt;
&lt;li&gt;ChatGPTと違って履歴は残らない&lt;/li&gt;
&lt;li&gt;ChatGPTだとたまに英語で返ってきたがBingだと恐らくそういうことはない&lt;/li&gt;
&lt;li&gt;5往復までしかやり取りできない&lt;/li&gt;
&lt;li&gt;1日50回までしかやり取りできない&lt;/li&gt;
&lt;li&gt;URLに対して質問できる&lt;/li&gt;
&lt;li&gt;本家より早い&lt;/li&gt;
&lt;li&gt;時事ネタもOK&lt;/li&gt;
&lt;li&gt;追加で質問するときの参考になりそうな選択肢が表示される&lt;/li&gt;
&lt;li&gt;参考にしたURLが表示される&lt;/li&gt;
&lt;/ul&gt;

回答は毎回変わるので一概には言えないが、ChatGPTよりも少し踏み込んだ回答が多い気がする。&lt;br&gt;
恐らくまだまだ便利に使えるはず。&lt;br&gt;
不満があるとすればフォントがMicrosoft YaHei(中華フォント)になっているということや、Macだと変換時のエンターで質問が送信されたりスクロールがイライラする挙動になっていたりする。&lt;br&gt;
&lt;br&gt;

&lt;h3&gt;URLに対して質問できる&lt;/h3&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E3%82%AF%E3%82%A8%E3%83%BC%E3%82%B5%E3%83%BC&quot; target=&quot;_blank&quot;&gt;https://ja.wikipedia.org/wiki/クエーサー&lt;/a&gt;について要約して。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
こんにちは、こちらはBingです。お役に立てて嬉しいです😊

ご質問のウィキペディアの記事について要約しますと、クエーサーとは、遠くの銀河の中心にある超大質量ブラックホールに物質が落ち込む際に放出される強い電磁波のことです。クエーサーは、宇宙の初期に形成されたと考えられており、その数は約10万個と推定されています。クエーサーの観測は、宇宙の進化やブラックホールの性質を理解するのに重要な役割を果たしています。

&lt;/div&gt;


これが実際に該当ページの要約をしているのか、あるいはクエーサーについてのページだと認識してクエーサーの要約をしているのかはわからない。10万個といった記述はもとのWikipediaにはないので後者っぽい気がする。&lt;br&gt;
&lt;br&gt;


&lt;h3&gt;時事ネタもOK&lt;/h3&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
現在の内閣総理大臣は？
&lt;/div&gt;


&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
こんにちは、これはBingです。😊 現在の内閣総理大臣は、第101代 岸田文雄 さんです。令和3年11月10日に就任しました。
&lt;/div&gt;

ChatGPTに同様の質問を投げると以下のように返ってくる。恐らく学習時点での最新の情報。

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
2023年2月14日現在、私が知る限りの情報では、日本の内閣総理大臣は菅義偉（すが・よしひで）氏です。
&lt;/div&gt;
&lt;br&gt;

&lt;h3&gt;追加で質問するときの参考になりそうな選択肢が表示される&lt;/h3&gt;

例えば「閏年を判定するJavaの関数を出力して」と言った質問をすると
「この関数をテストする方法は？」といった選択肢を出してくれる。&lt;br&gt;
ただ選択肢に「ありがとうございます。とてもわかりやすいです。」が唯一出てくるのはどうなんだと思わなくもない。

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPurULx6nGidWI4MFZ45io7d5Qm2XYfcN8e46wZNZlekaugV7YREgULFgisFwmBQkH8WkTgI285vH_PwQrlBG1bttEuZA5uy9D8dbJly37ZXh1N9dHugE6rD7NVv067QOpMjBFXrvw5nGBrWF89vOy3pw0GYVbPcTBuISEFj0sIzdgbDPfvHp2ETPnrg/s852/image_2023_2_14.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;bing&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;842&quot; data-original-width=&quot;852&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPurULx6nGidWI4MFZ45io7d5Qm2XYfcN8e46wZNZlekaugV7YREgULFgisFwmBQkH8WkTgI285vH_PwQrlBG1bttEuZA5uy9D8dbJly37ZXh1N9dHugE6rD7NVv067QOpMjBFXrvw5nGBrWF89vOy3pw0GYVbPcTBuISEFj0sIzdgbDPfvHp2ETPnrg/s400/image_2023_2_14.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;


&lt;br&gt;&lt;br&gt;&lt;br&gt;

回答内容が大きく変わるわけではないので制限によって使い分ける等でいいかもしれない。
GoogleのBardが出たらそちらとも比較してみたい。

</description><link>http://trueman-developer.blogspot.com/2023/02/chatgptchatgptbing.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPurULx6nGidWI4MFZ45io7d5Qm2XYfcN8e46wZNZlekaugV7YREgULFgisFwmBQkH8WkTgI285vH_PwQrlBG1bttEuZA5uy9D8dbJly37ZXh1N9dHugE6rD7NVv067QOpMjBFXrvw5nGBrWF89vOy3pw0GYVbPcTBuISEFj0sIzdgbDPfvHp2ETPnrg/s72-c/image_2023_2_14.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-2007217016034279130</guid><pubDate>Sat, 21 Jan 2023 11:25:00 +0000</pubDate><atom:updated>2023-01-22T12:59:42.445+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><title>ChatGPTの有効な使い方を検証してまとめる</title><description>30ケース以上の例を6種類に分類して挙げている。&lt;br&gt;
知的で創造的な仕事をAIがおこない、我々は単純で面倒で面白くもない作業をすることになるに違いない。&lt;br&gt;
&lt;br&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;目次&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
普段は特に目次等は用意していないが用途が多すぎて膨大な文章量になってしまったためページ内リンクを作成している。&lt;br&gt;&lt;br&gt;
&lt;ul type=&quot;disc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#ChatGPT&quot;&gt;ChatGPTとは&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#FAQ&quot;&gt;用途1：質問 → 応答 〜について教えて&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#explanation&quot;&gt;用途2：コードについて説明&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#generation&quot;&gt;用途3：コード生成&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#trarnslation&quot;&gt;用途4：変換、トランスパイル&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#Ideas&quot;&gt;用途5：相談、アイデアだし、要件整理&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#design&quot;&gt;用途6：DB設計&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#point&quot;&gt;注意点&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#summary&quot;&gt;まとめ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#referernce&quot;&gt;参考&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;br&gt;&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2 id=&quot;ChatGPT&quot;&gt;ChatGPTとは&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
ChatGPTについて知りたい場合はChatGPTに聞いてみるといい。&lt;br&gt;
以下から利用可能。Googleアカウントさえあればログインできる(2022/01/21時点)&lt;br&gt;
&lt;a href=&quot;https://chat.openai.com/chat&quot; target=&quot;_blank&quot;&gt;https://chat.openai.com/chat&lt;/a&gt;&lt;br&gt;
夜間は特にアクセス過多で不安定になるので注意。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizn15V3q4hj9_qBjBW7RNUR3BXeQHF6UB7IVqKWPAzL8YSRn07PaZxGGvHKNtsH5uVNoNV42W-2MHXuwhGZn27RfhR3m2pZ_dmfUtwk-96hG8rAP-Wm7qh72VzR7DHg6HwrE_p8oacKuK2d5v5AFIXhmuT4VhFC59APgChw-nVgzhzXZzITd1LIJqlJg/s841/cap0.jpeg&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;ChatGPTとは何ですか&quot; border=&quot;0&quot; width=&quot;400&quot; data-original-height=&quot;791&quot; data-original-width=&quot;841&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizn15V3q4hj9_qBjBW7RNUR3BXeQHF6UB7IVqKWPAzL8YSRn07PaZxGGvHKNtsH5uVNoNV42W-2MHXuwhGZn27RfhR3m2pZ_dmfUtwk-96hG8rAP-Wm7qh72VzR7DHg6HwrE_p8oacKuK2d5v5AFIXhmuT4VhFC59APgChw-nVgzhzXZzITd1LIJqlJg/s400/cap0.jpeg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;br&gt;
&lt;br&gt;
以降&lt;span style=&quot;background: skyblue;&quot;&gt;青色&lt;/span&gt;を質問文、&lt;span style=&quot;background: palegreen;&quot;&gt;緑色&lt;/span&gt;をChatGPTの回答として有用な使用例を羅列していく。
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;ChatGPTとは何ですか&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
ChatGPTは、OpenAIによって開発された、自然言語処理（Natural Language Processing、NLP）タスクを実行するための言語モデルです。このモデルは、GPT (Generative Pre-training Transformer) ベースのモデルであり、自然言語生成タスクを行うことができます。例えば、ChatGPTを使用することで、会話文を生成することができます。また、このモデルは、自然言語の入力を処理し、それを分析することで、質問やコマンドに対して自然な回答を生成することができます。
&lt;/div&gt;
&lt;br&gt;
&lt;div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
「もう少し分かりやすく」
&lt;/div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
ChatGPTは、人間が使用する言語を理解し、それを使用して文章を生成することができるプログラムです。 ChatGPTは、人間のように会話をすることができるため、会話をシミュレートすることができます。&lt;br&gt;
例えば、ある人が次のように質問をしたとします。&lt;br&gt;
「お腹がすいたので、近くのレストランを知っていますか？」&lt;br&gt;
このような質問に対して、ChatGPTは次のように答えることができます。&lt;br&gt;
 「はい、近くにはいくつかのレストランがあります。お好みの料理や予算に合わせて、どのレストランがいいでしょうか？」&lt;br&gt;
 ChatGPTは、質問に対する自然な回答を生成することができるため、人間のように会話をすることができます。&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
「ChatGPTは、&lt;b&gt;人間が使用する言語を理解&lt;/b&gt;し、&lt;b&gt;それを使用して文章を生成&lt;/b&gt;することができるプログラムです」という一文がわかりやすく端的に説明している部分になる。&lt;br&gt;
ちなみに近くのレストランを検索する機能はないので上の質問例を入力しても話は合わせてくれるがまともな回答は得られない。&lt;br&gt;
ChatGPTを使いこなすには悪い例でChatGPTがどんなものかを理解するには良い例とも言える。&lt;br&gt;
&lt;br&gt;&lt;br&gt;
ざっくりいってしまうとChatGPTは「質問に対してそれっぽいものを返してくれるもの」&lt;br&gt;
一問一答で終わるのではなく更に続けて質問することが可能（内部の処理的には今までのやりとりを全部投げているらしい？）&lt;br&gt;
質問の対象範囲はウェブ上にある情報ほぼ全部。ただし時事情報など最新の情報には対応していない(2021年時点でデータで学習しているらしい)&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;




&lt;hr /&gt;
&lt;h2 id=&quot;FAQ&quot;&gt;質問 → 応答 〜について教えて&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;
ある単語、用語についての質問。精度はジャンルによってはまちまちだが大体合格点(60〜70%)くらいありそう。&lt;br&gt;
具体的には&lt;br&gt;

&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;SDGs：Sustainable Development Goalsについて教えて&lt;/li&gt;
&lt;li&gt;GCPについて教えて&lt;/li&gt;
&lt;li&gt;DX（Digital Transformation）について教えて&lt;/li&gt;
&lt;/ul&gt;
といった質問内容を回答をしてくれる。知らない場合は知ったかぶりをしてくる。&lt;br&gt;
知らない用語を調べる辞典のような使い方よりも知っている用語について流暢な説明文が欲しいといったときに特に有用。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

応用として「〜風にして教えて」といった質問をすることが可能。ニュアンスを変えた文章を出力してくれる&lt;br&gt;&lt;br&gt;

&lt;div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
「SDGs：Sustainable Development Goalsについて論文っぽく説明して」
&lt;/div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
Sustainable Development Goals (SDGs)は、国連が定めた持続可能な開発のための目標である。これらの目標は、2015年に採択され、2030年までに達成することを目指している。SDGsは、17のゴールが定められており、それらのゴールは貧困撲滅、飢餓撲滅、教育、ジェンダー平等、水・トイレ・衛生、エネルギー、健康・ケア、ジョブ・経済成長、基本的なインフラ、貿易、金融、技術革新、社会保障、環境保護、城市・地域開発、人間の尊厳、平和・安全、パートナーシップなど多岐にわたっている。&lt;br&gt;
&lt;br&gt;
SDGsは、過去のミレニアム開発目標（MDGs）からの改良を反映しており、より包括的なアプローチを取っている。それらは、経済的、社会的、環境的な問題に対処するために必要な目標であり、世界中の人々が健康で幸せな生活を送るために必要な改善を目指している。&lt;br&gt;&lt;br&gt;

また、SDGsは、国家レベルだけでなく地域や市民レベルでの達成も重視しており、政府や民間セクター、市民社会などが協力して達成することを求めている。これにより、より効果的かつ適切なアプローチが取られることが期待される。&lt;br&gt;
 結論として、SDGsは、持続可能な開発のためのグローバルな目標であり、世界中の人々が健康で幸せな生活を送るために必要な改&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
「続けて」
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
善を目指している。それらの目標は、経済的、社会的、環境的な問題に対処するために必要であり、過去のミレニアム開発目標からの改良を反映している。また、SDGsは、国家レベルだけでなく地域や市民レベルでの達成も重視しており、政府や民間セクター、市民社会などが協力して達成することを求めている。これにより、より効果的かつ適切なアプローチが取られることが期待される。
&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

文字数制限があるのか途中で止まる場合があるが「続けて」と入力することで残りが出力される。
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2 id=&quot;explanation&quot;&gt;コードについて説明&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
日本語でも英語でもプログラム言語でも『言語』であれば高度に解釈して詳細にわかりやすく説明してもらうことが可能。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
以下のSQLについて教えてください
  &lt;pre&gt;
SELECT
  products.id as product_id
  , products.name as product_name
  , class_categories.name as category_name
FROM
  products
INNER JOIN class_categories 
    ON products.class_category_id = class_categories.id 
WHERE
  products.id = :product_id
ORDER BY
  products.id;
    &lt;/pre&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
このSQLは、productsテーブルとclass_categoriesテーブルを結合し、
product_id、product_name、category_nameの列を選択し、productsテーブルのidが:product_idに等しい行を取得します。&lt;br&gt;
また、結果はproduct_idの列で昇順に並べられます。&lt;br&gt;
INNER JOINは2つのテーブルを結合し、結合条件を指定するために使用されます。&lt;br&gt;
このクエリでは、productsテーブルのclass_category_idとclass_categoriesテーブルのidが一致する行を結合しています。&lt;br&gt;
WHERE句は、特定の条件を満たす行だけを取得するために使用されます。&lt;br&gt;
このクエリでは、productsテーブルのidが:product_idに等しい行だけを取得します。&lt;br&gt;
ORDER BYは、結果を特定の列で昇順または降順に並べるために使用されます。このクエリでは、productsテーブルのidで昇順に並べられます。&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;br&gt;&lt;br&gt;

&lt;div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
以下のJQueryのコードについて教えてください
  &lt;pre&gt;
$(document).on(&quot;click&quot;,&quot;#sampletable tr&quot;,function() {
    $(this).find(&quot;td input[type=radio]&quot;).prop(&quot;checked&quot;, true)
});
    &lt;/pre&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
このjQueryのコードは、HTMLドキュメント上で、idが&quot;sampletable&quot;の表の行がクリックされた時に実行されます。&lt;br&gt;
クリックされた行にある、input type=&quot;radio&quot;の要素のcheckedプロパティがtrueに設定されます。&lt;br&gt;
つまり、クリックされた行内にあるラジオボタンが選択状態になります。&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;


&lt;hr /&gt;
&lt;h2 id=&quot;generation&quot;&gt;コード生成&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;
簡単なスニペットを高精度でかつ多様な言語で作成可能。&lt;br&gt;
コードだけでなくcronやDockerfileなど設定ファイルも作成可能。&lt;br&gt;
現状SEO汚染されてしまっているGoogleで検索するよりも端的で良い回答が得られる可能性が高い。&lt;br&gt;
不慣れな言語やライブラリ、フレームワーク等で実装力が高くテストもしっかりするようなタイプだと特に有用。&lt;br&gt;
一つ、二つの言語を極めていてそれしか使用しないタイプだとあまり意味がない。&lt;br&gt;
&lt;br&gt;
幾つか質問の具体例を挙げる。&lt;br&gt;

&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;閏年を判定するJavaの関数を出力して&lt;/li&gt;
&lt;li&gt;閏年を判定するJavaScriptの関数を出力して&lt;/li&gt;
&lt;li&gt;閏年を判定するPHPの関数を出力して&lt;/li&gt;
&lt;li&gt;VBでFizzBuzzを書くには？&lt;/li&gt;
&lt;li&gt;PHPで前後の空白を取り除く方法は？&lt;/li&gt;
&lt;li&gt;jqueryでcheckboxのイベントを取得する方法は？&lt;/li&gt;
&lt;li&gt;JavaScriptでCookieを操作する方法は？&lt;/li&gt;
&lt;li&gt;phpのcURLでファイルを送信する方法を教えてください&lt;/li&gt;
&lt;li&gt;SymfonyでRequestの中身を確認するにはどうしたらいいですか？&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;&lt;br&gt;


&lt;div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
11時に起動するcronの設定方法は？
 &lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
To set up a cron job that runs at 11:00 AM, you would use the following syntax:&lt;br&gt;
 &lt;br&gt;
0 11 * * * [command]&lt;br&gt;
This tells cron to run the specified command at the 11th minute of the 11th hour, every day of the month, every month, and every day of the week.&lt;br&gt;
 &lt;br&gt;
You can also specify the command you want to run in place of &quot;[command]&quot;.&lt;br&gt;
You can set cronjob using the following command :&lt;br&gt;
 &lt;br&gt;
$ crontab -e &lt;br&gt;
it will open the cron editor, and add the above line in that file&lt;br&gt;
 &lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
日本語でお願いします
 &lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
11時に実行するcronジョブの設定方法は次のようになります。&lt;br&gt;
&lt;br&gt;
0 11 * * * [コマンド]&lt;br&gt;
これは、毎月、毎週、毎日の11時11分に指定されたコマンドを実行するようcronに指示します。&lt;br&gt;
&lt;br&gt;
&quot;[command]&quot;の部分に実行したいコマンドを指定することもできます。&lt;br&gt;
cronジョブを設定するには、次のコマンドを使用します :&lt;br&gt;
&lt;br&gt;
$ crontab -e &lt;br&gt;
これによりcronエディターが開き、そのファイルに上記の行を追加します。&lt;br&gt;
 &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
ところで日本語で入力しているのに英語で返ってくることはないだろうか？&lt;br&gt;
その場合は「日本語でお願いします」と入力することで以降は日本語で返してくれるようになる。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;

&lt;div&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
PHPが動作するDockerfileが欲しい
 &lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
FROM php:7.4-apache&lt;br&gt;
COPY . /var/www/html/&lt;br&gt;
&lt;br&gt;
これは、PHP 7.4とApacheのWebサーバーがインストールされたDockerイメージをベースに、カレントディレクトリの内容を/var/www/html/にコピーするDockerfileです。&lt;br&gt;
適切なフォルダに設置して、docker build . -t [image name]を実行することでイメージを作成できます。&lt;br&gt;
&lt;br&gt;
追記:&lt;br&gt;
&lt;br&gt;
Dockerfileは、Dockerイメージを構築するために使用するスクリプトのことです。Dockerfileには、必要なファイルやライブラリ、設定などを記述し、それを元にDockerイメージを作成します。&lt;br&gt;
&lt;br&gt;
以下のDockerfileは、PHP7.4+Apache2.4+mysql-clientのイメージを作成するための例です&lt;br&gt;
&lt;br&gt;
 &lt;pre&gt;
FROM php:7.4-apache

RUN apt-get update &amp;&amp; apt-get install -y \
    mysql-client \
    &amp;&amp; rm -rf /var/lib/apt/lists/*

COPY . /var/www/html/
 &lt;/pre&gt;
&lt;br&gt;&lt;br&gt;

 このDockerfileは、php:7.4-apacheイメージをベースにして、mysql-clientをインストールし、カレントディレクトリの内容を/var/www/html/にコピーすることで、新しいイメージを作成します。&lt;br&gt;

 &lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
PHPとMySQLが動くdocker-composeファイルが欲しい。PHPとMySQLは分けて欲しい
 &lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
以下は、PHPとMySQLが動作するDocker Composeファイルの例です。&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;
version: &#39;3&#39;
services:
  web:
    build: .
    ports:
      - &quot;80:80&quot;
    volumes:
      - .:/var/www/html
    depends_on:
      - db
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: dbname
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - &quot;3306:3306&quot;
    volumes:
      - mysql-data:/var/lib/mysql
volumes:
  mysql-data:
&lt;/pre&gt;
&lt;br&gt;
この例では、2つのサービスが定義されています。1つはwebサービスで、PHPアプリケーションが実行されます。もう1つはdbサービスで、MySQLデータベースが実行されます。 webサービスは、Dockerfileがあるカレントディレクトリからビルドされ、ポート80でリッスンします。&lt;br&gt;
&lt;br&gt;
webサービスは、dbサービスに依存しています。そのため、dbサービスが起動する前にwebサービスが起動されます。&lt;br&gt;
&lt;br&gt;
この例では、MySQLのデータを永続化するために、mysql-dataという名前のボリュームが定義されています。&lt;br&gt;
&lt;br&gt;
Docker Composeを使用して、これらのサービスを起動するには、docker-compose up コマンドを実行します。&lt;br&gt;
&lt;br&gt;
追記:&lt;br&gt;
&lt;br&gt;
上記の例では、webサービスはDockerfileがあるカレントディレクトリからビルドされます。Dockerfileがない場合は、image: php:7.4-apacheなどと記述して、Docker hubからイメージをpullすることもできます。&lt;br&gt;
また、dbサービスはmysql:5.7と記述していますが、それ以外のバージョン(8.0やMariaDBなど)を使用することもできます。&lt;br&gt;
&lt;pre&gt;
version: &#39;3&#39;
services:
  web:
    image: php:7.4-apache
    ports:
      - &quot;80:80&quot;
    volumes:
      - .:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:10
 &lt;/pre&gt;
 &lt;/div&gt;
&lt;br&gt;
続けて質問したため、PHPのDockerfileがある前提になっているようだ。
&lt;br&gt;&lt;br&gt;



&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
C#で数値の3桁間魔区切りを実装する方法は？」
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
C#で数値の3桁間にカンマを挿入し、読みやすい形式にするには、string.Format()を使用します。&lt;br&gt;
&lt;pre&gt;
例:
int num = 1000000;
string formatted = string.Format(&quot;{0:n0}&quot;, num);
Console.WriteLine(formatted);
出力:
1,000,000
&lt;/pre&gt;
また、数値を文字列に変換する際にも、ToString(&quot;n0&quot;)を使用することで同様の結果を得ることができます。&lt;br&gt;&lt;br&gt;

&lt;pre&gt;
例:
int num = 1000000;
string formatted = num.ToString(&quot;n0&quot;);
Console.WriteLine(formatted);
出力:
1,000,000
&lt;/pre&gt;
なお、n0は整数（n）で0桁まで表示します。n3なら小数点3桁表示することができます。&lt;br&gt;

&lt;/div&gt;
&lt;br&gt;
多少誤字があっても問題ない。
&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
TypeScriptでクイックソートするコードを教えてください
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
以下がTypeScriptでクイックソートを行うコードになります。

&lt;pre&gt;

function quickSort(arr: number[], left: number, right: number): void {
  let pivot: number, partitionIndex: number;

  if (left &amp;lt; right) {
    pivot = right;
    partitionIndex = partition(arr, pivot, left, right);
  
    quickSort(arr, left, partitionIndex - 1);
    quickSort(arr, partitionIndex + 1, right);
  }
}

function partition(arr: number[], pivot: number, left: number, right: number): number {
  let pivotValue = arr[pivot],
      partitionIndex = left;

  for (let i = left; i &amp;lt; right; i++) {
    if (arr[i] &amp;lt; pivotValue) {
      swap(arr, i, partitionIndex);
      partitionIndex++;
    }
  }
  swap(arr, right, partitionIndex);
  return partitionIndex;
}

function swap(arr: number[], i: number, j: number): void {
  let temp = arr[i];
  arr[i] = arr[j];
  arr[j] = temp;
}

let arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];

quickSort(arr, 0, arr.length - 1);
console.log(arr);
&lt;/pre&gt;

このコードは、配列arrをクイックソートし、結果をコンソールに出力します。
&lt;/div&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
テストコードも教えてください
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
以下がテストコードになります。&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;

describe(&quot;QuickSort&quot;, () =&amp;gt; {
  it(&quot;should sort an array&quot;, () =&amp;gt; {
    let arr = [3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];
    let expected = arr.slice().sort((a, b) =&amp;gt; a - b);

    quickSort(arr, 0, arr.length - 1);

    expect(arr).toEqual(expected);
  });
});
&lt;/pre&gt;

このテストコードは、配列arrをクイックソートした結果をJavaScriptの標準のsort関数でソートした結果と比較します。&lt;br&gt;
また、Jestなどのテストランナーを使用して実行することで正常に動作を確認することができます。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
テストコードも出力できるが正しい保証もないので最終的に検証は必要になる。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;

単純なスニペットだけでなくやり取りをしながら徐々にプログラムを作成するといったことも可能。&lt;br&gt;
以下は『テーブルの行をクリックしたとき該当行のラジオボタンにチェックを入れる』といった処理を実装するときのやり取りになる。&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
Jqueryでid=&quot;sampletable&quot;を持つテーブルのtrへクリックイベントを付与する方法は？
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
Jqueryでid=&quot;sampletable&quot;を持つテーブルのtrにクリックイベントを付与するには、次のように記述します。&lt;br&gt;
&lt;pre&gt;
$(&quot;#sampletable tr&quot;).click(function(){
  // クリック時の処理
});
  &lt;/pre&gt;
また、trタグに対してイベントを設定する場合、それらのtrタグが存在しない状態で設定してしまうと、イベントが発火しない可能性があるため、documentのreadyイベントを利用して、HTMLがロードされた後に設定することをお勧めします。&lt;br&gt;
&lt;pre&gt;
$(document).ready(function(){
   $(&quot;#sampletable tr&quot;).click(function(){
     // クリック時の処理
   });
});
  &lt;/pre&gt;
また、jQuery 3.3.1以降では、on関数を使って、イベントを付与するのが推奨されています。&lt;br&gt;
&lt;pre&gt;
$(document).on(&quot;click&quot;,&quot;#sampletable tr&quot;,function(){
  // クリック時の処理
});
&lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
関数内でtdへアクセスするには
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
Jqueryでid=&quot;sampletable&quot;を持つテーブルのtrにクリックイベントを付与した場合、関数内でそのクリックしたtr要素にアクセスするには、this キーワードを使用します。&lt;br&gt;
これで、クリックしたtr要素にアクセスすることができます。&lt;br&gt;
そして、その中のtd要素にアクセスするには、$(this).find(&quot;td&quot;) や $(this).children(&quot;td&quot;) などのjqueryメソッドを使用します。&lt;br&gt;
&lt;pre&gt;
$(document).on(&quot;click&quot;,&quot;#sampletable tr&quot;,function(){
  var tds = $(this).find(&quot;td&quot;);
  console.log(tds);
});
&lt;/pre&gt;
また、特定のtd要素にアクセスしたい場合は、index指定でアクセスすることができます。&lt;br&gt;
&lt;pre&gt;
$(document).on(&quot;click&quot;,&quot;#sampletable tr&quot;,function(){
  var td = $(this).children(&quot;td&quot;).eq(0);
  console.log(td);
});
&lt;/pre&gt;
上記の例ではtrをクリックした時に、そのtr内の第1個のtd要素が取得できる。&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
更にtd内のradiobuttonへアクセスするには
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
Jqueryで、クリックしたtr内のtd要素から、td内のradiobutton要素にアクセスするには、次のように記述します。&lt;br&gt;
&lt;pre&gt;
$(document).on(&quot;click&quot;,&quot;#sampletable tr&quot;,function(){
    var radio = $(this).find(&quot;td input[type=&#39;radio&#39;]&quot;);
    console.log(radio);
});
  &lt;/pre&gt;
上記の例では、クリックしたtr要素内にある、input type=&#39;radio&#39; の要素を取得しています。&lt;br&gt;
また、特定の属性を持ったradio buttonにアクセスしたい場合は、属性セレクタを使用します。&lt;br&gt;
&lt;pre&gt;
$(document).on(&quot;click&quot;,&quot;#sampletable tr&quot;,function(){
    var radio = $(this).find(&quot;td input[type=&#39;radio&#39;][name=&#39;group1&#39;]&quot;);
    console.log(radio);
});
&lt;/pre&gt;
上記の例では、クリックしたtr要素内にある、input type=&#39;radio&#39; 且つ name=&#39;group1&#39; の要素を取得しています。&lt;br&gt;
&lt;br&gt;
これで、td内のradiobutton要素にアクセスすることができます。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
Jqueryでradiobuttonにチェックを入れるには
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
Jqueryで、radiobuttonにチェックを入れるには、次のように記述します。&lt;br&gt;
&lt;br&gt;
$(&quot;#radio-id&quot;).prop(&quot;checked&quot;, true);&lt;br&gt;
上記の例では、id=&quot;radio-id&quot; のradio buttonにチェックを入れています。&lt;br&gt;
また、name属性を使って、グループ内のラジオボタンの中から特定のものを選択する場合は、次のように記述します。&lt;br&gt;
&lt;br&gt;
$(&quot;input[name=&#39;group1&#39;][value=&#39;option2&#39;]&quot;).prop(&quot;checked&quot;, true);&lt;br&gt;
上記の例では、name=&#39;group1&#39; の中で、value=&#39;option2&#39; のラジオボタンにチェックを入れています。&lt;br&gt;
&lt;br&gt;
もう一つの方法は、attr関数を使って、checked属性をつけることです。&lt;br&gt;
&lt;br&gt;
$(&quot;#radio-id&quot;).attr(&quot;checked&quot;, &quot;checked&quot;);&lt;br&gt;
また、上記の例では、id=&quot;radio-id&quot; のradio buttonにチェックを入れています。&lt;br&gt;
&lt;br&gt;
注意点として、prop関数を使うと、checked属性がboolean値で扱われますが、attr関数を使うと、checked属性が文字列値で扱われます。&lt;br&gt;
&lt;br&gt;
これで、radiobuttonにチェックを入れることができます。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;
注意点や複数の選択肢まで提示してくれる。
&lt;br&gt;&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;trarnslation&quot;&gt;変換、トランスパイル&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
言語間で変換が可能。これもChatGPTの得意分野になる。&lt;br&gt;
Java⇔PHPや、日本語⇔プログラム、英語⇔日本語、果てはORM⇔SQLまで相互変換可能。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
以下のVBのコードをJavaに変換してください。
&lt;pre&gt;
For i = 1 To 100
    If i Mod 3 = 0 And i Mod 5 = 0 Then
        Console.WriteLine(&quot;FizzBuzz&quot;)
    ElseIf i Mod 3 = 0 Then
        Console.WriteLine(&quot;Fizz&quot;)
    ElseIf i Mod 5 = 0 Then
        Console.WriteLine(&quot;Buzz&quot;)
    Else
        Console.WriteLine(i)
    End If
Next
&lt;/pre&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
  
&lt;pre&gt;
for (int i = 1; i &amp;lt;= 100; i++) {
    if (i % 3 == 0 &amp;amp;&amp;amp; i % 5 == 0) {
        System.out.println(&quot;FizzBuzz&quot;);
    } else if (i % 3 == 0) {
        System.out.println(&quot;Fizz&quot;);
    } else if (i % 5 == 0) {
        System.out.println(&quot;Buzz&quot;);
    } else {
        System.out.println(i);
    }
}
&lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
以下の仕様を満たす関数をJavaScriptで表現してください。&lt;br&gt;
数列の最初の2つの数字は0、1で、それ以降のすべての数字は、それぞれの前の2つの数字を足した値になります。具体的には、数列は以下のようになります: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...&lt;br&gt;
この関数は引数nを受け取り数列の中からn番目より5つの数字を出力するものとします。&lt;br&gt;
例を挙げるとn=3のとき1, 2, 3, 5, 8と出力されます。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
 &lt;pre&gt;
function getFibonacciSequence(n) {
    let fibonacciSequence = [0, 1];

    for (let i = 2; i &amp;lt;= n; i++) {
        fibonacciSequence.push(fibonacciSequence[i - 1] + fibonacciSequence[i - 2]);
    }

    return fibonacciSequence.slice(n-5, n);
}
 &lt;/pre&gt;

ここで、 getFibonacciSequence 関数は、引数 n を受け取り、数列の中から n 番目より 5 つの数字を返すものです。最初の 2 つの数字は 0、1 で、それ以降の数字はそれぞれの前の 2 つの数字を足した値になります。&lt;br&gt;
数列は0番目から始まるので、n=3 の場合、1, 2, 3, 5, 8 が出力されます。&lt;br&gt;
&lt;/div&gt;

うん、間違えてる。個人的にはやっと間違えたかという気持ちではある。&lt;br&gt;
これはフィボナッチ数列についてChatGPTに聞いたあと回答を流用して問題っぽくでっち上げたものになる。&lt;br&gt;
フィボナッチ数列であることは解釈しているらしいが不具合がある。&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
Express in JavaScript a function that satisfies the following specifications&lt;br&gt;
The first two numbers in the number sequence are 0 and 1, and all subsequent numbers are the value of each preceding two numbers added together. Specifically, the number sequence will look like this: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...&lt;br&gt;
The function takes an argument n and outputs the five numbers from the sequence, starting with the nth number.&lt;br&gt;
For example, if n=3, the output will be 1, 2, 3, 5, 8.&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
 &lt;pre&gt;
function fibonacciSequence(n) {
  let fib = [0, 1];
  for (let i = 2; i &amp;lt; n + 5; i++) {
    fib[i] = fib[i-1] + fib[i-2];
  }
  return fib.slice(n-1, n+4);
}
&lt;/pre&gt;

You can call this function like this: fibonacciSequence(3)&lt;br&gt;
This will return [1,2,3,5,8] as expected.&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
英語で質問する、そして具体的な出力例を提示することで精度が上がる。&lt;br&gt;
質問文の調整とテスト検証が必要なこのレベルだと自分で組んでしまった方が良いかもしれない。&lt;br&gt;
ただし明らかに脱初心者レベルくらいなら超えているし、この手の問題に慣れていない職業プログラマも結構時間がかかるであろうものを一瞬で出してくれる。&lt;br&gt;
&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
Appleの審査に必要なので以下のアプリの機能を説明するこなれた英文に書き換えてください&lt;br&gt;
・AIを搭載したボイスアシスタントです&lt;br&gt;
・日常会話や人生相談、また高度な専門分野についても質疑応答することが可能です&lt;br&gt;
・高度な文章の認識機能を有します&lt;br&gt;
・まるで人間のような言葉を話します&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
&gt; Our app is a voice assistant equipped with AI technology, able to engage in everyday conversation, offer advice on personal matters, and provide informative responses to inquiries on specialized subjects. Additionally, it has advanced text recognition capabilities, and can communicate with users in a natural and human-like manner.
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
日本語に訳すとどうなりますか？
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
当社のアプリはAI技術を搭載したボイスアシスタントです。日常会話、人生相談、そして高度な専門分野についても質問に答えることができます。また、高度な文章認識機能も備えており、人間のような言葉でコミュニケーションをすることができます。
&lt;/div&gt;
&lt;br&gt;
英語だと本当にこれで良いのか判断がつかないがDeepLやGrammarlyと組み合わせると良いらしい。&lt;br&gt;
拙い英文によってリジェクトされるといったことが多少減るかもしれない。&lt;br&gt;
それはそれとして恐らくこのアプリケーションはリジェクトされる。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
以下のDoctrineのコードをSQLへ変換してください。
 &lt;pre&gt;
        $qb = $this-&gt;createQueryBuilder(&#39;p&#39;)
        -&gt;select([
            &#39;p.id as product_id&#39;,
            &#39;p.name as product_name&#39;])
        -&gt;andWhere(&#39;p.id = :pId&#39;)
        -&gt;andWhere(&#39;p.sample_flg = 0&#39;)
        -&gt;setParameter(&#39;pId&#39;, $id)
        -&gt;distinct();
&lt;/pre&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
SELECT DISTINCT p.id as product_id, p.name as product_name FROM products p WHERE p.id = :pId AND p.sample_flg = 0;
&lt;/div&gt;
&lt;br&gt;
元はテーブル名の記述がないが良い感じに補完してくれている。&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
 &lt;br&gt;



&lt;hr /&gt;
&lt;h2 id=&quot;Ideas&quot;&gt;相談、アイデアだし、要件整理&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
あるテーマについてやりとりしながら自分の考えを整理するといった利用方法もある。&lt;br&gt;
質問が曖昧だと一般論や微妙にごまかしが入った文章が返ってくるがもう少し突っ込むと何かしらヒントをくれる。&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
今年の目標を立てたい
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
今年の目標を立てることはとても重要です。目標を立てることで、自分が望む方向に向かって進むことができます。&lt;br&gt;
目標はSMARTという原則に従って立てることをおすすめします。&lt;br&gt;
SMARTは、Specific（具体的）、Measurable（計測可能）、Achievable（達成可能）、Relevant（関連性）、Time-bound（期限）の略です。&lt;br&gt;
目標を立てる際は、それが具体的であり、計測可能であり、達成可能であり、自分にとって重要であり、そして期限が設定されていることを確認してください。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
一般的なものでいいので15個ほど例をあげてください
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
1.体重を減らす&lt;br&gt;
2.毎日運動する&lt;br&gt;
3.食生活を健康的にする&lt;br&gt;
4.睡眠時間を増やす&lt;br&gt;
5.新しいスキルを学ぶ&lt;br&gt;
6.読書量を増やす&lt;br&gt;
7.旅行する&lt;br&gt;
8.勉強会に参加する&lt;br&gt;
9.スマホの使用時間を減らす&lt;br&gt;
10.新しい趣味を見つける&lt;br&gt;
11.ボランティア活動をする&lt;br&gt;
12.貯金を増やす&lt;br&gt;
13.カフェ巡りをする&lt;br&gt;
14.ギターを習う&lt;br&gt;
15.家族や友人との時間を増やす&lt;br&gt;
&lt;br&gt;
上記のような目標が一般的であり、最適なものであるかはあなた次第です。目標は自分に合ったものを選ぶことが重要です。上記の例を参考にして、自分に合った目標を立てることができると良いでしょう。
&lt;/div&gt;
&lt;br&gt;
n個例を挙げてくれといった問いはアイデア出しには非常に有効。
&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
講義のアンケートを取ろうと思うんだけどどんな項目があるといいだろう？
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
講義のアンケートの項目は、様々な要素をカバーすることができます。&lt;br&gt;
&lt;br&gt;
1.講義の内容：学生たちが理解できたかどうか、わかりやすかったかどうかなど。&lt;br&gt;
2.講義の進め方：講義が進んでいくスピードや、使用された教材など。&lt;br&gt;
3.講師の教え方：講師がわかりやすく説明してくれたか、理解しやすかったかなど。&lt;br&gt;
4.学習環境：講義が行われる教室や、学習資料などが充実していたか。&lt;br&gt;
5.その他：講義に対して意見や提案など。&lt;br&gt;
&lt;br&gt;
このように様々な項目をカバーして、学生の視点から講義の評価を取ることで、今後の講義改善に役立てることができます。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
もう少しいろいろ欲しい
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
はい、もう少し詳しいアイデアをご紹介します。&lt;br&gt;
&lt;br&gt;
5.授業の難易度：学生たちがどの程度の挑戦をしているか、もしくは難しすぎないかを確認します&lt;br&gt;
6.教材の質：使用された教材が適切だったか、役に立っていたか、もしくは改善の余地があるかを聞くことができます&lt;br&gt;
7.学習サポート: 講義の外でのサポート、参考書、講義資料の提供などがあったか、もしくは必要だったかを聞くことができます&lt;br&gt;
8.学習目標達成: 学生が講義を修了した後に、望んでいた学習目標が達成されたかどうかを聞くことができます&lt;br&gt;
10.満足度: 最後に、講義全体に対して満足していたかどうか、もしくは何を改善すべきかを聞くことができます&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
これらのアイデアを参考に、学生の視点から講義の評価を取ることで、講義をより良いものにするための改善点を洗い出すことができます。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
キャリアカウンセラーとして活躍してほしい。&lt;br&gt;
あなたの仕事は、彼らのスキル、興味、経験に基づいて、どのキャリアに最も適しているかを決定するのを助けることです。&lt;br&gt;
また、利用可能なさまざまなオプションについて調査し、さまざまな業界の求人市場の傾向を説明し、&lt;br&gt;
特定の分野を追求するためにどの資格が有益であるかについてアドバイスする必要があります。&lt;br&gt;
私の最初のリクエストは、「ソフトウェア エンジニアリングを極めるべきでしょうか？それともマネジメントスキルを磨くべきでしょうか？」です。&lt;br&gt;
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
As a career counselor, my role would be to help individuals determine which career is most suitable for them based on their skills, interests, and experiences. I would also research available options and explain trends in the job market for various industries, and advise on which qualifications would be beneficial for pursuing a specific field. In response to your question about whether to focus on becoming a software engineer or developing management skills, it would depend on the individual&#39;s specific goals and interests. Both software engineering and management can lead to successful and fulfilling careers, and it ultimately depends on the person&#39;s strengths and career aspirations. I would recommend discussing this further with a career counselor to determine the best path for you.
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
日本語でお願いします
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
キャリアカウンセラーとして、私の仕事は、個人のスキル、興味、経験に基づいて、どのキャリアが最も適しているかを決定するのを助けることです。&lt;br&gt;
また、利用可能なオプションを調査し、業界の求人市場の傾向を説明し、特定の分野を追求するために必要な資格についてアドバイスすることもあります。&lt;br&gt;
あなたの質問に対して、「ソフトウェアエンジニアリングを極めるべきでしょうか？それともマネジメントスキルを磨くべきでしょうか？」については、個人のゴールや興味次第です。&lt;br&gt;
ソフトウェアエンジニアリングやマネジメントは、成功し、充実したキャリアにつながりますが、それは個人の強みやキャリアアスピレーション次第です。&lt;br&gt;
私はあなたには、これについてもっと詳しく話し合うために、キャリアカウンセラーに相談することをお勧めします。&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
どうすべきか悩んでいるのでヒントやきっかけになるような情報が欲しいです。
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
ソフトウェアエンジニアリングとマネジメントの両方について、深く学ぶことは、あなたのキャリアにおいて非常に有益である可能性があります。&lt;br&gt;
それでも、あなたの興味や目標に合わせて、特に重点を置くべき領域を選択することが重要です。&lt;br&gt;
&lt;br&gt;
ソフトウェアエンジニアリングに関しては、プログラミングスキルを磨き、技術的な知識を深めることが重要です。&lt;br&gt;
また、新しい技術やツールに対応し、アプリケーションやシステムを設計・開発するスキルを身に付けることが大切です。&lt;br&gt;
&lt;br&gt;
一方、マネジメントに関しては、チームを統率するためのスキルを身に付け、プロジェクトを遂行するための戦略を立てることが重要です。&lt;br&gt;
また、コミュニケーション能力やリーダーシップを磨くことも大切です。&lt;br&gt;
&lt;br&gt;
最終的には、あなたの興味や目標に合わせて、特に重点を置く領域を選択することが重要です。&lt;br&gt;
それに加えて、仕事上でのスキルアップにも努力をし、業界のトレンドを継続的に学ぶことが必要です。&lt;br&gt;
&lt;/div&gt;


&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
ソフトウェアエンジニアとしてのキャリアを極めるにはどうしたらいいですか
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
プログラミングスキルを磨く: より高度なプログラミング言語や技術を学び、実際にアプリケーションやシステムを開発する経験を積むことで、スキルを磨くことができます。&lt;br&gt;
&lt;br&gt;
1.新しい技術に対応する: 業界は日々変化しており、新しい技術やツールが登場します。業界のトレンドを継続的に学ぶことで、最新の技術に対応し、競争力を高めることができます。&lt;br&gt;
2.アーキテクチャやデザインパターンについて学ぶ: ソフトウェア開発において、アーキテクチャやデザインパターンは重要な役割を担います。それらについて学び、適切なアプローチを選択することができるようになることが重要です。&lt;br&gt;
3.エンジニアリングプラクティスについて学ぶ: ソフトウェア開発において、品質管理、バグのトラッキング、テストなどのエンジニアリングプラクティスは重要な役割を担います。それらについて学ぶことで、効率的かつ品質の高いソフトウェア開発をすることができるようになります。&lt;br&gt;
4.実際の経験を積む: 実際にアプリケーションやシステムを開発する経験を積むことで、学んだことを実践することができます。また、実際に問題に直面し、解決する経験を積むことで、臨機応変な対応力を身に付けることができます&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
マネージャとしてのキャリアを極めるにはどうしたらいいですか
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
マネージャとしてのキャリアを極めるためには、次のようなことをすることが重要です。&lt;br&gt;
&lt;br&gt;
マネージメントスキルを磨く: チームを統率するためのスキル、プロジェクトを遂行するための戦略を立てること、コミュニケーション能力、リーダーシップなどを磨くことが大切です。&lt;br&gt;
ビジネススキルを磨く: 経営戦略、財務管理、マーケティングなどのビジネススキルを磨くことで、組織全体を統合的に管理することができるようになります。&lt;br&gt;
業界の知識を深める: 業界の知識を深めることで、市場動向や競争環境を理解し、組織を成功に導くための戦略を立てることができます。&lt;br&gt;
ネットワーキングをする: 業界のリーダーや同業者と交流することで、新しいアイデアや知識を得ることができます。&lt;br&gt;
経験を積む: 実際に組織を統治する経験を積むことで、臨機応変な対応力を身に付け、組織を成功に導くための戦略を立てることができます。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
英語圏の情報からほぼまるパクリしてきたものだが、最初に立場や条件等をいろいろ指定してそれから質問に入るといった使われ方がされているようだ。
&lt;br&gt;&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
ChatGPTを紹介する記事を書きたいです。どんな構成がいいですか？
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
記事の構成について提案します。&lt;br&gt;
&lt;br&gt;
1.ChatGPTの紹介&lt;br&gt;
1.1 ChatGPTとは何かを簡潔に説明します。&lt;br&gt;
1.2 使用方法や特長についても紹介します。&lt;br&gt;
&lt;br&gt;
2.ChatGPTの背景&lt;br&gt;
2.1 ChatGPTがどのような研究背景から生まれたかを説明します。&lt;br&gt;
2.2 言語モデルについて一般的な知識を説明します。&lt;br&gt;
&lt;br&gt;
3.ChatGPTの使用事例&lt;br&gt;
3.1 ChatGPTがどのような用途で使用されているかを具体的な事例とともに説明します。&lt;br&gt;
&lt;br&gt;
4 ChatGPTの未来&lt;br&gt;
4.1 ChatGPTが将来どのように改善されるかを紹介します。&lt;br&gt;
4.2 ChatGPTが将来どのように影響を与えるかについても述べます。&lt;br&gt;
&lt;br&gt;
5.結論&lt;br&gt;
5.1 ChatGPTについての総括を行います。&lt;br&gt;
5.2 ChatGPTが将来どのような影響を与えるかを要約します。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
これは危険。Googleの検索結果が更に汚染されてしまう...
&lt;br&gt;&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2 id=&quot;design&quot;&gt;DB設計&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
とりあえずたたき台が欲しいときに必要十分な回答が返ってくる。
&lt;br&gt;&lt;br&gt;

&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
ECサイト構築に必要なテーブル一覧を出力して
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
ECサイトに必要なテーブルとして、基本的には以下のようなものがあります。&lt;br&gt;
&lt;br&gt;
会員(customers)&lt;br&gt;
商品(products)&lt;br&gt;
カテゴリ(categories)&lt;br&gt;
注文(orders)&lt;br&gt;
注文詳細(order_details)&lt;br&gt;
配送先(shipping_addresses)&lt;br&gt;
支払い(payments)&lt;br&gt;
レビュー(reviews)&lt;br&gt;
お問い合わせ(inquiries)&lt;br&gt;
ただし、これらのテーブルだけでは不十分であり、特定のニーズに合わせてカスタマイズすることが必要です。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
会員テーブルには何があればいい
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
会員(customers)テーブルには、会員情報を管理するための情報が必要です。&lt;br&gt;
基本的な項目としては以下のようなものがあります。&lt;br&gt;
&lt;br&gt;
会員ID(primary key)&lt;br&gt;
ユーザー名&lt;br&gt;
メールアドレス&lt;br&gt;
パスワード&lt;br&gt;
電話番号&lt;br&gt;
住所&lt;br&gt;
性別&lt;br&gt;
生年月日&lt;br&gt;
会員登録日&lt;br&gt;
会員有効期限&lt;br&gt;
会員ステータス(有効/退会済みなど)&lt;br&gt;
これらのうち、会員ID、ユーザー名、メールアドレス、パスワードは必須項目となります。&lt;br&gt;
また、会員情報を更新する際には、必ず個人情報保護に関する法律を遵守する必要があります。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
各テーブルの詳細情報が出力されない場合は追加で質問するか、&lt;br&gt;
「ECサイト構築に必要なテーブル一覧をカラム含めて出力して」といった具合に質問文に含めると良い。&lt;br&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot; style=&quot;background: skyblue;&quot;&gt;
ビデオ等の受講が可能な教育用のウェブアプリケーションが欲しい。
必要なテーブル一覧を出力して。
&lt;/div&gt;

&lt;div class=&quot;space&quot; style=&quot;background: palegreen;&quot;&gt;
下記のテーブルが必要です。&lt;br&gt;
&lt;br&gt;
Usersテーブル：ユーザーの情報を格納するテーブル。名前、メールアドレス、パスワードなどが格納されます。&lt;br&gt;
Coursesテーブル：コースの情報を格納するテーブル。コース名、講師名、開講日、説明などが格納されます。&lt;br&gt;
Enrollmentsテーブル：ユーザーが受講しているコースの情報を格納するテーブル。ユーザーID、コースID、受講日などが格納されます。&lt;br&gt;
Videosテーブル：ビデオのURL、タイトル、説明、コースIDなどが格納されます。&lt;br&gt;
Quizzesテーブル：クイズの質問、選択肢、正解、コースIDなどが格納されます。&lt;br&gt;
Quiz_resultsテーブル：ユーザーが受けたクイズの結果、クイズID、ユーザーID、得点などが格納されます。&lt;br&gt;
※上記のテーブル名、カラム名、データ型は参考のために提供したものであり、適宜変更した方がよい場合もあります。&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
特に想定していなかったがQuizzesテーブルというものがあり受講後等の理解度チェックができるらしい。サービスとして提供するうえで組み込むのもアリかもしれない。といった具合で場合によっては意外な発見があるかもしれない。
&lt;br&gt;&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2 id=&quot;point&quot;&gt;注意点&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;

&lt;ul type=&quot;disc&quot;&gt;
    &lt;li&gt;妥当性の検証が必要&lt;/li&gt;
    &lt;li&gt;計算ができない&lt;/li&gt;
    &lt;li&gt;プログラムならテストすればいいが英文の場合は検証が難しい&lt;/li&gt;
    &lt;li&gt;正解が必要なものでネット上に答えがないものはNG  &lt;/li&gt;
    &lt;li&gt;英語の方が精度が良いとのこと&lt;/li&gt;
    &lt;li&gt;○外秘の文章は入れないように。議事録投入したら多分要約してくれるが...&lt;/li&gt;
    &lt;li&gt;最新の情報に対応していない。2021時点のデータで学習している&lt;/li&gt;
    &lt;li&gt;1回のやり取りに10円程度。1日何百万とかかっているそうなので無料でのサービス継続は怪しい&lt;/li&gt;
    &lt;/ul&gt;
&lt;br&gt;

&lt;br&gt;&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2 id=&quot;summary&quot;&gt;まとめ&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;
ChatGPTは&lt;br&gt;
&lt;br&gt;
・簡単なスニペット（コード片）調べるときのGoogle検索の代替になりうる&lt;br&gt;
・要件（考え）を整理するときの壁打ち要因になりうる&lt;br&gt;
・理解力、読解力そして語学力、表現力に優れている&lt;br&gt;
・回答内容は要検証&lt;br&gt;
・「アウトプットが正しいかどうか判断できる」人しか使えない&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
出鱈目が混ざるという問題についてはプログラムであればテスト、検証すれば良い。そもそも正確性でいうとGoogle検索結果の1番目、2番目あたりとそんなに変わらない印象（おまけに端的でわかりやすい）&lt;br&gt;
またアイデア出しについても正確性等よりも数が必要なのでこの2つに関しては特に有用。&lt;br&gt;
&lt;br&gt;
印象として少し癖がある優秀な部下を手に入れた気分だ。&lt;br&gt;

&lt;ul type=&quot;disc&quot;&gt;
    &lt;li&gt;作業がとてもはやい&lt;/li&gt;
    &lt;li&gt;知識範囲が異常に広い&lt;/li&gt;
    &lt;li&gt;得意科目は国語、英語、プログラミング。苦手科目は数学、物理、歴史、時事など。文系か？&lt;/li&gt;
    &lt;li&gt;雑な指示でも何かしら返してくれる。おまけに何度手直しを要求しても文句一つない。複数選択肢を用意したりと結構気が利く。&lt;/li&gt;
    &lt;li&gt;知らないことは知ったかぶりをする性格なので最終的な判断はこちらでやらないといけない&lt;/li&gt;
&lt;/ul&gt;
といった具合だ。&lt;br&gt;
特に後ろ3つに関しては以前AIに対して抱いていた印象と真逆ではないだろうか。なんというかすごく人間っぽい。そのあたりを勘違いして使えないと言っているケースが多いように感じる。&lt;br&gt;
&lt;br&gt;
少なくとも私の仕事を無くしてくれそうないが、構文だけ覚えた未経験ソフトウェアエンジニアとかだとChatGPTが負ける要素が思いつかない。他業種の経験だとか将来性だとかいった強みとなりそうな部分すら怪しい。&lt;br&gt;
&lt;br&gt;
特に理解力、読解力そして表現力が脅威的すぎる（本質的に理解、読解しているかは置いておいて）そうとうな割合の人間が負けてしまっている。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2 id=&quot;referernce&quot;&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;
&lt;a href=&quot;https://github.com/f/awesome-chatgpt-prompts&quot; target=&quot;_blank&quot;&gt;https://github.com/f/awesome-chatgpt-prompts&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://qiita.com/sakasegawa/items/82069c97a1ee011c2d1e&quot; target=&quot;_blank&quot;&gt;https://qiita.com/sakasegawa/items/82069c97a1ee011c2d1e&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://anond.hatelabo.jp/20230106064104&quot; target=&quot;_blank&quot;&gt;https://anond.hatelabo.jp/20230106064104&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://riklog.com/research/chatgpt/&quot; target=&quot;_blank&quot;&gt;https://riklog.com/research/chatgpt/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://qiita.com/autotaker1984/items/5b5ac8c01d11fbbbc4a7&quot; target=&quot;_blank&quot;&gt;https://qiita.com/autotaker1984/items/5b5ac8c01d11fbbbc4a7&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://qiita.com/autotaker1984/items/c6769f9ea7f2df1fdeb5&quot; target=&quot;_blank&quot;&gt;https://qiita.com/autotaker1984/items/c6769f9ea7f2df1fdeb5&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;

</description><link>http://trueman-developer.blogspot.com/2023/01/chatgpt.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizn15V3q4hj9_qBjBW7RNUR3BXeQHF6UB7IVqKWPAzL8YSRn07PaZxGGvHKNtsH5uVNoNV42W-2MHXuwhGZn27RfhR3m2pZ_dmfUtwk-96hG8rAP-Wm7qh72VzR7DHg6HwrE_p8oacKuK2d5v5AFIXhmuT4VhFC59APgChw-nVgzhzXZzITd1LIJqlJg/s72-c/cap0.jpeg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-305990514386616845</guid><pubDate>Mon, 24 Oct 2022 02:04:00 +0000</pubDate><atom:updated>2022-10-24T11:04:42.864+09:00</atom:updated><title>APKからAndroidアプリを更新する実装</title><description>Intentを用いた（半）自動更新。&lt;br&gt;
主な用途はGooglePlayを経由しない社内アプリなど。&lt;br&gt;


&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;Intent経由でインストーラ呼び出し&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;

Intent経由でインストーラを呼び出せるのでこれを利用する。&lt;br&gt;&lt;br&gt;

&lt;pre class=&quot;brush:java&quot;&gt;

// ファイルパス
val file: File = File(getExternalFilesDir(&quot;&quot;), &quot;test.apk&quot;)

// ファイルのURI
val uri: Uri = FileProvider.getUriForFile(
    applicationContext,
    BuildConfig.APPLICATION_ID + &quot;.provider&quot;,
    file
)
// インストーラ呼び出し
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, &quot;application/vnd.android.package-archive&quot;)
intent.flags =
    Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
startActivity(intent)
&lt;/pre&gt;
&lt;br&gt;&lt;br&gt;
基本的にデータタイプapplication/vnd.android.package-archiveへファイルのUriを渡してフラグに読み書き権限を付与すれば良い。&lt;br&gt;
Intentに渡すファイルUriはFileProvider.getUriForFileを使用するがAndroid7以降からファイルアクセスの制限がキツくなったためアクセス許可が必要になる。&lt;br&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;FileProviderを利用して一時的にアクセス許可をおこなう&lt;/h2&gt;
&lt;hr /&gt;

FileProviderとはURI経由でアプリ間のファイルアクセスの許可をおこなう仕組み。&lt;br&gt;
インストーラからAPKをインストールするにはAPKへアクセスできるようにする必要がある。&lt;br&gt;&lt;br&gt;


&lt;h3&gt;AndroidManifest.xml&lt;/h3&gt;

application内に以下を追記。

&lt;pre class=&quot;brush:xml&quot;&gt;

&amp;lt;provider
    android:name=&quot;androidx.core.content.FileProvider&quot;
    android:authorities=&quot;${applicationId}.provider&quot;
    android:grantUriPermissions=&quot;true&quot;
    android:exported=&quot;false&quot;&amp;gt;
    &amp;lt;meta-data
        android:name=&quot;android.support.FILE_PROVIDER_PATHS&quot;
        android:resource=&quot;@xml/provider_path&quot; /&amp;gt;
&amp;lt;/provider&amp;gt;
&lt;/pre&gt;
&lt;br&gt;
&lt;b&gt;android:authorities&lt;/b&gt;はFileProvider.getUriForFileの第2引数と一致させること。&lt;br&gt;
&lt;b&gt;android:resource&lt;/b&gt;のみ変更可能(↓で作成するファイル名を指定する)&lt;br&gt;&lt;br&gt;

&lt;h3&gt;app/src/main/res/xml/provider_path.xml&lt;/h3&gt;
&lt;br&gt;
アクセス許可するディレクトリを指定する。&lt;br&gt;

&lt;pre class=&quot;brush:xml&quot;&gt;

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;paths xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;external-files-path name=&quot;name&quot; path=&quot;./&quot; /&amp;gt;
&amp;lt;/paths&amp;gt;
&lt;/pre&gt;
&lt;br&gt;
対象ディレクトリは大きく6種類。&lt;br&gt;
&lt;a href=&quot;https://developer.android.com/reference/androidx/core/content/FileProvider?hl=ja&quot; target=&quot;_blank&quot;&gt;https://developer.android.com/reference/androidx/core/content/FileProvider?hl=ja&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;h4&gt;files-path&lt;/h4&gt;
Context.getFilesDir()で指定されるディレクトリ&lt;br&gt;&lt;br&gt;

&lt;h4&gt;cache-path&lt;/h4&gt;
getCacheDir()で指定されるディレクトリ&lt;br&gt;&lt;br&gt;

&lt;h4&gt;external-path&lt;/h4&gt;
外部ストレージのルートディレクトリ&lt;br&gt;
Environment.getExternalStorageDirectory()で指定される。&lt;br&gt;&lt;br&gt;

&lt;h4&gt;external-files-path&lt;/h4&gt;
外部ストレージのアプリのルートディレクトリ。&lt;br&gt;
Context.getExternalFilesDir(null)で指定される。&lt;br&gt;
具体的には&lt;br&gt;
ログ出力した場合 &lt;i&gt;/storage/emulated/0/Android/data/パッケージ名/files&lt;/i&gt; &lt;br&gt;
Device File Explorerから確認した場合 &lt;i&gt;/sdcard/Android/data/パッケージ名/files/&lt;/i&gt; &lt;br&gt;
となる。&lt;br&gt;
今回はこれを使用する。&lt;br&gt;
外部雨ストレージの詳細については以下にまとめている&lt;br&gt;
&lt;a href=&quot;https://trueman-developer.blogspot.com/2022/09/android10kotlin.html&quot; target=&quot;_blank&quot;&gt;https://trueman-developer.blogspot.com/2022/09/android10kotlin.html&lt;/a&gt;
&lt;br&gt;&lt;br&gt;

&lt;h4&gt;external-cache-path&lt;/h4&gt;&lt;br&gt;
外部ストレージのアプリのキャッシュディレクトリ。&lt;br&gt;
Context.getExternalCacheDir()で指定される。&lt;br&gt;
アプリ更新目的なら一時領域のこちらを使用する方が良いかもしれない。&lt;br&gt;&lt;br&gt;

&lt;h4&gt;external-media-path&lt;/h4&gt;
アプリの外部メディア領域のルートディレクトリ。&lt;br&gt;
Context.getExternalCacheDir()で指定される。&lt;br&gt;
API21以降のみ。&lt;br&gt;&lt;br&gt;


&lt;b&gt;name&lt;/b&gt;は任意。&lt;br&gt;
&lt;b&gt;path&lt;/b&gt;はサブディレクトリ名を指定する。ルート直下の場合は&quot;./&quot;を指定する。&lt;br&gt;&lt;br&gt;


以上でアプリアップデートの仕組みは実装可能。&lt;br&gt;
初回のみ「この提供元のアプリを許可」を手動でオンにする必要がある。&lt;br&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://developer.android.com/reference/kotlin/androidx/core/content/FileProvider&quot; target=&quot;_blank&quot;&gt;https://developer.android.com/reference/kotlin/androidx/core/content/FileProvider&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://developer.android.com/training/secure-file-sharing/setup-sharing?hl=ja&quot; target=&quot;_blank&quot;&gt;https://developer.android.com/training/secure-file-sharing/setup-sharing?hl=ja&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://enjoy-rfid.blogspot.com/2019/03/google-playandroid.html&quot; target=&quot;_blank&quot;&gt;http://enjoy-rfid.blogspot.com/2019/03/google-playandroid.html&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://azunobu.hatenablog.com/entry/2019/06/27/120908&quot; target=&quot;_blank&quot;&gt;https://azunobu.hatenablog.com/entry/2019/06/27/120908&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://www.ninton.co.jp/archives/2745&quot; target=&quot;_blank&quot;&gt;https://www.ninton.co.jp/archives/2745&lt;/a&gt;

&lt;br&gt;&lt;br&gt;
</description><link>http://trueman-developer.blogspot.com/2022/10/apkandroid.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-7936003687204286522</guid><pubDate>Mon, 19 Sep 2022 13:40:00 +0000</pubDate><atom:updated>2022-09-19T22:40:57.497+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Android</category><category domain="http://www.blogger.com/atom/ns#">Kotlin</category><title>Android10以降で共有ストレージに保存されたファイルの読み書きを実装したい（Kotlin）</title><description>バージョン毎にやり方が違う上に用途によってもやり方が違う。おまけにJava, Kotlinで分かれているせいでまともに調べられない。&lt;br&gt;&lt;br&gt;

やりたいこと&lt;br&gt;
Android10以降で&lt;br&gt;
Kotlinで&lt;br&gt;
外部から(具体的に言うとWindowsPCからUSB経由でファイルのやり取り)ファイルのアクセスがしたい&lt;br&gt;
ついでにShift-JIS対応&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;内部的にファイルを利用する&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;

まずファイルのやりとりが発生せず内部的に保持するだけなら以下のコードでファイルの読み書きが可能。

&lt;pre class=&quot;brush:js&quot;&gt;

        // ファイル読み込み
        // Charset.forName(&quot;MS932&quot;)でShift-jis読み込み。未指定の場合UTF-8
        applicationContext.openFileInput(&quot;test.txt&quot;).bufferedReader(Charset.forName(&quot;MS932&quot;))
            .useLines { lines -&amp;gt;
                // 改行区切りで処理 空行無視
                for (line in lines) {
                    Log.i(&quot;develop:file&quot;, &quot;line:$line&quot;)
                }
            }
            
        // ファイルの書き込み
        val filename = &quot;test.txt&quot;
        val fileContents = &quot;Hello world!&quot;
        applicationContext.openFileOutput(filename, Context.MODE_PRIVATE).use {
            it.write(fileContents.toByteArray())
        }
&lt;/pre&gt;

一応ファイルの中身を見ることは可能でパスは&lt;br&gt;
/data/data/[アプリケーションのパッケージ名]/files でファイルの読み書きが可能。&lt;br&gt;
ただしAndroidのDevice File Manager経由でかつDebug版のAPKからインストールしたアプリしか恐らく参照できない。&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2&gt;Android10以降で共有ストレージに保存されたファイルの読み書きを実装する&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
ユースケースとしては恐らく下記の「直接ファイルパスを使用するコードまたはライブラリからファイルにアクセスする」になる？わかりにくい。&lt;br&gt;
&lt;a href=&quot;https://developer.android.com/training/data-storage/use-cases?hl=ja#access-file-paths&quot; target=&quot;_blank&quot;&gt;https://developer.android.com/training/data-storage/use-cases?hl=ja#access-file-paths&lt;/a&gt;&lt;br&gt;&lt;br&gt;


&lt;h3&gt;パーミッションのリクエスト&lt;/h3&gt;

Androoid10未満対応&lt;br&gt;
アプリ固有ストレージを使用するので以下は完全に不要（一応メモを残しておく）&lt;br&gt;&lt;br&gt;

&lt;pre class=&quot;brush:xml&quot;&gt;

&amp;lt;application
    android:requestLegacyExternalStorage=&quot;true&quot;
&lt;/pre&gt;
&lt;br&gt;
 requestLegacyExternalStorageをtrueにすればAndroid10までは動作するが11以降が動かなくなる。

 
&lt;br&gt;&lt;br&gt;
 AndroidManifest.xml
 
&lt;pre class=&quot;brush:xml&quot;&gt;

    &amp;lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&amp;gt;
&amp;lt;/manifest&amp;gt;
&lt;/pre&gt;

WRITEがあれば自動でREADも有効になる（今回は不要）&lt;br&gt;
 
&lt;pre class=&quot;brush:js&quot;&gt;
        if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
            == PackageManager.PERMISSION_GRANTED) {
            // Permission承認済み
            Log.i(&quot;develop&quot;, &quot;外部読み書き可能&quot;)

        } else {
            // Permissionリクエスト
            requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
                1)
        }
&lt;/pre&gt;


コード上で権限をリクエストする場合AndroidManifest.xmlに記述する必要はない（今回は不要）&lt;br&gt;&lt;br&gt;


上記のやり方で/sdcard以下(Windowsから確認出来るディレクトリ全て)へ自由にアクセスできるようになる（ただし最大でAndroid10まで）&lt;br&gt;
上記は古いバージョンの情報、あるいは用途が違う？そこまで調べてはいない。&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2&gt;ファイルへ書き込む（Android10以降）&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;

Android10以降は特定のディレクトリ(/sdcard/Android/data/[パッケージ名])に対してデフォルトでアクセス権が付与されている。&lt;br&gt;
&lt;a href=&quot;https://developer.android.com/training/data-storage/app-specific#external&quot; target=&quot;_blank&quot;&gt;https://developer.android.com/training/data-storage/app-specific#external&lt;/a&gt;&lt;br&gt;
前置きが長くなったが要するに下記コードだけで良い。&lt;br&gt;


&lt;pre class=&quot;brush:js&quot;&gt;
// ファイルパス
val fileName = &quot;text.txt&quot;
val filePath = File(getExternalFilesDir(&quot;&quot;), fileName)
Log.i(&quot;APPFilePath&quot;, filePath.absolutePath)

val fileContents = &quot;Hello world!&quot;
filePath.bufferedWriter().use {
    it.write(fileContents)
}
&lt;/pre&gt;

&lt;br&gt;&lt;br&gt;
ファイルパスはコード(absolutePath)から表示した場合/storage/emulated/0/Android/data/[パッケージ名]/files/text.txt&lt;br&gt;
Device File Explorerから確認した場合/sdcard/Android/data/[パッケージ名]/files/text.txt&lt;br&gt;
Windowから確認した場合PC\[端末名]\内部共有ストレージ\Android\data\[パッケージ名]\files\text.txt
となる。&lt;br&gt;&lt;br&gt;

getExternalFilesDirに引数を指定するとfiles以下にディレクトリが作成される。&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;ファイルを読みこむ&lt;/h2&gt;
&lt;hr /&gt;

 
&lt;pre class=&quot;brush:js&quot;&gt;
val filePath = File(getExternalFilesDir(&quot;&quot;), fileName)
Log.i(&quot;APPFilePath&quot;, filePath.absolutePath)
filePath.bufferedReader(Charset.forName(&quot;MS932&quot;)).use {
    val text = it.readText()
    Log.i(&quot;FileRead&quot;, text)
}
&lt;/pre&gt;
&lt;br&gt;
 filePath.bufferedReader(Charset.forName(&quot;MS932&quot;)) で引数を指定することで文字コードを指定して読み書き可能（デフォルトUTF-8）&lt;br&gt;&lt;br&gt;
 
 アプリのインストール時にフォルダが作成される。&lt;br&gt;
ファイルを該当箇所に配置した後にアプリインストールをおこなっても問題なく機能する。&lt;br&gt;
アプリをアンインストールした場合、フォルダごと削除される。&lt;br&gt;&lt;br&gt;&lt;br&gt;


まとめると&lt;br&gt;
Androoid10以上は専用の領域が割り当てられるのでコード上で完結する。&lt;br&gt;
Android9未満に対応する場合は従来通りパーミッションのリクエストが必要。&lt;br&gt;&lt;br&gt;

今回は『別のアプリで保存したファイルを読み書きする』といったことはしていない。&lt;br&gt;
その他の方法を取りたい場合は以下のユースケースから（微妙に分かりにくい）&lt;br&gt;
&lt;a href=&quot;https://developer.android.com/training/data-storage/use-cases?hl=ja&quot; target=&quot;_blank&quot;&gt;https://developer.android.com/training/data-storage/use-cases?hl=ja&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;


わかってさえいれば簡単に出来るがここまでくるのが難しすぎる。&lt;br&gt;&lt;br&gt;&lt;br&gt;



&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;&lt;br&gt;

アプリデータとファイル (公式)&lt;br&gt;
&lt;a href=&quot;https://developer.android.com/guide/topics/data?hl=ja&quot; target=&quot;_blank&quot;&gt;https://developer.android.com/guide/topics/data?hl=ja&lt;/a&gt;&lt;br&gt;&lt;br&gt;

対象範囲別ストレージを使用する&lt;br&gt;
&lt;a href=&quot;https://qiita.com/irgaly/items/0ce450dd77bd54fb560a&quot; target=&quot;_blank&quot;&gt;https://qiita.com/irgaly/items/0ce450dd77bd54fb560a&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;

パーミッションリクエスト&lt;br&gt;
&lt;a href=&quot;https://codechacha.com/ja/android-request-runtime-permissions/&quot; target=&quot;_blank&quot;&gt;https://codechacha.com/ja/android-request-runtime-permissions/&lt;/a&gt;&lt;br&gt;
ファイル読み書き方法&lt;br&gt;
&lt;a href=&quot;https://www.techiedelight.com/ja/write-to-file-kotlin/&quot; target=&quot;_blank&quot;&gt;https://www.techiedelight.com/ja/write-to-file-kotlin/&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;



</description><link>http://trueman-developer.blogspot.com/2022/09/android10kotlin.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-7141952147175549918</guid><pubDate>Sun, 01 May 2022 09:37:00 +0000</pubDate><atom:updated>2022-05-01T18:37:12.077+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">Vue</category><title>Vue3を始めてみる</title><description>今更感はある。&lt;br&gt;
出来ればあまり手を加えず公式のやり方に寄せておきたい。&lt;br&gt;
以下の内容はVue2をある程度使用していたことを想定している。&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;Hello World&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
いくつか方法はあるが今回はViteで構築する。とりあえず動くところまで。&lt;br&gt;
&lt;a href=&quot;https://v3.ja.vuejs.org/guide/installation.html&quot; target=&quot;_blank&quot;&gt;https://v3.ja.vuejs.org/guide/installation.html&lt;/a&gt;&lt;br&gt;

Node.jsをインストール済のこと。

&lt;div class=&quot;space&quot;&gt;&lt;pre&gt;
npm init vite@latest [プロジェクト名] --template vue
npm init vite@latest HelloVue3 --template vue

cd HelloVue3
npm install
npm run dev
&lt;/pre&gt;
&lt;/div&gt;

&lt;a href=&quot;http://localhost:3000/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;http://localhost:3000/&lt;/a&gt; へアクセス&lt;br&gt;&lt;br&gt;

エディタにVSCode、拡張機能にVolarをインストールすることが推奨されている。&lt;br&gt;
さらに拡張機能の@builtin TypeScript and JavaScript Language Features を無効化すると型チェックが走るようになる&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;ソースコードを確認してみる&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;h3&gt;HelloVue3/src/main.js&lt;/h3&gt;
&lt;br&gt;
htmlから読み込まれるjsファイル。少し記述が変わっている。&lt;br&gt;

&lt;pre class=&quot;brush:js&quot;&gt;
createApp(App).mount(&#39;#app&#39;)
&lt;/pre&gt;

&lt;br&gt;
&lt;h3&gt;HelloVue3/src/App.vue&lt;/h3&gt;
&lt;br&gt;
目新しい記述として&amp;lt;script setup&amp;gt; 構文がある。&lt;br&gt;&lt;br&gt;

従来との違いとしてはscriptを先に記述できるようになり、それに伴い宣言した変数をtemplate内で使用できるようになっている。&lt;br&gt;
&amp;lt;script setup lang=&quot;ts&quot;&amp;gt;とすることでTypeScriptでの記述が可能（ただし標準だとエディタ上のチェックのみ）&lt;br&gt;
setup以外は従来と変わった部分は見受けられない。&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;HelloVue3/src/components/HelloWorld.vue&lt;/h3&gt;
&lt;br&gt;
&lt;a href=&quot;https://v3.ja.vuejs.org/guide/reactivity-fundamentals.html&quot; target=&quot;_blank&quot;&gt;https://v3.ja.vuejs.org/guide/reactivity-fundamentals.html&lt;/a&gt;

&lt;pre class=&quot;brush:js&quot;&gt;
const count = ref(0)
&lt;/pre&gt;
&lt;br&gt;
countが下記のtemplate(html)内で使用できるようになっている（Vue2まではreturnする必要があった）&lt;br&gt;
refを外した場合初期値は設定されるが動的に変更することが出来なくなる。&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;アプリケーションをビルドするには？&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;&lt;pre&gt;
npm run build
&lt;/pre&gt;
&lt;/div&gt;

distファイルにビルド結果が出力される。&lt;br&gt;
とりあえず事前知識としてはこの辺りまで。&lt;br&gt;
後は必要に応じて適宜調べながらやるのが良さそう。&lt;br&gt;&lt;br&gt;

以降はVue3を始める上でいろいろ調べた内容。


&lt;hr /&gt;
&lt;h2&gt;何を使ってどうやって開発するか。開発時のオプション&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;a href=&quot;https://v3.ja.vuejs.org/guide/installation.html&quot; target=&quot;_blank&quot;&gt;https://v3.ja.vuejs.org/guide/installation.html&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
&lt;h3&gt;CDN or ホスト&lt;/h3&gt;
&lt;br&gt;
サーバに処理を寄せる場合はこっち。&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;今まで通りVue CLIを使用する&lt;/h3&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;&lt;pre&gt;
npm install -g @vue/cli
vue create [project]
&lt;/pre&gt;
&lt;/div&gt;
&lt;br&gt;
Vue2から手順を変えたくない場合選択肢の一つ。&lt;br&gt;
今後新しい機能が追加されることはないという情報を見かけたがそんなことはなさそう？&lt;br&gt;
Vue2,3を選択可能。&lt;br&gt;
以下のオプションが選択可能。&lt;br&gt;
&lt;pre&gt;
 ◯ Babel
 ◉ TypeScript
 ◯ Progressive Web App (PWA) Support
 ◉ Router
 ◯ Vuex
 ◯ CSS Pre-processors
 ◉ Linter / Formatter
 ◯ Unit Testing
 ◯ E2E Testing
&lt;/pre&gt;
PWA対応可能。&lt;br&gt;
状態管理したい場合は&lt;br&gt;
Saas等を使用する場合CSS Pre-processorsを有効化。&lt;br&gt;
等々。&lt;br&gt;

&lt;br&gt;
&lt;h3&gt;Vite&lt;/h3&gt;
&lt;br&gt;
&lt;a href=&quot;https://ja.vitejs.dev/&quot; target=&quot;_blank&quot;&gt;https://ja.vitejs.dev/&lt;/a&gt;

&lt;div class=&quot;space&quot;&gt;&lt;pre&gt;
npm init vite@latest [プロジェクト名] --template vue
&lt;/pre&gt;
&lt;/div&gt;

Vue CLIよりも高速とのこと。特にこだわりがなければこれで良いかもしれない&lt;br&gt;
Vue専用というわけではなくReactも選択可能。&lt;br&gt;
JSXがサポートされている。&lt;br&gt;
Pinia(ルーティング)が利用できる。&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;Vue3新規機能&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;a href=&quot;https://v3.ja.vuejs.org/guide/migration/introduction.html#%E6%B3%A8%E7%9B%AE%E3%81%99%E3%81%B8%E3%82%99%E3%81%8D%E6%96%B0%E6%A9%9F%E8%83%BD&quot; target=&quot;_blank&quot;&gt;https://v3.ja.vuejs.org/guide/migration/introduction.html&lt;/a&gt;
&lt;br&gt;&lt;br&gt;
&lt;h3&gt;Pinia&lt;/h3&gt;
&lt;br&gt;
コンポーネント間の状態管理。&lt;br&gt;
Vuexの代替。&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;Pinia&lt;/h3&gt;
&lt;br&gt;
Viewとロジックの分離。&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;Teleport&lt;/h3&gt;
&lt;br&gt;
用途はフルスクリーンのモーダル等。&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;a href=&quot;https://v3.ja.vuejs.org/&quot; target=&quot;_blank&quot;&gt;https://v3.ja.vuejs.org/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://ja.vitejs.dev/&quot; target=&quot;_blank&quot;&gt;https://ja.vitejs.dev/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://zenn.dev/ymgn____/articles/e7709e88948446&quot; target=&quot;_blank&quot;&gt;https://zenn.dev/ymgn____/articles/e7709e88948446&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://zenn.dev/azukiazusa/articles/676d88675e4e74&quot; target=&quot;_blank&quot;&gt;https://zenn.dev/azukiazusa/articles/676d88675e4e74&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;br&gt;
</description><link>http://trueman-developer.blogspot.com/2022/05/vue3.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-5828875019867175860</guid><pubDate>Sat, 02 Oct 2021 10:28:00 +0000</pubDate><atom:updated>2021-10-02T19:28:49.127+09:00</atom:updated><title>GCP Compute Engineのf1-microは無料枠ではなくなった</title><description>そのままだと月￥600程度課金されてしまう（された）&lt;br&gt;
代わりにe2-microを使用する。&lt;br&gt;&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

一度VMを停止すれば編集からインスタンスが変更できる。&lt;br&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGuvEzXTDOB53qH_ZANQ66P7f4RzCMjeIdkUrf1kMf9VUYaMDprKaMdenJpu28PGOvRnlPOyxZfcqpJpGc9mWv1q2sT7YDxIQ-d-CWc4p-m8jRoIrIjaaFBMmHLM_G_rhKveurbQPaqrdw/s1139/vm1.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;VM Instance&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;698&quot; data-original-width=&quot;1139&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGuvEzXTDOB53qH_ZANQ66P7f4RzCMjeIdkUrf1kMf9VUYaMDprKaMdenJpu28PGOvRnlPOyxZfcqpJpGc9mWv1q2sT7YDxIQ-d-CWc4p-m8jRoIrIjaaFBMmHLM_G_rhKveurbQPaqrdw/s320/vm1.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;


&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbfcVWLniXLYXCfZ5vT3uBqokFQC8Vz7pb2_YozcrtgNpGdHPeM5A_xLBI6DEhzEHB6d2l-U64Rzwuwqfu33EsscbsaoI32DzIj36ERlPiP1y8HUBbTkGvRe5pIkEMHauN5MWsQc64Dx82/s1221/vm2.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;インスタンス変更&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;718&quot; data-original-width=&quot;1221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbfcVWLniXLYXCfZ5vT3uBqokFQC8Vz7pb2_YozcrtgNpGdHPeM5A_xLBI6DEhzEHB6d2l-U64Rzwuwqfu33EsscbsaoI32DzIj36ERlPiP1y8HUBbTkGvRe5pIkEMHauN5MWsQc64Dx82/s320/vm2.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;


スペック自体は上がっているのでまあ。&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://cloud.google.com/free/docs/gcp-free-tier?hl=ja#free-tier&quot; target=&quot;_blank&quot;&gt;https://cloud.google.com/free/docs/gcp-free-tier?hl=ja#free-tier&lt;/a&gt;

&lt;a href=&quot;https://seiribako.net/2021/08/14/gcp%E3%81%AEvm%E3%82%BF%E3%82%A4%E3%83%97%E3%82%92f1-micro%E3%81%8B%E3%82%89e2-micro%E3%81%B8%E5%A4%89%E6%9B%B4/&quot; target=&quot;_blank&quot;&gt;https://seiribako.net/2021/08/14/gcp%E3%81%AEvm%E3%82%BF%E3%82%A4%E3%83%97%E3%82%92f1-micro%E3%81%8B%E3%82%89e2-micro%E3%81%B8%E5%A4%89%E6%9B%B4/&lt;/a&gt;

</description><link>http://trueman-developer.blogspot.com/2021/10/gcp-compute-enginef1-micro.html</link><author>noreply@blogger.com (えむてぃ)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGuvEzXTDOB53qH_ZANQ66P7f4RzCMjeIdkUrf1kMf9VUYaMDprKaMdenJpu28PGOvRnlPOyxZfcqpJpGc9mWv1q2sT7YDxIQ-d-CWc4p-m8jRoIrIjaaFBMmHLM_G_rhKveurbQPaqrdw/s72-c/vm1.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-7578035428451156574</guid><pubDate>Wed, 10 Mar 2021 08:44:00 +0000</pubDate><atom:updated>2021-03-10T17:44:31.712+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Docker</category><category domain="http://www.blogger.com/atom/ns#">k8s</category><title>DockerイメージはDistrolessを使えということだったので</title><description>じゃあ具体的にどうする？どうした？っていう話。&lt;br&gt;
言語はNode.js.&lt;br&gt;&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;変更前のDockerfile(alpine)&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;&lt;pre&gt;
FROM node:12-alpine
COPY example /example
COPY app.js .
COPY package*.json ./
RUN apk add git
RUN npm install --production
RUN apk update \
  &amp;&amp; apk add --no-cache curl fontconfig \
  &amp;&amp; curl -O https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip \
  &amp;&amp; mkdir -p /usr/share/fonts/NotoSansCJKjp \
  &amp;&amp; unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/NotoSansCJKjp/ \
  &amp;&amp; rm NotoSansCJKjp-hinted.zip \
  &amp;&amp; fc-cache -fv

EXPOSE 3000

CMD node app.js
&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
実際に運用する場合あまりシンプルなDockerfileにはならないんじゃないだろうか？&lt;br&gt;
上記例だとnode_moduleにgitに依存しているものがある + 実行に日本語フォントが必要で追加でインストールしている。
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;変更前のDockerfile(distroless)&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;&lt;pre&gt;
FROM node:12 as builder
WORKDIR /work
COPY example /example
COPY app.js .
COPY package*.json ./
RUN npm install
RUN apt-get update \
  &amp;&amp; apt-get install curl fontconfig \
  &amp;&amp; curl -O https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip \
  &amp;&amp; mkdir -p /usr/share/fonts/NotoSansCJKjp \
  &amp;&amp; unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/NotoSansCJKjp/ \
  &amp;&amp; rm NotoSansCJKjp-hinted.zip \
  &amp;&amp; fc-cache -fv

FROM gcr.io/distroless/nodejs:12
COPY example /example
COPY app.js .
COPY package*.json ./
COPY --from=builder /work/node_modules /node_modules
COPY --from=builder /usr/share/fonts/NotoSansCJKjp /usr/share/fonts/NotoSansCJKjp

EXPOSE 3000

CMD [&quot;app.js&quot;]

&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
distrolessはShellやaptなどがないため追加でモジュールのインストール等が出来ない（正確には出来ないこともないかもしれないが面倒）&lt;br&gt;
マルチステージビルドを使用してビルド後の必要なファイルをコピーするといったアプローチを取る。&lt;br&gt;
マルチステージビルドについて少しざっくり説明するとas hogehogeで名前を付けたDockerイメージは後で使用することができる。最終的なイメージサイズには影響がない。&lt;br&gt;
&lt;i&gt;&lt;b&gt;COPY --from=builder builderのパス 実行環境のパス&lt;/b&gt;&lt;/i&gt;でコピーができる。&lt;br&gt;&lt;br&gt;

最初ビルド用のDockerをnode:12-alpineにしていたがどうもdistrolessとベースイメージが異なるらしく(互換性がない)場合によっては実行時にエラーになる。&lt;br&gt;
具体的にはSharpでエラーが発生した。&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
Error: &#39;linuxmusl-x64&#39; binaries cannot be used on the &#39;linux-x64&#39; platform. Please remove the &#39;node_modules/sharp&#39; directory and run &#39;npm install&#39; on the &#39;linux-x64&#39; platform.
&lt;/div&gt;&lt;br&gt;
node:12-alpine → node:12に変更した場合、apkをaptに変更する必要がある(gitはデフォルトで入っているらしい)&lt;br&gt;
CMDはデフォルトでnode.jsなのでアプリの起動はファイル名を指定するだけで良い。&lt;i&gt;&lt;b&gt;CMD node app.js&lt;/b&gt;&lt;/i&gt; は動作しない。

&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;ビルドイメージのサイズについて&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;&lt;pre&gt;
node:12-alpine+α
214MB
↓
gcr.io/distroless/nodejs:12 
221MB
&lt;/pre&gt;&lt;/div&gt;

それなりに増えると思っていたが思ったほどでもなかった。&lt;br&gt;
対応が面倒で放置していた軽微なセキュリティリスクも0件になっている。&lt;br&gt;


&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;

&lt;a href=&quot;https://blog.inductor.me/entry/alpine-not-recommended&quot;&gt;https://blog.inductor.me/entry/alpine-not-recommended&lt;/a&gt;
</description><link>http://trueman-developer.blogspot.com/2021/03/dockerdistroless.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-3733274563065278927</guid><pubDate>Tue, 16 Feb 2021 15:13:00 +0000</pubDate><atom:updated>2021-02-17T00:13:26.794+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DB</category><title>PostgreSQLでカラム名を任意の位置に追加する</title><description>バックアップして削除して作り直してリストアする。&lt;br&gt;

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;

&lt;script async src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- admiddle --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8147313794657848&quot;
     data-ad-slot=&quot;3653041610&quot;
     data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;

&lt;hr /&gt;
&lt;h2&gt;logテーブルを例に挙げる&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
CREATE TABLE log (
  log_id SERIAL NOT NULL,
  customer_id varchar(32) NOT NULL,
  message TEXT DEFAULT &#39;&#39;,
  created_at timestamp NOT NULL,
  PRIMARY KEY (log_id)
) ;
&lt;/div&gt;
&lt;br&gt;
customer_idの下にtitle varchar(32) NOT NULLを追加する。

&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;対象テーブルのバックアップを作成&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

テーブル名だけ変更したテーブルを作成する。&lt;br&gt;
データの中身だけ保持しておきたいので、インデックスやコメント等は不要。&lt;br&gt;
主キー、外部キーも不要。&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
CREATE TABLE log_bk (
  log_id SERIAL NOT NULL,
  customer_id varchar(32) NOT NULL,
  message TEXT DEFAULT &#39;&#39;,
  created_at timestamp NOT NULL,
  PRIMARY KEY (log_id)
) ;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
バックアップテーブルへ全データコピー&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
Insert Into log_bk
(
	Select * From log
)
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
元のテーブルを削除&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
Drop Table log;
&lt;/div&gt;
&lt;br&gt;

外部キー等を設定している場合は該当テーブルのバックアップを取っておくか一時的に外部キー制約を削除する。&lt;br&gt;
特に&lt;i&gt;ON DELETE CASCADE&lt;/i&gt;を指定している場合は注意が必要。まとめて消えてしまう。

&lt;br&gt;&lt;br&gt;
&lt;hr /&gt;
&lt;h2&gt;
変更後のテーブルを再作成&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;

&lt;div class=&quot;space&quot;&gt;
CREATE TABLE log (
  log_id SERIAL NOT NULL,
  customer_id varchar(32) NOT NULL,
  title varchar(32) NOT NULL,
  message TEXT DEFAULT &#39;&#39;,
  created_at timestamp NOT NULL,
  PRIMARY KEY (log_id)
) ;


create index log_customer on log (
  customer_id
);

COMMENT ON TABLE log IS &#39;ログ&#39;;
&lt;/div&gt;
&lt;br&gt;
主キー、外部キー、インデックス等も含むこと。
&lt;br&gt;&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
データリストア&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;


&lt;div class=&quot;space&quot;&gt;
Insert Into log
(
	Select log_id, customer_id, &#39;&#39; As title, message, contents, created_at
	From notice_log_bk
)
&lt;/div&gt;
&lt;br&gt;
外部キー制約を元に戻す。&lt;br&gt;
&lt;br&gt;

&lt;hr /&gt;
&lt;h2&gt;
バックアップ削除&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
Drop Table log_bk;
&lt;/div&gt;
&lt;br&gt;&lt;br&gt;


&lt;hr /&gt;
&lt;h2&gt;
シーケンスの更新&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
以降は補足。&lt;br&gt;
SERIAL型を使用している場合Sequenceが1に戻っている（追加時に連番が1から始まる）ので必要に応じて更新する。&lt;br&gt;
&lt;br&gt;

&lt;h3&gt;シーケンス名確認&lt;/h3&gt;
シーケンスの命名規則はテーブル名+カラム名+seqを_でつないだ形。

&lt;div class=&quot;space&quot;&gt;
SELECT
  col.column_name
  , col.data_type
  , col.column_default
FROM
  information_schema.columns col
WHERE
  col.table_name = &#39;log&#39;
&lt;/div&gt;
&lt;i&gt;col.table_name = &#39;log&#39;&lt;/i&gt;でテーブル名を指定。&lt;br&gt;
column_default値にシーケンス情報が載っている。&lt;br&gt;
&lt;i&gt;nextval(&#39;log_log_id_seq&#39;::regclass)&lt;/i&gt;といった値が確認できる。&lt;br&gt;
その他pgadminなどでCreate文を確認するとSERIALがシーケンスを使用するように置き換わっている。

&lt;br&gt;&lt;br&gt;
&lt;h3&gt;シーケンス値確認&lt;/h3&gt;
&lt;div class=&quot;space&quot;&gt;
select nextval(&#39;log_log_id_seq&#39;);
&lt;/div&gt;
取得できた値でシーケンス値を更新すれば良い。

&lt;br&gt;&lt;br&gt;
&lt;h3&gt;その他シーケンスの更新値確認(元のテーブルを削除した場合など)&lt;/h3&gt;

うっかり元のシーケンスがわからなくなってしまっても現在の連番の最大値+1でシーケンスを更新すれば問題はなくなる。
&lt;div class=&quot;space&quot;&gt;
SELECT * FROM public.log
ORDER BY log_id Desc;
&lt;/div&gt;
SERIAL型のカラムの最大値+1を設定すれば良い。

&lt;br&gt;&lt;br&gt;
&lt;h3&gt;シーケンス値更新&lt;/h3&gt;

&lt;div class=&quot;space&quot;&gt;
ALTER SEQUENCE log_log_id_seq RESTART WITH 3036;
&lt;/div&gt;




&lt;br&gt;
&lt;pre class=&quot;brush:java&quot;&gt;
&lt;/pre&gt;


&lt;hr /&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;hr /&gt;
&lt;br&gt;
&lt;a href=&quot;https://wiki.postgresql.org/wiki/Alter_column_position/ja#.E5.88.97.E3.82.92.E8.BF.BD.E5.8A.A0.E3.81.97.E3.83.87.E3.83.BC.E3.82.BF.E3.82.92.E7.A7.BB.E5.8B.95&quot;&gt;https://wiki.postgresql.org/wiki/Alter_column_position/ja#.E5.88.97.E3.82.92.E8.BF.BD.E5.8A.A0.E3.81.97.E3.83.87.E3.83.BC.E3.82.BF.E3.82.92.E7.A7.BB.E5.8B.95&lt;/a&gt;

&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;
</description><link>http://trueman-developer.blogspot.com/2021/02/postgresql.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-7509403160440283176</guid><pubDate>Wed, 10 Feb 2021 08:51:00 +0000</pubDate><atom:updated>2021-02-10T17:51:31.807+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">node.js</category><title>Node.jsでsvgからpngに変換したい場合はsharpを使用する</title><description>svgexportは依存しているPhantomJSが開発終了したので使わない方が良いらしい&lt;br&gt;
→ 今はPuppeteerを使用しているらしい。どっちでも良い？

&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;



&lt;hr /&gt;
&lt;h2&gt;サンプル&lt;/h2&gt;
&lt;hr /&gt;

&lt;br&gt;
sharpをインストール
&lt;br&gt;
&lt;div class=&quot;space&quot;&gt;
npm i sharp
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
サンプルコード。説明の必要もないように思える。
実行するとsrc.svgが変換されてdest.pngが出力される。
&lt;pre class=&quot;brush:js&quot;&gt;

const sharp = require(&quot;sharp&quot;)
// convert
sharp(&quot;src.svg&quot;)
  .png()
  .toFile(&quot;dest.png&quot;)
  .then((info) =&gt; {
    console.log(info)
  })
  .catch((err2: any) =&gt; {
    console.log(err2)
  })

&lt;/pre&gt;


&lt;h2&gt;参考&lt;/h2&gt;

&lt;a href=&quot;https://coderrocketfuel.com/article/convert-svg-to-png-using-node-js-and-sharp&quot;&gt;https://coderrocketfuel.com/article/convert-svg-to-png-using-node-js-and-sharp&lt;/a&gt;
&lt;br&gt;&lt;a href=&quot;https://github.com/lovell/sharp&quot;&gt;https://github.com/lovell/sharp&lt;/a&gt;


</description><link>http://trueman-developer.blogspot.com/2021/02/nodejssvgpngsharp.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-5554594186980202967</guid><pubDate>Sat, 03 Oct 2020 13:56:00 +0000</pubDate><atom:updated>2020-10-03T22:56:10.401+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">node.js</category><title>Expressでpath must be absolute or specify root to res.sendFileが発生する</title><description>&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
res.sendfile(小文字)が非推奨になったので変更したら発生した。&lt;br /&gt;
ローカル(Mac)だと動くのに本番(Linux)だと動かなかったりと結構面倒。&lt;br /&gt;
対応策は絶対パスにしてpathを使用する。&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;space&quot;&gt;res.sendFile(&quot;./dist/index.html&quot;)&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
↓&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;space&quot;&gt;import * as path from &quot;path&quot;&lt;br /&gt;
&lt;br /&gt;
res.sendFile(path.join(__dirname, &quot;/../dist/index.html&quot;))&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
誤ってアプリケーションディレクトリ外の不正なパスが指定されないようにということらしい。&lt;br /&gt;
小文字と大文字の違いしかないのは命名ミスってる気がしなくもない。</description><link>http://trueman-developer.blogspot.com/2020/10/expresspath-must-be-absolute-or-specify.html</link><author>noreply@blogger.com (えむてぃ)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9182624470389735726.post-4898947990615663220</guid><pubDate>Sun, 20 Sep 2020 14:56:00 +0000</pubDate><atom:updated>2020-09-20T23:56:26.004+09:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Docker</category><title>Dockerでnode:12-alpineを指定したときにnpm ERR! syscall spawn git</title><description>gitを入れるように指定すればOK。&lt;br /&gt;
&lt;br /&gt;
 &lt;a name=&#39;more&#39;&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
今回のケースだとおそらくnpm install時にgitを使用しようとしてエラーになっている。&lt;br /&gt;
alpineにはデフォルトで git が入っていないらしい。&lt;br /&gt;
gitを使用する前に &lt;i&gt;RUN apk add git&lt;/i&gt; を追記する。&lt;br /&gt;
&lt;br /&gt;
参考&lt;br /&gt;
&lt;div class=&quot;space&quot;&gt;FROM node:12-alpine&lt;br /&gt;
COPY src /srf&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
RUN apk add git&lt;br /&gt;
RUN npm install&lt;br /&gt;
&lt;br /&gt;
EXPOSE 3000&lt;br /&gt;
&lt;br /&gt;
CMD node app.js&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
alpineに変えることで&lt;br /&gt;
408.75 MB → 111.72 MBに減ったがそれだけ必要かもしれないものが減っているわけで...&lt;br /&gt;
</description><link>http://trueman-developer.blogspot.com/2020/09/dockernode12-alpinenpm-err-syscall.html</link><author>noreply@blogger.com (えむてぃ)</author></item></channel></rss>