VOOZH about

URL: https://glama.ai/mcp/servers/microsoft/genaiscript?locale=ru-RU

⇱ GenAIScript by microsoft | Glama


👁 Желтый квадрат со словом «gen», написанным строчными черными буквами над заглавными черными буквами «AI».

GenAIScript

Подсказка — это кодирование

Программно собирайте запросы для LLM с помощью JavaScript. Организуйте LLM, инструменты и данные в коде.


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. Любое использование товарных знаков или логотипов третьих лиц подчиняется политикам этих третьих лиц.

A
license - permissive license
-
quality - not tested
F
maintenance

Maintenance

Maintainers
Response time
1dRelease cycle
52Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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