2025年4月28日月曜日

ChatGPTとの開発でコードがおかしくなる?原因と対策をChatGPT自身に聞いてみた

 


ChatGPTとの開発でコードがおかしくなる?原因と対策をAI自身に聞いてみた

最近、ChatGPTを使って開発を進めている中で、ちょっと困った現象に遭遇しました。最初は問題なく動いていたコードが、機能追加や修正をチャットで繰り返し依頼していくうちに、なぜかおかしなコードを提案してくるようになったのです。普段は賢いChatGPTがなぜ?

この疑問を直接ChatGPTにぶつけてみたところ、非常に興味深く、そして納得のいく回答が得られました。今回は、そのChatGPT自身による原因分析と対策を、皆さんと共有したいと思います。AIとの開発で同じような経験をしたことがある方、これからAIを活用しようと考えている方の参考になれば幸いです。

きっかけ:長引くチャット、積み重なる「ズレ」

私が経験したのは、一つのチャットセッションで様々な機能追加や仕様変更をChatGPTに依頼し続けた結果、当初の意図とは異なるパラメータ名を使ったり、古い仕様に基づいたコードを生成したりする、といったミスが目立つようになったことです。

例えば、「最初は csvText という名前でデータを送る想定だったけれど、後から raw_data に変更した」といった場合、ChatGPTが古い csvText を使ったコードを再び提案してくるような状況です。

ChatGPTが分析する「ミスが起こる2つの原因」

この現象について尋ねると、ChatGPTは「人間でもAIでも起こりうる典型的なパターン」とした上で、主な原因を2つ挙げてくれました。

  1. プロンプト文脈の「ノイズ累積」

    • ChatGPTは、会話の文脈(それまでの指示、コード、仕様など)を記憶し、それを基に推論します。しかし、チャットが長くなり、機能追加や変更が繰り返されると、古い情報や変更前の仕様が「ノイズ」として文脈に残り続けてしまうことがあります。
    • AIは過去のやり取り全体を参照しようとするため、意図せず古い情報を参照してしまい、結果として「仕様ズレ」や「呼び出し名のズレ」を含んだコードを生成してしまうのです。チャットが長くなるほど、この「文脈ノイズ」が蓄積しやすくなります。
  2. 修正サイクル不足による「局所最適化ミス」

    • チャットで対話的に修正を重ねていると、どうしても「今指摘された部分だけ」を修正して次に進みがちです。例えば、API(バックエンド)側のパラメータ名を修正しても、それを呼び出す側(フロントエンド)のコードは古いまま、といった「部分修正ミス」が発生しやすくなります。
    • これはソフトウェア開発でよく言われる「局所最適化の罠」に似ています。システム全体を見渡して整合性を確認せずに部分的な修正を繰り返すと、徐々に全体のズレが大きくなってしまうのです。

ChatGPTが提案する「3つの対策」

原因がわかれば、次に対策です。ChatGPTは、これらの問題を回避・軽減するための具体的な方法も提案してくれました。

  1. 適切なタイミングでチャットをリセットする

    • 最も効果的な対策の一つが、チャット履歴のリセットです。特に、機能の区切りが良いタイミングや、重要な変数名・パラメータ名、APIの仕様などが変更されたタイミングでチャットを一度終了し、新しいチャットセッションを開始します。
    • これにより、古い「ノイズ」が蓄積されるのを防ぎ、「新しい前提」でAIに指示を出すことができます。(今回、私がチャットを切り替えた判断は正しかったようです!)
  2. 小機能を作ったら必ず全体整合チェックをする

    • 部分的な修正で終わらせず、関連する部分全体の整合性を確認する習慣をつけることが重要です。
    • 例えば、「新しいAPIを追加したら、そのAPIを呼び出す側のコードも必ず確認する」「データの送信側と受信側で使うパラメータ名を一覧表にまとめて確認する」といった一手間が、後の大きなズレを防ぎます。ChatGPTが例として示してくれたような、フロントエンドとバックエンドのパラメータ対応表を作るのも有効でしょう。
  3. コード生成時に重要部分を明示的に指示する

    • AIにコード生成を依頼する際に、特に重要な箇所(変数名、パラメータ名、キー名、期待するデータ形式など)をプロンプトで具体的に、かつ明確に指定します。
    • 例えば、「リクエストパラメータは raw_data, fileFormat, target_user の3つに合わせてください」「サーバー側ではこのキー名 { 'user_id': ..., 'data': ... } を受け取る前提でコードを生成してください」のように、曖昧さを排除する指示を心がけることで、AIはより正確なコードを生成しやすくなります。

まとめ:AIとの上手な付き合い方

ChatGPTが教えてくれた原因と対策をまとめると、以下のようになります。

項目説明
原因1チャット継続による古い仕様などの「ノイズ」蓄積
原因2部分修正の繰り返しによる「局所最適化」と全体の不整合
対策1機能の区切りや仕様変更時にチャットをリセットする
対策2小機能追加ごとにシステム全体の整合性をチェックする
対策3重要な変数名やパラメータ名はプロンプトで明示的に指定する

ChatGPTも最後に述べていましたが、これらの問題はAI特有のものではなく、実は人間のエンジニア同士の開発プロジェクトでもよく起こりうることです。「ミスが起きたからAIはダメだ」と考えるのではなく、なぜミスが起きたのかを理解し、適切な対策を講じることが大切です。

今回の経験を通して、AIとの対話においても、人間とのコミュニケーションと同様に、前提条件の確認、明確な指示、そして定期的な全体の見直しが重要であることを再認識しました。

この記事が、皆さんがAIとより効果的に協働するためのヒントになれば幸いです。

※この記事はGeminiにまとめてもらいました。

2025年4月19日土曜日

ラズベリーパイ4でcrawl4aiをインストール

ラズベリーパイ4でcrawl4aiをインストール

このブログでは、ラズベリーパイ4にWebスクレイピングライブラリである crawl4ai をインストールし、簡単な動作確認を行う手順を紹介します。

前提条件

  • ラズベリーパイ4が起動しており、インターネットに接続されていること
  • Python 3 がインストールされていること
  • ターミナル(コマンドラインインターフェース)が利用できること

インストール手順

1. 作業ディレクトリの作成と移動

まず、作業用のディレクトリを作成し、そこに移動します。

cd /srv/
mkdir crawl4ai
cd crawl4ai/
  

2. 仮想環境の作成

Pythonの依存関係を管理するために、仮想環境を作成します。

python3 -m venv venv
  

3. 仮想環境のアクティベート

作成した仮想環境をアクティベートします。

source venv/bin/activate
  

アクティベートされると、ターミナルのプロンプトの先頭に (venv) と表示されます。

4. crawl4ai と関連ライブラリのインストール

pip を使用して、crawl4aitransformerstorchnltk をインストールします。

pip install "crawl4ai @ git+https://github.com/unclecode/crawl4ai.git" transformers torch nltk
  

インストールにはしばらく時間がかかる場合があります。

5. crawl4ai のセットアップ

crawl4ai の初期セットアップを実行します。

crawl4ai-setup
  

6. Playwright とその依存関係のインストール

crawl4ai が内部で使用する Playwright と Chromium をインストールします。

python -m playwright install --with-deps chromium
  

これにより、Webブラウザの操作に必要なコンポーネントがインストールされます。

動作確認

1. テストプログラムの作成

nano エディタを使用して、簡単なテストプログラム (testc4a.py) を作成します。

nano -w testc4a.py
  

以下のコードを testc4a.py に記述します。

import asyncio
from crawl4ai import *

async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://news.yahoo.co.jp/topics/business",
        )
        print(result.markdown)

if __name__ == "__main__":
    asyncio.run(main())

記述が終わったら、Ctrl + X を押して保存し、Enter で確定します。

2. テストプログラムの実行

作成したテストプログラムを実行します。

python3 testc4a.py
  

プログラムが正常に動作すれば、Yahoo!ニュースのビジネストピックスの内容がMarkdown形式でターミナルに表示されます。

まとめ

上記の手順で、ラズベリーパイ4に crawl4ai をインストールし、基本的なWebスクレイピングの動作を確認することができました。このライブラリを活用して、様々なWebサイトから必要な情報を効率的に抽出することができます。

2025年4月7日月曜日

Dify ポート変更メモ



Dify ポート変更メモ ~Docker Compose と Nginx 設定の変更~

本記事では、Docker Compose を使用してデプロイしている Dify のアクセスポートをカスタマイズする手順についてまとめています。 .env ファイルの設定変更と、Nginx 関連のポート設定を修正する方法を紹介します。

1. .env の設定変更

Dify のアクセスポートを変更するには、.env 内で Nginx が公開するポート番号を指定している項目を修正します。 例えば、以下のようになっている部分を変更します:

EXPOSE_NGINX_PORT=80
EXPOSE_NGINX_SSL_PORT=443

必要に応じて、アクセスしたいポート番号に合わせて上記の値を変更してください。

2. Docker コンテナの再起動

.env の設定を変更後、以下のコマンドでコンテナを一旦停止し、再起動します:

docker compose stop
docker compose up -d

コマンド実行後、設定したポート番号に合わせてサービスが動作することを確認しました。

3. アクセス確認

変更後は、設定した IP アドレスとポート番号で Dify にアクセスできます。
例:http://localhost:8080/dify/(※サーバー IP やポート番号は環境に合わせて変更してください)

以上で Dify のポート変更は完了です。今回の変更により、アクセス先のポート番号を自由にカスタマイズできるようになりました。 今後も環境に合わせた柔軟な設定をお試しください。

資料:Difyよくある質問

Rocky LinuxでのDify Community Edition インストール手順



Rocky LinuxでのDify Community Edition インストール手順 ~システム更新からドッカー導入まで~

本記事では、Rocky Linux環境において、システムのアップデート(dnf update -y)から始まり、DockerおよびDocker Composeのインストール、そしてDify Community Editionのクローン・起動までの一連の手順を紹介します。特に、初回起動時のインターナルサーバーエラー発生時に、コンテナ停止と再起動によって解決できた事例も記録しています。

1. システムのアップデート

まず、最新パッケージを導入するためにシステムのアップデートを行います。以下のコマンドで全パッケージを最新に更新してください。

sudo dnf update -y

2. Dockerのインストール

DifyはDockerコンテナ上で動作するため、まずはDockerのインストールを実施します。以下はRocky Linux向けのDockerインストール手順です。

2.1. 既存のDockerパッケージの削除(必要に応じて)

古いバージョンがインストールされている場合、以下のコマンドで削除してください。

sudo dnf remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

2.2. Dockerリポジトリの追加

Rocky LinuxはRHEL系のため、CentOS向けのリポジトリを利用します。

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

2.3. Docker Engine のインストール

sudo dnf install docker-ce docker-ce-cli containerd.io -y

2.4. Dockerの起動と自動起動設定

sudo systemctl start docker
sudo systemctl enable docker

2.5. Dockerの動作確認

sudo docker run hello-world

上記のテストコマンドで、Dockerのコンテナが正常に起動するか確認してください。

3. Docker Composeのインストール

次に、Docker Composeプラグインをインストールし、複数のコンテナ群をまとめて管理できるように設定します。

sudo dnf install docker-compose-plugin -y
docker compose version

4. Dify Community Edition のセットアップ

4.1. インストール先ディレクトリの作成

今回は、Difyを /srv/dify/ に配置するため、ディレクトリを作成して移動します。

mkdir /srv/dify/
cd /srv/dify/

4.2. Gitリポジトリのクローン

ここでは、langgenius のDifyリポジトリをクローンします。

git clone https://github.com/langgenius/dify.git

4.3. Dockerディレクトリへ移動し、環境設定ファイルの作成

クローンしたリポジトリ内の docker ディレクトリに移動し、.env.example をコピーして .env を用意します。

cd dify/docker
cp .env.example .env

5. Difyの起動とトラブルシュート

5.1. Docker Composeでの起動

以下のコマンドでDifyのコンテナをバックグラウンド起動します。

docker compose up -d

5.2. 一旦起動停止後に再起動

初回WEBアクセス時、インターナルサーバーエラーが発生する場合、一旦コンテナを停止し、再起動することで問題が解決することがあります。以下のコマンドで実施してください。

docker compose stop
docker compose start

5.3. 動作確認

コンテナ再起動後、サーバーのIPアドレスまたはサーバー上の localhost にアクセスして、正常にDifyが動作しているか確認します。

まとめ

本記事では、Rocky Linux上でのシステム更新(dnf update -y)から始まり、Docker/Docker Compose の導入、そしてDify Community Edition のクローンと起動までの手順を詳しくご紹介しました。初回起動時に発生したインターナルサーバーエラーは、コンテナの停止・再起動で解決できました。各環境に合わせて、公式ドキュメント等も参照しながら適切な設定を行ってください。

この手順が、皆様のDify導入の一助となれば幸いです。

Rocky Linux: SSH鍵認証設定(サーバー鍵生成・Windows/PuTTY編)



Rocky Linux: SSH鍵認証設定(サーバー鍵生成・Windows/PuTTY編)


この記事では、Rocky Linuxサーバー上でSSHキーペアを作成し、Windowsクライアント(WinSCP, PuTTYgen, PuTTYを使用)からその鍵を使ってSSH接続を設定、最終的にパスワード認証を無効にして鍵認証のみ許可する手順を解説します。

セキュリティに関する注意:
通常、SSHの秘密鍵はクライアントPCで作成し、サーバーに移動させないのが最も安全です。この手順ではサーバーで作成した秘密鍵をクライアントPCにコピーします。秘密鍵の取り扱いには十分注意し、ファイル転送中やクライアントPC上での管理を厳重に行ってください。可能であればクライアントPCで鍵ペアを作成する方法を検討してください。

前提条件

手順1: サーバー (Rocky Linux) でSSHキーペアを作成する

まず、Rocky Linuxサーバーにログインし、SSHキーペア(公開鍵と秘密鍵)を作成します。

# ログインユーザーで実行
# -t で鍵の種類を指定 (ed25519推奨)
# -f で鍵ファイルのパスと名前を指定 (例: ~/.ssh/server_generated_key)
ssh-keygen -t ed25519 -f ~/.ssh/server_generated_key

# 実行すると、鍵の保存場所とパスフレーズを聞かれます。
# Enter file in which to save the key (...): そのままEnterか、変更したければ入力
# Enter passphrase (empty for no passphrase): ★必ず強力なパスフレーズを設定してください★
# Enter same passphrase again: ★確認のためもう一度入力★

これで、指定した場所に秘密鍵 (server_generated_key) と公開鍵 (server_generated_key.pub) が作成されます。

手順2: サーバー (Rocky Linux) で公開鍵を認証用ファイルに登録する

作成した公開鍵 (server_generated_key.pub) を、SSH接続を許可するための authorized_keys ファイルに追記します。

# .ssh ディレクトリがなければ作成し、パーミッションを設定 (所有者のみアクセス可)
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# authorized_keys ファイルがなければ作成し、パーミッションを設定 (所有者のみ読み書き可)
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# 作成した公開鍵の内容を authorized_keys に追記
cat ~/.ssh/server_generated_key.pub >> ~/.ssh/authorized_keys

# SELinux が有効な場合、コンテキストを復元 (念のため)
restorecon -Rv ~/.ssh

これで、この公開鍵に対応する秘密鍵を持つクライアントからの接続準備ができました。

手順3: WinSCPで秘密鍵をWindowsクライアントにコピーする

Windows PCでWinSCPを起動し、Rocky Linuxサーバーにパスワード認証で接続します。

  1. サーバー側のファイルブラウザで、手順1で作成した秘密鍵ファイル (例: /home/your_username/.ssh/server_generated_key) がある場所に移動します。 (.ssh は隠しフォルダなので、表示設定が必要な場合があります)
  2. その秘密鍵ファイルを、ローカルPC(Windows)のわかりやすい場所(例: C:\Users\YourUsername\ssh_keys\ など、自分で作成したフォルダ)にドラッグ&ドロップなどでダウンロード(コピー)します。
注意: ダウンロードしているのは非常に重要な秘密鍵です。ダウンロード先のフォルダやファイルは厳重に管理してください。

手順4: PuTTYgenで秘密鍵をPuTTY形式 (.ppk) に変換する

PuTTYはOpenSSH形式の秘密鍵を直接扱えないため、PuTTYgenを使ってPuTTYが扱える形式 (.ppk) に変換します。

  1. Windows PCでPuTTYgenを起動します。
  2. メニューの [Conversions] から [Import key] を選択します。
  3. ファイル選択ダイアログで、手順3でWinSCPを使ってダウンロードした秘密鍵ファイル (server_generated_key) を選択します。
  4. 手順1で秘密鍵に設定したパスフレーズを入力するよう求められるので、入力します。
  5. 鍵の情報が表示されたら、[Save private key] ボタンをクリックします。
  6. ファイルの種類が「PuTTY Private Key Files (*.ppk)」になっていることを確認し、ファイル名(例: server_generated_key.ppk)を付けて保存します。保存場所は先ほど秘密鍵を置いたフォルダと同じ場所が良いでしょう。

これで、PuTTYで使える .ppk 形式の秘密鍵ファイルが作成されました。

手順5: PuTTYで鍵認証接続を設定する

PuTTYを起動し、今作成した .ppk ファイルを使ってサーバーに接続する設定を行います。

  1. PuTTYの左側メニューで [Connection] -> [SSH] -> [Auth] を選択します。
  2. [Private key file for authentication:] の下にある [Browse...] ボタンをクリックします。
  3. ファイル選択ダイアログで、手順4で作成した .ppk ファイル (server_generated_key.ppk) を選択し、[開く] をクリックします。
  4. 左側メニューで一番上の [Session] を選択します。
  5. [Host Name (or IP address)] にRocky LinuxサーバーのIPアドレスまたはホスト名を入力します。
  6. [Saved Sessions] の下の入力欄に、この接続設定を保存するための名前(例: MyRockyServer-Key)を入力し、[Save] ボタンをクリックして設定を保存します。

手順6: PuTTYで鍵認証接続をテストする

保存した設定を使って、実際に鍵認証でログインできるか試します。

  1. PuTTYの [Saved Sessions] リストから、先ほど保存した設定名 (MyRockyServer-Key) を選択し、[Load] をクリックしてから [Open] をクリックします。
  2. コンソールが開いたら、ログインユーザー名 (login as:) を入力してEnterを押します。
  3. 手順1で設定した秘密鍵のパスフレーズを入力するよう求められたら (Passphrase for key ...:)、入力してEnterを押します。

サーバーのパスワードを聞かれずに、コマンドプロンプトが表示されれば鍵認証でのログインは成功です。

手順7: サーバー設定を変更し、鍵認証のみ許可する (rootログインも鍵認証で許可)

鍵認証でログインできることを確認したら、セキュリティ向上のためにパスワード認証を無効にします。ここでは、rootユーザーでのログインも鍵認証であれば許可する設定にします。

【最重要】設定変更中の注意:
この設定変更を行うと、パスワードでのSSHログインは一切できなくなります。万が一、設定ミスや秘密鍵の紛失があるとサーバーにログインできなくなる可能性があります
必ず、現在接続しているPuTTYセッションは閉じずに、設定変更後に別のPuTTYウィンドウから新しい接続を試してログインできることを確認してから、元のセッションを閉じてください。
  1. 鍵認証でログインしているPuTTYセッションで、SSH設定ファイルを開きます。
    sudo nano /etc/ssh/sshd_config
  2. ファイル内で以下の項目を探し、値を変更または確認します。(行頭の # はコメントなので削除します)
    # パスワード認証を無効化
    PasswordAuthentication no
    
    # チャレンジレスポンス認証も無効化
    ChallengeResponseAuthentication no
    
    # 公開鍵認証が有効であることを確認
    PubkeyAuthentication yes
    
    # rootのログインを鍵認証のみ許可 (パスワードではログインさせない)
    PermitRootLogin prohibit-password

    ※もしPermitRootLoginの行が存在しない場合は、追記してください。prohibit-password は「パスワード認証は禁止するが、鍵認証ならrootログインを許可する」という意味です。もしrootログイン自体を禁止したい場合は no にします。

  3. ファイルを保存して閉じます。(nanoなら Ctrl+O -> Enter -> Ctrl+X)
  4. SSHサービスを再起動して設定を反映させます。
    sudo systemctl restart sshd
    エラーが出ないことを確認します。
    sudo systemctl status sshd
    (Active: active (running) と表示されていればOK)

手順8: 最終テスト

  1. 作業していたPuTTYセッションは開いたまま、新しいPuTTYウィンドウを起動します。
  2. 保存したセッション (MyRockyServer-Key) を使って再度ログインを試みます。
  3. ユーザー名を入力し、秘密鍵のパスフレーズを入力して、パスワードを聞かれずにログインできることを確認します。
  4. (可能であれば) パスワード認証を強制するオプションなどで接続を試み、パスワード認証が拒否されることを確認します。
  5. 新しいウィンドウで正常にログインできることが確認できたら、作業していた元のPuTTYセッションを閉じても安全です。

まとめ

これで、Rocky LinuxサーバーへのSSH接続が公開鍵認証のみに限定され、WindowsクライアントからPuTTYを使って安全に接続できるようになりました。rootユーザーでのログインも鍵認証であれば可能です。

秘密鍵 (.ppkファイル) は絶対に漏洩しないよう、厳重に管理してください。

2025年4月4日金曜日

Rocky Linux最小構成インストールからのGUI環境とKVMの設定

 

Rocky Linux最小構成インストールからのGUI環境とKVMの設定

もともとwindows11のマシンをLinuxに変える必要があったのでRocky Linuxを入れてみたのですが、ライセンスがもったいないのでKVM上にwindows入れておこうと思いました。最小構成だったので色々いれて仕えるようにしたときのメモです。基本sshを利用してコマンド売ってます。

必要パッケージインストール

以下のパッケージグループをインストールするのが一般的です:

"Server with GUI": GNOMEデスクトップ環境を含む、サーバー用途向けの基本的なGUI環境をインストールします。
"Virtualization Host": KVM/QEMUやlibvirtなど、仮想マシンをホストするために必要なコアパッケージをインストールします。
以下のコマンドで両方のグループをインストールできます:
sudo dnf groupinstall "Server with GUI" "Virtualization Host"

加えて、仮想マシンをグラフィカルに管理するためのツール virt-manager もインストールしておくと良いでしょう
sudo systemctl enable --now libvirtd

起動設定

このままだとGUIで起動しないので設定します。再起動もしておきます。

sudo systemctl set-default graphical.target
reboot

再起動後GUI画面が立ち上がればOKです。

windowsリモートデスクトップでアクセス

VNCでGUIにアクセスしようと思いAIに聞いてみたら今はRDPが利用できるとのこと。試しにこちら設定してみます。
EPELにパッケージがあるのでまずそちらを設定します。

sudo dnf install epel-release

続いてxrdpをインストール


sudo dnf install xrdp

xrdp サービスの有効化と起動

sudo systemctl enable --now xrdp
ファイアウォールの設定 (firewalld):
RDPが使用するTCPポート3389番への接続を恒久的に許可し、設定を反映させます。

sudo firewall-cmd --add-port=3389/tcp --permanent
sudo firewall-cmd --reload

これで準備完了です。
次に、接続元のPC(Windowsなど)からリモートデスクトップ接続を試してみてください。

  1. サーバーのIPアドレスを確認: Rocky Linux上で ip a コマンドなどを実行して、接続に必要なIPアドレスを調べてください。
  2. RDPクライアントで接続: Windowsの「リモートデスクトップ接続」や他のRDPクライアントソフトを起動し、先ほど調べたIPアドレスを入力して接続します。
  3. ログイン: 接続するとログイン画面が表示されるはずですので、Rocky Linuxのユーザー名とパスワードを入力してログインしてください。

(重要)セッションの選択について:

もし接続後に画面が真っ黒になったり、うまくデスクトップが表示されない場合は、xrdp のログイン画面(ユーザー名・パスワードを入れる画面)で、セッションの種類を選ぶドロップダウンメニューがあれば「Xorg」(またはX11 Desktopなど)を選択してからログインしてみてください。
Rocky Linux 9など、デフォルトのデスクトップセッションであるWaylandは、xrdp との相性問題でうまく表示できないことがあります。Xorgセッションを選択することで解決する場合が多いです。

これでリモートデスクトップ接続ができるか試してみてください。

2025年4月3日木曜日

Looker Studioで数値がマイナスの場合に赤字で表示する

 


Looker Studioで数値がマイナスの場合に赤字で表示する

Looker Studioで数値がマイナスの場合に赤字で表示するには、主に以下の2つの方法があります。

1. 条件付き書式を使用する

  • スコアカードの場合:
    • スコアカードを選択し、「スタイル」タブを開きます。
    • 「条件付き書式」セクションで「追加」をクリックし、新しいルールを作成します。
    • 「条件」で「未満」を選択し、「0」を入力します。
    • 「スタイル」でテキストの色を赤に設定します。
  • 表の場合:
    • 表を選択し、「スタイル」タブを開きます。


    • 「条件付き書式」セクションで、「追加」をクリックし、新しいルールを作成します。
    • 適用したい列を選択し、「条件」で「未満」を選択し、「0」を入力します。

    • 「スタイル」でテキストの色を赤に設定します。

2. 計算フィールドを使用する

  • 計算フィールドを作成し、CASE関数を使用して、値がマイナスの場合に赤色のHTMLタグを追加します。
    • 例:CASE WHEN フィールド名 < 0 THEN '<span style="color:red;">' || フィールド名 || '</span>' ELSE フィールド名 END
  • この計算フィールドをスコアカードや表で使用します。
  • この方法だと、表など使用する場合にHTMLタグとして認識されてしまう場合があるので、スコアカードで使用する事を推奨します。

注意点:

  • 条件付き書式は、スコアカードや表など、Looker Studioの様々なグラフ要素に適用できます。
  • 計算フィールドを使う事でより細かいカスタマイズが可能になります。
  • データの種類(数値、テキストなど)によって、適切な方法を選択してください。

Claude Codeをwindows11に導入してVSCとつなげてみた

  Claude Codeをwindows11に導入してVSCとつなげてみた WSLインストール VSCとClaude Code連携できるとの話を聞いて拡張機能を見てみたがどうも違うらしい。とりあえず、windowsにインストールしてみる。 npm install -g @ant...