👁 大文字の黒い文字「AI」の上に小文字の黒い文字で「gen」という単語が書かれた黄色の四角形。
GenAIスクリプト
プロンプトはコーディングです
JavaScript を使用して、LLM のプロンプトをプログラム的に組み立てます。LLM、ツール、データをコードでオーケストレーションします。
プロンプトを操作するための JavaScript ツールボックス
抽象化により、簡単に生産性を向上
シームレスなVisual Studio Code統合または柔軟なコマンドライン
GitHub Copilot、GitHub Models、OpenAI、Azure OpenAI、Anthropic などの組み込みサポート
📄 microsoft.github.io/genaiscriptでオンラインドキュメントを読む
💬 Discordサーバーに参加する
📝 最新ニュースについてはブログをご覧ください
🤖 エージェント - llms-full.txtを読んでください
Related MCP server: MCP Sandbox
こんにちは世界
「Hello World」という詩を生成するLLMスクリプトを作成したいとします。次のようなスクリプトを作成できます。
$`Write a 'hello world' poem.`$関数はプロンプトを作成するテンプレートタグです。このプロンプトは(設定した)LLMに送信され、詩が生成されます。
ファイル、データ、構造化された出力を追加して、もっと面白くしてみましょう。例えば、プロンプトにファイルを追加し、その出力をファイルに保存したいとします。次のようなスクリプトを書くことができます。
// read files
const file = await workspace.readText("data.txt")
// include the file content in the prompt in a context-friendly way
def("DATA", file)
// the task
$`Analyze DATA and extract data in JSON in data.json.`def関数はファイルの内容を取り込み、必要に応じて対象のLLMに合わせて最適化します。GenAIScriptスクリプトはLLM出力を解析し、 data.jsonファイルを自動的に抽出します。
🚀 クイックスタートガイド
Visual Studio Code 拡張機能をインストールするか、コマンド ラインを使用してすぐに開始できます。
✨ 特徴
🎨 スタイル化された JavaScript と TypeScript
JavaScriptまたはTypeScriptを使用してプログラムでプロンプトを構築します。
def("FILE", env.files, { endsWith: ".pdf" })
$`Summarize FILE. Today is ${new Date()}.`🚀 高速開発ループ
Visual Studio Codeまたはコマンド ラインを使用してスクリプトを編集、デバッグ、実行、テストします。
🔗 スクリプトの再利用と共有
スクリプトはファイルです。バージョン管理、共有、フォークが可能です。
// define the context
def("FILE", env.files, { endsWith: ".pdf" })
// structure the data
const schema = defSchema("DATA", { type: "array", items: { type: "string" } })
// assign the task
$`Analyze FILE and extract data to JSON using the ${schema} schema.`📋 データスキーマ
スキーマを使用してデータを定義、検証、修復します。Zod サポートが組み込まれています。
const data = defSchema("MY_DATA", { type: "array", items: { ... } })
$`Extract data from files using ${data} schema.`📄 PDF、DOCX などからテキストを取り込みます...
def("PDF", env.files, { endsWith: ".pdf" })
const { pages } = await parsers.PDF(env.files[0])📊 CSV、XLSX などからテーブルを取り込みます...
CSV 、 XLSX 、... からの表形式データを操作します。
def("DATA", env.files, { endsWith: ".csv", sliceHead: 100 })
const rows = await parsers.CSV(env.files[0])
defData("ROWS", rows, { sliceHead: 100 })📝 ファイルを生成する
LLM 出力からファイルを抽出し、比較します。リファクタリング UI で変更をプレビューします。
$`Save the result in poem.txt.`FILE ./poem.txt
The quick brown fox jumps over the lazy dog.🔍 ファイル検索
ファイルを Grep または fuzz 検索します。
const { files } = await workspace.grep(/[a-z][a-z0-9]+/, { globs: "*.md" })分類する
テキスト、画像、またはそれらの組み合わせを分類します。
const joke = await classify(
"Why did the chicken cross the road? To fry in the sun.",
{
yes: "funny",
no: "not funny",
}
)LLMツール
JavaScript関数をツールとして登録します(ツールをサポートしていないモデルの場合はフォールバック機能を使用します)。モデルコンテキストプロトコル(MCP)ツールもサポートされています。
defTool(
"weather",
"query a weather web api",
{ location: "string" },
async (args) =>
await fetch(`https://weather.api.api/?location=${args.location}`)
)LLMエージェント
JavaScript 関数をツールとして登録し、ツール + プロンプトをエージェントに組み合わせます。
defAgent(
"git",
"Query a repository using Git to accomplish tasks.",
`Your are a helpful LLM agent that can use the git tools to query the current repository.
Answer the question in QUERY.
- The current repository is the same as github repository.`,
{ model, system: ["system.github_info"], tools: ["git"] }
)それを道具として使う
script({ tools: "agent_git" })
$`Do a statistical analysis of the last commits`Git エージェントのソースを参照してください。
🔍 RAG内蔵
const { files } = await retrieval.vectorSearch("cats", "**/*.md")🐙 GitHub モデルと GitHub Copilot
GitHub ModelsまたはGitHub Copilotを通じてモデルを実行します。
script({ ..., model: "github:gpt-4o" })💻 ローカルモデル
Ollama 、 LocalAIを使用して、 Phi-3などのオープンソース モデルでスクリプトを実行します。
script({ ..., model: "ollama:phi3" })🐍 コードインタープリター
LLM がサンドボックス化された実行環境でコードを実行できるようにします。
script({ tools: ["python_code_interpreter"] })🐳 コンテナ
Dockerコンテナ内でコードを実行します。
const c = await host.container({ image: "python:alpine" })
const res = await c.exec("python --version")ビデオ処理
LLM リクエストに効率的にフィードできるように、ビデオを書き起こしてスクリーンショットを作成します。
// transcribe
const transcript = await transcript("path/to/audio.mp3")
// screenshots at segments
const frames = await ffmpeg.extractFrames("path_url_to_video", { transcript })
def("TRANSCRIPT", transcript)
def("FRAMES", frames)🧩 LLM 構成
LLM を実行してLLM プロンプトを構築します。
for (const file of env.files) {
const { text } = await runPrompt((_) => {
_.def("FILE", file)
_.$`Summarize the FILE.`
})
def("SUMMARY", text)
}
$`Summarize all the summaries.`🅿️ 迅速なサポート
Promptyファイルも実行してください。
---
name: poem
---
Write me a poemプラグ可能な秘密スキャン
秘密スキャンを使用して、チャットの秘密をスキャンします。
{
"secretPatterns": {
...,
"OpenAI API Key": "sk-[A-Za-z0-9]{32,48}"
}
}⚙ CLI または API で自動化
npx genaiscript run tlaplus-linter "*.tla"import { run } from "genaiscript/api"
const res = await run("tlaplus-linter", "*.tla")安全第一!
GenAIScript には、コンテンツの安全性を検証するための組み込みの責任ある AI システム プロンプトと Azure コンテンツ セーフティ サポートが用意されています。
script({ ...,
system: ["system.safety_harmful_content", ...],
contentSafety: "azure" // use azure content safety
})
const safety = await host.contentSafety()
const res = await safety.detectPromptInjection(env.vars.input)💬 プルリクエストのレビュー
コメント、レビュー、説明の更新を通じて、プルリクエストのチェックに統合します。GitHub Actions と Azure DevOps パイプラインをサポートします。
npx genaiscript ... --pull-request-reviews⭐ テストと評価
promptfooを利用したテストと評価を使用して、信頼性の高いプロンプトを構築します。
script({ ..., tests: {
files: "penguins.csv",
rubric: "is a data analysis report",
facts: "The data refers about penguin population in Antarctica.",
}})LLMフレンドリーなドキュメント
ドキュメントの全コンテンツは、 https://microsoft.github.io/genaiscript/llms-full.txtにマークダウン形式で保存されています。お気に入りの RAG システムに直接入力してください。
LLMクローラーの場合は、ドキュメントURLに.mdサフィックスを追加して、生のMarkdownコンテンツを取得してください。例: https ://microsoft.github.io/genaiscript/guides/prompt-as-code.md(.md拡張子にご注意ください)
貢献
貢献を歓迎します!詳細と開発者向け設定については、 「貢献」ページをご覧ください。
商標
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。Microsoftの商標またはロゴの使用は、 Microsoftの商標およびブランドガイドラインの対象となり、これに従う必要があります。このプロジェクトの改変版におけるMicrosoftの商標またはロゴの使用は、混乱を招いたり、Microsoftのスポンサーシップを暗示したりしてはなりません。第三者の商標またはロゴの使用は、当該第三者のポリシーに従うものとします。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
- A platform for datasets and data management
- No-code platforms for application development using TypeScript, JavaScript, Python, with MCP server integration via agentic orchestration
- Tools and Techniques for Debugging UI in Web Development
- The most downloaded Minecraft Plugin (MCP) right now
- Workflows in n8n for downloading from Google Drive
Latest Blog Posts
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/microsoft/genaiscript'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
