Skip to main content
Glama

f0_make_randomvalues MCP Server

specification.md7.89 kB
# f0_make_randomvalues 要件定義・仕様書 ## 1. システム概要 ### 1.1 目的 Functional Graph Database (FGDB)システムにおいて、乱数データを生成する関数ブロック(FB)を提供する。本FBは独立変数を取らず、従属変数として乱数データを生成する基本的なデータ生成機能を実現する。 ### 1.2 位置づけ - **FGDB内での役割**: データ生成源として機能し、他の関数ブロックへの入力データを提供 - **関数表現**: `y = f0()` (独立変数なしの関数) - **ブロックカテゴリ**: Function Block (FB) ## 2. 機能要件 ### 2.1 主要機能 | 機能ID | 機能名 | 説明 | |--------|--------|------| | FR-001 | 乱数生成 | 指定された個数の整数乱数を生成する | | FR-002 | データ保存 | 生成した乱数をCSVファイルとして保存する | | FR-003 | データ読込 | 保存されたCSVファイルを読み込む | | FR-004 | データ表示 | 読み込んだデータを標準出力に表示する | | FR-005 | 関数記述出力 | 抽象関数表現をfunc.txtに出力する | ### 2.2 詳細仕様 #### FR-001: 乱数生成 - **範囲**: 0~999の整数 - **デフォルト生成数**: 5個 - **カスタマイズ**: コマンドライン引数で生成数を指定可能 #### FR-002: データ保存 - **ファイル名**: `data.csv` - **保存先**: 指定された出力フォルダ - **フォーマット**: ヘッダー付きCSV(単一列) #### FR-003: データ読込 - **対応フォーマット**: CSV - **エラーハンドリング**: ファイル不在時の適切なエラー処理 #### FR-004: データ表示 - **出力先**: 標準出力(stdout) - **表示形式**: ヘッダーを含む全データの表示 #### FR-005: 関数記述出力 - **ファイル名**: `func.txt` - **内容**: `y=f0()` - **用途**: FGDBシステムでの関数実行記述 ## 3. 非機能要件 ### 3.1 性能要件 | 要件ID | 項目 | 基準値 | |--------|------|--------| | NR-001 | 乱数生成速度 | 10,000個/秒以上 | | NR-002 | メモリ使用量 | 100MB以下 | | NR-003 | ファイルサイズ | 生成数×10バイト以下 | ### 3.2 品質要件 - **可用性**: エラー発生時の適切なメッセージ出力 - **保守性**: モジュール化されたコード構造 - **移植性**: Python 3.8以上で動作 - **拡張性**: 乱数生成アルゴリズムの変更が容易 ## 4. インターフェース仕様 ### 4.1 コマンドラインインターフェース #### 基本実行 ```bash python f0/func.py -o {output_folder} ``` #### パラメータ指定実行 ```bash python f0/func.py -o {output_folder} -n {num} ``` ### 4.2 引数仕様 | 引数 | 必須 | デフォルト | 説明 | |------|------|------------|------| | `-o`, `--output` | ○ | なし | 出力フォルダパス | | `-n`, `--number` | × | 5 | 生成する乱数の個数 | ### 4.3 出力仕様 - **正常終了**: 終了コード 0 - **異常終了**: 終了コード 1 - **ログ出力**: 実行状況を標準出力に表示 ## 5. データフォーマット ### 5.1 data.csv フォーマット ``` data 1 3 56 23 664 ``` - **1行目**: ヘッダー("data"固定) - **2行目以降**: 生成された乱数(1行1データ) - **文字コード**: UTF-8 - **改行コード**: LF ### 5.2 func.txt フォーマット ``` y=f0() ``` - **形式**: FGDB関数記述形式 - **文字コード**: UTF-8 ## 6. ファイル構成 ### 6.1 ディレクトリ構造 ``` f0_make_randomvalues/ ├── data.csv # 生成データファイル(実行時生成) ├── func.py # メイン実行ファイル ├── lib.py # ライブラリ関数 ├── main.py # テストコード ├── func.txt # 関数記述ファイル ├── README.md # ドキュメント ├── requirements.txt # 依存パッケージ └── specification.md # 本仕様書 ``` ### 6.2 各ファイルの役割 | ファイル名 | 役割 | 実装言語 | |------------|------|----------| | func.py | メイン処理実装 | Python | | lib.py | 共通関数ライブラリ | Python | | main.py | 単体テスト実装 | Python | | data.csv | 出力データ | CSV | | func.txt | 関数記述 | テキスト | ## 7. 実装詳細 ### 7.1 lib.py 実装関数 | 関数名 | 引数 | 戻り値 | 説明 | |--------|------|--------|------| | `generate_random_numbers(count)` | count: int | List[int] | 指定数の乱数生成 | | `save_data_to_csv(data, filepath)` | data: List, filepath: str | None | CSVファイル保存 | | `load_data_from_csv(filepath)` | filepath: str | List[int] | CSVファイル読込 | | `display_data(data)` | data: List | None | データ表示 | | `write_function_notation(filepath)` | filepath: str | None | 関数記述出力 | ### 7.2 エラーハンドリング | エラー種別 | 処理 | |------------|------| | ファイル書込エラー | エラーメッセージ出力後、終了コード1で終了 | | ディレクトリ作成エラー | 自動的にディレクトリを作成 | | 引数不正 | 使用方法を表示後、終了コード1で終了 | ## 8. テスト要件 ### 8.1 単体テスト | テストID | テスト内容 | 期待結果 | |----------|------------|----------| | UT-001 | デフォルト乱数生成 | 5個の乱数生成 | | UT-002 | カスタム数乱数生成 | 指定数の乱数生成 | | UT-003 | CSV保存・読込 | データの一致確認 | | UT-004 | 関数記述出力 | "y=f0()"の出力確認 | ### 8.2 統合テスト | テストID | テスト内容 | 期待結果 | |----------|------------|----------| | IT-001 | FGDBへの登録 | add_block.pyでの正常登録 | | IT-002 | operation.txt実行 | 関数実行と結果登録 | | IT-003 | グラフ表示 | MGとOGでの正常表示 | ## 9. 環境構築 ### 9.1 必要環境 - Python: 3.8以上 - OS: Windows 10/11, macOS 10.14+, Linux (Ubuntu 20.04+) ### 9.2 uvを使用した環境構築手順 ```bash # 1. uvのインストール(未インストールの場合) pip install uv # 2. プロジェクトディレクトリの作成 mkdir f0_make_randomvalues cd f0_make_randomvalues # 3. Python環境の初期化 uv venv # 4. 仮想環境の有効化 # Windows .venv\Scripts\activate # macOS/Linux source .venv/bin/activate # 5. 依存パッケージのインストール uv pip install -r requirements.txt # 6. 実行確認 python func.py -o output -n 10 ``` ### 9.3 requirements.txt 内容 ``` # 標準ライブラリのみ使用のため、外部依存なし # Pythonバージョン要件: >=3.8 ``` ## 10. 制約事項 ### 10.1 技術的制約 - Python標準ライブラリのみ使用(外部ライブラリ依存なし) - 乱数生成にはPythonのrandomモジュールを使用 - ファイルI/Oは同期処理のみ ### 10.2 運用上の制約 - 出力フォルダへの書込権限が必要 - 同時実行時のファイル競合は考慮しない ## 11. 用語定義 | 用語 | 定義 | |------|------| | FB (Function Block) | FGDBシステムにおける関数の実装単位 | | FGDB | Functional Graph Database - 関数実行履歴管理システム | | MG | Management Graph - 構成要素管理グラフ | | OG | Operation Graph - 実行履歴管理グラフ | ## 12. 改訂履歴 | バージョン | 日付 | 変更内容 | 作成者 | |------------|------|----------|--------| | 1.0 | 2025-01-26 | 初版作成 | FGDB開発チーム | ## 13. 承認 | 役割 | 氏名 | 承認日 | |------|------|--------| | プロジェクトマネージャー | - | - | | 技術リーダー | - | - | | 品質保証責任者 | - | - | --- *本仕様書はFGDBシステムのf0_make_randomvalues関数ブロックの要件定義および詳細仕様を記載したものである。*

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sengokusal2025/f0_20251002'

If you have feedback or need assistance with the MCP directory API, please join our Discord server