Get-NetConnectionProfile
Set-NetConnectionProfile -InterfaceIndex 5 -NetworkCategory Private
プロンプト手法
主語を省略しない。指示語(こそあど)、程度語は具体的に。
指示と素材のセクションを分ける。タスクは分割する。
推論・思考の構造化
LLMの内部推論を制御し論理的飛躍を防ぐ手法。
Chain-of-Thought (CoT)
ステップバイステップで中間的な推論を出力させる 。より複雑な思考が必要な場合、答えに至る思考プロセスを1〜2個例示としてプロンプトに含める。
弱点として間違った方向に進むと修正できない。
※プロンプト
ステップバイステップで考えてください。
論理的に一歩ずつ順を追って説明してください。
Tree-of-Thoughts (ToT)
複数の解決策を出し、それらを自己評価・選別し、最善の道筋を絞り込む手法。
プロンプト
1.複数の案を出させて思考を枝分かれさせる。
2.各案の欠点や利点を評価させる。
3.評価の高い案での思考を前進させる。
4.全ての案を俯瞰して合理的な結論をださせる。
Graph-of-Thoughts (GoT)
思考をノード、関係性をエッジとしてグラフ構造化。複数の思考を統合したり再利用したりする 。ToTの進化版。
※プロンプト
1.複数の案を出させて思考を枝分かれさせる。
2.各案の欠点や利点を評価させる。
3.各案を相互の関係性(トレードオフや依存関係)を評価させる。
4.統合した案はステップ2から欠点や利点を評価させる。
5.評価の高い案での思考を前進させる。
6.全ての案を俯瞰して合理的な結論をださせる。
終了条件
※反復回数の明示
このプロセス(統合と再評価)は最大2回まで繰り返してください
※収束条件の設定(理論的なBreak)
評価スコアが全ての項目で4以上になったら終了してください
前回案と比較して改善点が見当たらない場合は結論を出してください
※ステップの直列化(Sequential Pipeline)
ステップをあらかじめ分散→統合→最終修正のように固定する。
Skeleton-of-Thought (SoT)
回答の骨組みを先に作らせ、その各項目を並列で埋めさせることで生成速度と構造化を両立する 。
※プロンプト
まずアウトラインや箇条書きのポイントなどを生成。
それぞれを別のプロンプトで並列に実行。
Step-Back Prompting
具体的な問題から一歩引いて背後にある一般原理や概念を先に特定させてから回答させる 。そもそも何を目指しているのかという原則に立ち返ることで、ハルシネーションを抑制し精度を大幅に高めることができます
※プロンプト
いきなりどうすればいい。ではなく基本的な仕組みは?原則は?と質問し、その答えを踏まえてどうすればいいか確認する。
精度の自己向上・検証
AIに自身の出力を検証・修正させ、回答の信頼性を高める手法。
Self-Consistency
同じ問題に対して複数の推論パスを実行し、最も多い回答を最終解とする(多数決)。複数の異なる推論をさせると、正しい答えは一致しやすく、間違いはバラバラになりやすいという特徴がある。
Chain-of-Verification (CoVe)
回答を生成した後、その回答に含まれる事実を確認するための質問を自ら作成し、検証した上で最終回答を修正する 。
1.回答を生成させる。
2.最初の回答が正しいか確認するために検証用に自問自答させる。
3.最初の回答と自問自答を照合し、最終的な回答にする。
Self-Ask
複雑な質問に対し自分への追加の質問を繰り返し行い、その答えを積み上げて最終回答を導く 。
Reflexion
失敗やエラー結果をフィードバックとして受け取り、次の試行で修正する反復プロセス 。
動的コンテキストと外部連携
静的なプロンプトではなく、外部情報やツールと動的にやり取りする手法。
ReAct (Reason + Act)
思考と行動のループ。外部ツールの結果を観察して次の思考へ繋げる 。
RAG (Retrieval-Augmented Generation)
外部知識を検索し、プロンプトのコンテキストとして注入する 。
Automatic Reasoning and Tool-use (ART)
タスクに最適なツールを自動的に選択し、推論プロセスに組み込む 。
Prompt Chaining
タスクをサブタスクに分割し、Aの出力をBの入力にするパイプラインを組む 。
プロンプトのメタ最適化
プロンプトそのものを生成・評価・最適化するための手法。
Meta-Prompting
プロンプトの書き方や構造そのものをAIに定義させる、あるいはプロンプトを生成するためのプロンプト 。
APE (Automatic Prompt Engineer)
多数のプロンプト候補をAIに生成させ、テストデータに対するスコアが最も高いものを自動選択する 。
DSPy (Declarative Self-improving Language Programs)
プロンプトを文字列ではなく、最適化可能なプログラムのシグネチャとして記述し、自動で最適なプロンプトやデモンストレーション(Few-shot例)をコンパイルする 。
制御とフォーマット
出力の質や形式を厳密に制御する手法。
Few-shot / One-shot / Zero-shot
例示の数による学習制御 。
Rephrase and Respond (RaR)
AIにユーザーの質問をより理解しやすい形に「言い換え」させてから回答させる 。
Flipped Interaction
AIに先に質問をさせ、ユーザーがそれに答えることで必要な情報を揃えてからタスクを実行する 。
Temperature
0.0-0.3 決定的(正確性重視)
0.7-1.0 標準
1.2-1.5 ランダム・創造的
DockerDesktop + Dify
今回はローカルにDify環境を構築
インストール
DockerDesktopインストール
https://www.docker.com/ja-jp/get-started/
クローン
git clone –branch 1.11.1 https://github.com/langgenius/dify.git
cd dify\docker
環境設定
copy .env.example .env
起動
docker compose up -d
※ここまで実行して、アクセスできなかった。
トラブルシューティング
docker compose ps
全てのコンテナがupかどうか。
ポート競合しているようだった。
.env
を編集し、
EXPOSE_NGINX_PORT=8080
と変更する。
再起動
docker compose down
docker compose up -d
アクセス
http://localhost:8080/
これでOK
GeminiCLI インストール
今回はVSCodeのターミナルで利用予定
Node バージョンアップ
node -v
npm -v
https://nodejs.org/ja/download
からダウンロード、インストールする。
npmバージョンアップ
npm install -g npm@latest
※nodeのインストールでもnpmは更新されるが最新にはならない。
GeminiCLIインストール
npm install -g @google/gemini-cli
gemini -v
初期設定
gemini
・Do you want to connect VS Code to GeminiCLI?
>1. Yes
※Failed to install VS Code companion extension. Please try installing ‘GeminiCLI Companion’ manually from the VS Code extension marketplace.
となったので後ほど個別でインストール
・How would you like to authenticate for this project?
>1. Login with Google
※ChromeからGoogleアカウントでログインして完了
GeminiCLI Companion
VSCodeにインストールすることで、開いているファイルや選択範囲を自動認識。VS Codeネイティブの差分ビューで確認・承認。コマンドパレットからGeminCLIを起動可能。IDE経由で直感的にファイル編集を提案。など可能になる。
弥生会計NW バックアップエラー
事業所データの圧縮中にエラーが発生しました。
ユーザー名またはパスワードが正しくありません。
と表示された。
クライアントPCに、SQLServerのバックアップ共有フォルダの認証情報を登録してないのが原因だろうと気付いたが、ホスト名が必要でIPアドレスではダメという部分につまづいた。
Flutter HelloWorld
初回インストール
VSCodeでFlutter拡張機能をインストール。
Ctrl+Shift+P>Flutter: New Project>Download SDK
をクリック。
Add SDK to PATH
をクリック。
使用状況などを送信する旨が表示されるので、
OKをクリック。
※無効化する場合
dart –disable-analytics
通常プロジェクト作成
Ctrl+Shift+P>Flutter: New Project
ここでプロジェクトの種類が選べる。
実行
右下でデバイスを選ぶ。
メニュー>実行>デバックの開始
デプロイ
Chromeで開発用に起動(ホットリロード)
flutter run -d chrome
本番用ビルド
flutter build web –release
WebAssembly(実験的)
flutter run -d chrome –wasm
サーバーのみ起動
flutter run -d web-server
launch.json
version:変更不要
name:任意
request:launch、attach(すでに動いているプロセスに接続)
type:dart、chrome(サーバーは起動しない)など。どのデバッガーを使うか。
deviceId:chrome、windowsなど。どのデバイスを使うか。
起動が遅くなったプログラムの調査(.NET/SQLServer)
社内で利用しているのソフトの起動が遅くなった。ソースや詳細な仕様は手元になくSQLServer+.NETということと、サーバーへのアクセス情報だけ。
最初に表示される軽量なログイン画面の表示が遅い。ただ、ソフトを終了後、すぐに起動すると遅くならなかったりもする、維持が数秒と短いのでDBではなく、SMB+NTLMあたりが怪しい。
Process Monitor
https://learn.microsoft.com/ja-jp/sysinternals/downloads/procmon
Filter>Filter
ProcessName | Contains | xxx | Include
Add>OK
これでどのIOが遅いか明確につかめる場合もあるけど、今回はプログラムの中の処理で時間がかかっているようだった。
ILSpy
https://github.com/icsharpcode/ILSpy/releases
プログラムを開いたらエントリポイントを探す。
起動プロセスの中で、社内共有フォルダ(IPアドレス指定)にアクセス、SQLServerに接続をしていることがわかった。
これで名前解決は関係ないと分かる。
TCPView
https://learn.microsoft.com/ja-jp/sysinternals/downloads/tcpview
検索ボックスにプログラム名(または接続先IPアドレス)を入力し、プログラムを起動。接続が確立されるのはDBのみ。またタイミングからやはり共有フォルダが怪しいとなる。
どのタイミングで時間がかかっているか見づらいのでWiresharkを利用。
Wireshark
https://www.wireshark.org/
キャプチャ>開始
フィルタに
ip.src==192.168.1.xxx && ip.dst==192.168.2.xxx || ip.dst==192.168.1.xxx
このように入力した。
これで共有フォルダにアクセスにしているときが遅いことが分かった。
その他
その他に実施したこと。
・クライアント/サーバーのFirewall停止→効果無し。
・クライアント/サーバーで修復系コマンド実施→効果無し。
・該当のアドレスにpingを送信して時間確認。
・該当のアドレスのSQLSserverに接続して時間確認。
・該当のアドレスへの送信をFirewallでふさぐ→効果無し。
・ネットワーク系のキャッシュリセット→効果無し。
・ネットワーク セキュリティ: LAN Manager 認証レベルを変更→効果無し。
・ログ確認(eventvwr)
アプリケーションとサービスログ>Microsoft>Windows>SMBClient
アプリケーションとサービスログ>Microsoft>Windows>NTLM
最終的に、
gpedit.msc>コンピュータの構成>管理用テンプレート>ネットワーク>Lanmanワークステーション>暗号化が必要:無効
で解決することが判明した。
※追記
起動プロセスの中で存在しないIPアドレスへのアクセスがあり、こちらもボトルネックになっているようなので遮断することに。
Win+R>hdwwiz
一覧からインストール
ネットワークアダプター
Microsoft / Microsoft KM-TEST Loopback Adapter
Win+R>ncpa.cpl
IPv4>プロパティ
192.168.x.x / 255.255.255.255
YAMAHA RTX1210 拠点間接続
A拠点が固定IP、B拠点が動的環境。
B拠点(動的側)
実行前
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
administrator password encrypted * login user user * user attribute administrator=off connection=off user attribute user connection=serial,telnet,remote,ssh,sftp,http gui-page=dashboard,lan-map,config login-timer=21474000 ip route default gateway dhcp lan2 ip lan1 address 192.168.12.1/24 ip lan2 address dhcp ip lan2 nat descriptor 1 nat descriptor type 1 masquerade nat descriptor address outer 1 primary nat descriptor address inner 1 auto telnetd service off telnetd host lan dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.12.2-192.168.12.254/24 dns server dhcp lan2 sshd service off statistics traffic on |
IPsecに関する設定
GUI>簡単設定>VPN>拠点間接続>新規>IPSec
次へ
●ネットワーク環境:
接続先のみ固定のグローバルアドレスまたはネットボランチDNSホスト名を持っている
●自分側の設定
・設定名:任意
・自分側のID:test-branch(管理しやすい文字列)
●接続先の情報
・接続先のホスト名またはIPアドレス:A拠点のIPアドレス
●接続先と合わせる設定
・認証鍵:任意(大小英数字で20文字程度)
・認証アルゴリズム:HMAC-SHA(初期値そのまま)
・暗号アルゴリズム:AES-CBC(初期値そのまま)
次へ
経路に関する設定
・接続先のLAN側アドレス
192.168.1.0/255.255.255.0
次へ
実行後
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
administrator password encrypted * login user user * user attribute administrator=off connection=off user attribute user connection=serial,telnet,remote,ssh,sftp,http gui-page=dashboard,lan-map,config login-timer=21474000 ip route default gateway dhcp lan2 ip route 192.168.1.0/24 gateway tunnel 1 ip lan1 address 192.168.12.1/24 ip lan2 address dhcp ip lan2 nat descriptor 1 tunnel select 1 ipsec tunnel 1 ipsec sa policy 1 1 esp aes-cbc sha-hmac ipsec ike keepalive log 1 off ipsec ike keepalive use 1 on heartbeat 10 6 ipsec ike local address 1 192.168.12.1 ipsec ike local name 1 test-branch key-id ipsec ike nat-traversal 1 on ipsec ike pre-shared-key 1 text xxx ipsec ike remote address 1 xxx.xxx.xxx.xxx ip tunnel tcp mss limit auto tunnel enable 1 ip filter 101099 pass * 192.168.12.1 udp * 500 ip filter 101100 pass * 192.168.12.1 esp ip filter 101101 pass * 192.168.12.1 udp * 4500 nat descriptor type 1 masquerade nat descriptor address outer 1 primary nat descriptor address inner 1 auto nat descriptor masquerade static 1 1 192.168.12.1 udp 500 nat descriptor masquerade static 1 2 192.168.12.1 esp nat descriptor masquerade static 1 3 192.168.12.1 udp 4500 ipsec auto refresh on telnetd service off telnetd host lan dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.12.2-192.168.12.254/24 dns server dhcp lan2 sshd service off statistics traffic on |

A拠点(固定IP側)
IPsecに関する設定
GUI>簡単設定>VPN>拠点間接続>新規>IPSec
次へ
●ネットワーク環境:
自分側のみ固定のグローバルアドレスまたはネットボランチDNSホスト名を持っている
●自分側の設定
・設定名:任意
●接続先の情報
・接続先のID:test-branch(管理しやすい文字列)
●接続先と合わせる設定
・認証鍵:任意(大小英数字で20文字程度)
・認証アルゴリズム:HMAC-SHA(初期値そのまま)
・暗号アルゴリズム:AES-CBC(初期値そのまま)
次へ
経路に関する設定
経路を設定しない
次へ
PPPoE/CGNAT
・PPPoE(従来IPv4)
CPEにグローバルのIPv4が割り当てられる。CPEでNAPT44を行う。
任意ポート解放、着信が可能。
※NAPT44
IPv4アドレスとTCP/UDPのポート番号の両方を変換して、複数の内部IPv4ホストが1つの外部IPv4アドレスを同時共有できるようにするアドレス・ポート変換方式
・MAP‑E(v6プラス等)
CPEでNAPT44を行い、そのIPv4パケットをIPv6でカプセル化して事業者網へ送る。(IPv4overIPv6)
契約者ごとに割り当てられたIPv4アドレス+固定ポート範囲を加入者にマッピングして分離する。
理論上、任意ポートの解放、着信は可能だけど実装上は不可能。
※NUROはこの方式に移行中。
・DS‑Lite(transix等)
CPEからIPv4をIPv6にカプセル化してAFTRへ運び、AFTRでCGNAT(NAT44)する。(二重NATではない)
任意ポート解放、着信は不可。
※AFTRはISPのトンネル終端兼NAT装置。
・CGNAT
CPEの外側にISPでもう一度NATが入りIPv4を共有する(NAT444)
任意ポート解放、着信は不可。
※一般的なモバイル回線。
Graylog VSCode Copilot(MCP)
●Node更新
node -v
npm -v
https://nodejs.org/ja/download
からダウンロード、インストールする。
●GrayLogMCPインストール
https://github.com/lcaliani/graylog-mcp/releases/tag/0.1.0
からダウンロード、解凍する。
cd C:\Users\xxx\Documents\graylog-mcp
npm install
●VSCode
設定から
chat.mcp.access
が有効になっているか確認
コマンドパレットから
>MCP: Add Server
>コマンド(stdio)
>C:\Users\xxx\Documents\graylog-mcp\src\index.js
●トークン取得
System>Users and Teams>More>Edit tokens
トークン名と有効期限を入力
>Create Token
●mcp.json編集
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "servers": { "graylog-mcp": { "type": "stdio", "command": "node", "args": [ "C:\\Users\\xxx\\Documents\\graylog-mcp\\src\\index.js" ], "env": { "BASE_URL": "http://xxx:9000", "API_TOKEN": "xxx" } } } } |