Skip to content

yuu61/kasu_uso

Repository files navigation

発表スライド

Chat GPTに書かせたDeep Researchの結果

概要

「カスの嘘ジェネレータ」は、OpenAI APIを使ってカスの嘘を生成する C#/.NET アプリケーションです
日常のちょっとした雑談やプレゼンのアクセント、SNS投稿ネタとして活用できます

カスの嘘 - Wikipedia

主な機能

  • カスタムプロンプト対応:ユーザーが設定したテーマやキーワードに基づきカスの嘘を生成
  • シンプルな UI :Blazorベースの画面で入力→生成をワンストップ
  • API キー管理:ローカルファイル(API_KEY.credential)に格納したキーを自動読み込み
  • OpenAI公式クライアントOpenAI .NET (ファーストパーティ) の非同期APIで快適なレスポンス
  • Prometheusメトリクス:セッション数、API呼び出し回数、パフォーマンス指標を収集

Prometheusメトリクス

アプリケーションでは以下のメトリクスを収集しています:

セッション関連

  • kasu_uso_active_sessions_total - 現在のアクティブセッション数
  • kasu_uso_sessions_total - 総セッション数

OpenAI API関連

  • kasu_uso_openai_api_calls_total - OpenAI API呼び出し回数(ステータス・モデル別)
  • kasu_uso_openai_api_duration_seconds - OpenAI API応答時間
  • kasu_uso_openai_api_errors_total - OpenAI APIエラー回数(エラータイプ別)

ユーザー操作関連

  • kasu_uso_messages_sent_total - 送信されたメッセージ数
  • kasu_uso_generate_button_clicks_total - 生成ボタンクリック回数
  • kasu_uso_month_selections_total - 月選択回数(月別)
  • kasu_uso_share_button_clicks_total - シェアボタンクリック回数(プラットフォーム別)

パフォーマンス関連

  • kasu_uso_page_load_duration_seconds - ページ読み込み時間
  • kasu_uso_errors_total - アプリケーションエラー回数(エラータイプ別)

標準HTTPメトリクス

  • http_requests_total - HTTPリクエスト総数
  • http_request_duration_seconds - HTTPリクエスト応答時間

必要環境

  • .NET 8.0 SDK 以上
  • C# 11.0
  • OpenAI API アクセス権(OpenAI API キー)
  • Windows/macOS/Linux 上のターミナルまたはVisual Studio 2022/Visual Studio Code

Visual studioで動かすのが一番楽で速いと思います
クローンしてAPIキー設定してCtrl + F5するだけです

インストールとセットアップ

以下にUbuntu 24.04 LTSでの手順を説明します
誤りがある場合はよしなにしてください
???「ゆるしてよ~

  1. リポジトリをクローン
git clone https://github.com/yuu61/kasu_uso.git
cd kasu_uso
  1. .NETをインストール

.NET をインストールする

  1. リポジトリのルートで以下コマンドを実行
dotnet publish -c Release
#実行結果
MSBuild version 17.8.27+3ab07f0cf for .NET
  Determining projects to restore...
  Restored /home/user/kasu_uso/kasu_uso.csproj (in 1.2 sec).
  kasu_uso -> /home/user/kasu_uso/bin/Release/net8.0/kasu_uso.dll
  kasu_uso -> /home/user/kasu_uso/bin/Release/net8.0/publish/
  1. sudo vi /etc/systemd/system/blazor-app.serviceで以下のファイルを作成
    userの部分はdotnet publish -c Releaseの実行結果を参考に適宜書き換えてください
[Unit]
Description=Blazor Server App
After=network.target

[Service]
WorkingDirectory=/home/user/kasu_uso/bin/Release/net8.0/publish
ExecStart=/usr/bin/dotnet /home/user/kasu_uso/bin/Release/net8.0/kasu_uso.dll
Restart=always
RestartSec=10
User=deploy
Environment=ASPNETCORE_ENVIRONMENT=Production
SyslogIdentifier=blazor-app

[Install]
WantedBy=multi-user.target
  1. API キーの準備 /kasu_uso/bin/Release/net8.0/publishAPI_KEY.credentialファイルを作成し、OpenAI APIキーを1行で記述します
sk-**************…
  1. 実行
sudo systemctl daemon-reload
# sudo systemctl enable blazor-app
sudo systemctl start blazor-app
dotnet run
#実行結果
user@ubuntu:~/kasu_uso$ dotnet run
ビルドしています...
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:xxxx

https://localhost:xxxxにブラウザでアクセスすると、UIが表示されます

カスタマイズ

  • プロンプトの変更
    Home.razor 内の systemPromptuserPromptを編集することで、生成されるカスの噓の傾向を調整できます モデルの設定現在以下のようになっています
model = "gpt-4.1-mini",
max_output_token_count = 1000,
temperature = 1
  • UI の拡張 Blazor コンポーネントを追加し、複数テーマ選択や生成履歴機能などを組み込むことも可能です

Releases

No releases published

Packages

 
 
 

Contributors