OmniSQLを使用した実際のSQLクエリ生成の主な手順は以下の通りである。
- プロンプトテンプレートの準備:: ミッションステートメント、データベースエンジン、データベーススキーマ、ユーザーからの質問とガイドラインが含まれています。
- 積載モデル選択されたモデルパス(例えば "seeklhy/OmniSQL-7B")に従って、トークナイザーとLLMインスタンスを初期化します。
- サンプリング・パラメータの設定例:決定論的な出力を保証するためにtemperature=0、十分な世代数を与えるためにmax_tokens=2048
- アプリケーション・チャット・テンプレート:: ユーザーの質問を特定のフォーマットで整理する
- クエリーの生成出力を得るためにモデルのgenerateメソッドを呼び出す。
サンプル操作で使用したデータベーススキーマ。
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);
usersテーブルで30歳以上の人の名前を見つける "という質問に対して、OmniSQLが生成するSQLは次のようになる。
SELECT name FROM users WHERE age > 30;
実際には、次のことに注意することが重要である。
- データベース・エンジンの宣言は、実際のものと同じでなければならない(デフォルトはSQLite)。
- プロンプト・テンプレートのデザインは、生成の質に直接影響する。
- 複雑なクエリの場合、COT(Chain-of-Thought)を有効にすることで、モデルが段階的に考えるように導くことができる。
この答えは記事から得たものである。OmniSQL: 自然言語を高品質なSQLクエリに変換するモデルについて