groq-reference-architecture
Groqリファレンスアーキテクチャをベストプラクティスに基づくプロジェクトレイアウトで実装します。Groq統合を新規に設計する際、プロジェクト構成をレビューする際、またはGroqアプリケーションのアーキテクチャ標準を確立する際に活用できます。「groq architecture」「groq best practices」「groq project structure」「how to organize groq」「groq layout」といったキーワードで実行されます。
description の原文を見る
Implement Groq reference architecture with best-practice project layout. Use when designing new Groq integrations, reviewing project structure, or establishing architecture standards for Groq applications. Trigger with phrases like "groq architecture", "groq best practices", "groq project structure", "how to organize groq", "groq layout".
SKILL.md 本文
Groq リファレンスアーキテクチャ
概要
Groq統合向けのプロダクションレディなアーキテクチャパターン。
前提条件
- レイヤード アーキテクチャの理解
- Groq SDK の知識
- TypeScript プロジェクトのセットアップ
- テストフレームワークの設定
プロジェクト構成
my-groq-project/
├── src/
│ ├── groq/
│ │ ├── client.ts # Singleton client wrapper
│ │ ├── config.ts # Environment configuration
│ │ ├── types.ts # TypeScript types
│ │ ├── errors.ts # Custom error classes
│ │ └── handlers/
│ │ ├── webhooks.ts # Webhook handlers
│ │ └── events.ts # Event processing
│ ├── services/
│ │ └── groq/
│ │ ├── index.ts # Service facade
│ │ ├── sync.ts # Data synchronization
│ │ └── cache.ts # Caching layer
│ ├── api/
│ │ └── groq/
│ │ └── webhook.ts # Webhook endpoint
│ └── jobs/
│ └── groq/
│ └── sync.ts # Background sync job
├── tests/
│ ├── unit/
│ │ └── groq/
│ └── integration/
│ └── groq/
├── config/
│ ├── groq.development.json
│ ├── groq.staging.json
│ └── groq.production.json
└── docs/
└── groq/
├── SETUP.md
└── RUNBOOK.md
レイヤーアーキテクチャ
┌─────────────────────────────────────────┐
│ API レイヤー │
│ (コントローラ、ルート、ウェブフック) │
├─────────────────────────────────────────┤
│ サービスレイヤー │
│ (ビジネスロジック、オーケストレーション) │
├─────────────────────────────────────────┤
│ Groq レイヤー │
│ (クライアント、型、エラーハンドリング) │
├─────────────────────────────────────────┤
│ インフラストラクチャレイヤー │
│ (キャッシュ、キュー、モニタリング) │
└─────────────────────────────────────────┘
主要コンポーネント
ステップ 1: クライアント ラッパー
// src/groq/client.ts
export class GroqService {
private client: GroqClient;
private cache: Cache;
private monitor: Monitor;
constructor(config: GroqConfig) {
this.client = new GroqClient(config);
this.cache = new Cache(config.cacheOptions);
this.monitor = new Monitor('groq');
}
async get(id: string): Promise<Resource> {
return this.cache.getOrFetch(id, () =>
this.monitor.track('get', () => this.client.get(id))
);
}
}
ステップ 2: エラーバウンダリー
// src/groq/errors.ts
export class GroqServiceError extends Error {
constructor(
message: string,
public readonly code: string,
public readonly retryable: boolean,
public readonly originalError?: Error
) {
super(message);
this.name = 'GroqServiceError';
}
}
export function wrapGroqError(error: unknown): GroqServiceError {
// Transform SDK errors to application errors
}
ステップ 3: ヘルスチェック
// src/groq/health.ts
export async function checkGroqHealth(): Promise<HealthStatus> {
try {
const start = Date.now();
await groqClient.ping();
return {
status: 'healthy',
latencyMs: Date.now() - start,
};
} catch (error) {
return { status: 'unhealthy', error: error.message };
}
}
データフロー図
ユーザーリクエスト
│
▼
┌─────────────┐
│ API │
│ ゲートウェイ │
└──────┬──────┘
│
▼
┌─────────────┐ ┌─────────────┐
│ サービス │───▶│ キャッシュ │
│ レイヤー │ │ (Redis) │
└──────┬──────┘ └─────────────┘
│
▼
┌─────────────┐
│ Groq │
│ クライアント │
└──────┬──────┘
│
▼
┌─────────────┐
│ Groq │
│ API │
└─────────────┘
設定管理
// config/groq.ts
export interface GroqConfig {
apiKey: string;
environment: 'development' | 'staging' | 'production';
timeout: number;
retries: number;
cache: {
enabled: boolean;
ttlSeconds: number;
};
}
export function loadGroqConfig(): GroqConfig {
const env = process.env.NODE_ENV || 'development';
return require(`./groq.${env}.json`);
}
手順
ステップ 1: ディレクトリ構造の作成
上記のリファレンス構造に従ってプロジェクトレイアウトをセットアップします。
ステップ 2: クライアント ラッパーの実装
キャッシング とモニタリングを備えた シングルトン クライアントを作成します。
ステップ 3: エラーハンドリングの追加
Groq操作用のカスタム エラー クラスを実装します。
ステップ 4: ヘルスチェックの設定
Groq接続向けのヘルスチェック エンドポイントを追加します。
出力
- 構造化されたプロジェクトレイアウト
- キャッシング機能付きクライアント ラッパー
- 実装されたエラーバウンダリー
- 設定されたヘルスチェック
エラーハンドリング
| 問題 | 原因 | 解決方法 |
|---|---|---|
| 循環依存 | レイヤリングが不正 | 関心事をレイヤーで分離 |
| 設定の読み込み失敗 | パスが不正 | 設定ファイルの場所を確認 |
| 型エラー | 型が不足 | Groq型を追加 |
| テスト分離の問題 | 共有状態 | 依存性注入を使用 |
例
クイックセットアップスクリプト
# Create reference structure
mkdir -p src/groq/{handlers} src/services/groq src/api/groq
touch src/groq/{client,config,types,errors}.ts
touch src/services/groq/{index,sync,cache}.ts
リソース
フラッグシップスキル
マルチ環境セットアップについては、groq-multi-env-setup を参照してください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- Brmbobo
- リポジトリ
- Brmbobo/Web2podcast
- ライセンス
- MIT
- 最終更新
- 2026/1/26
Source: https://github.com/Brmbobo/Web2podcast / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。