GenAIScript
Подсказка — это кодирование
Программно собирайте запросы для LLM с помощью JavaScript. Организуйте 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
Привет, мир
Допустим, вы хотите создать сценарий 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, ...
Манипулирование файлами 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. Предварительный просмотр изменений в Refactoring 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 в качестве инструментов (с резервом для моделей, которые не поддерживают инструменты). Инструменты Model Context Protocol (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 .
🔍 Встроенная ТРЯПКА
const { files } = await retrieval.vectorSearch("cats", "**/*.md")🐙 Модели GitHub и GitHub Copilot
Запускайте модели через GitHub Models или GitHub Copilot .
script({ ..., model: "github:gpt-4o" })💻 Местные модели
Запускайте свои скрипты с моделями с открытым исходным кодом , такими как Phi-3 , используя Ollama , LocalAI .
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")Обработка видео
Транскрибируйте и делайте скриншоты своих видео, чтобы вы могли эффективно использовать их в своих запросах на получение степени магистра права.
// 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.
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
Автоматизируйте с помощью CLI или API .
npx genaiscript run tlaplus-linter "*.tla"import { run } from "genaiscript/api"
const res = await run("tlaplus-linter", "*.tla")Безопасность прежде всего!
GenAIScript предоставляет встроенные системные подсказки Responsible AI, а Azure Content Safety поддерживает проверку безопасности контента .
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)💬 Обзоры запросов на извлечение
Интегрируйте в проверки Pull Requests с помощью комментариев, обзоров или обновлений описаний. Поддерживает GitHub Actions и Azure DevOps pipelines.
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-обходчик, добавьте суффикс .md к любым URL-адресам документации, чтобы получить сырой контент 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
