![]()
GenAIScript
Подсказка — это кодирование
Программно собирайте запросы для LLM с помощью JavaScript. Организуйте LLM, инструменты и данные в коде.
Набор инструментов JavaScript для работы с подсказками
Абстракция, делающая работу легкой и продуктивной
Полная интеграция Visual Studio Code или гибкая командная строка
Встроенная поддержка GitHub Copilot и GitHub Models, OpenAI, Azure OpenAI, Anthropic и т. д.
📄 Прочитайте ОНЛАЙН-ДОКУМЕНТАЦИЮ по адресу
💬 Присоединяйтесь к серверу Discord
📝 Читайте блог , чтобы быть в курсе последних новостей
📺 Посмотрите видео «Уютная кухня с искусственным интеллектом» господина Маэды
🤖 Агенты - прочтите llms-full.txt
Related MCP server: MCP Gemini API Server
Привет, мир
Допустим, вы хотите создать сценарий 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. Любое использование товарных знаков или логотипов третьих лиц подчиняется политикам этих третьих лиц.
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