GenAIScript
La incitación es codificación
Ensamble programáticamente indicaciones para LLM con JavaScript. Organice LLM, herramientas y datos en código.
Caja de herramientas de JavaScript para trabajar con indicaciones
Abstracción para hacerlo fácil y productivo
Integración perfecta con Visual Studio Code o línea de comandos flexible
Compatibilidad integrada con GitHub Copilot y GitHub Models, OpenAI, Azure OpenAI, Anthropic y más
📄 Lea la DOCUMENTACIÓN EN LÍNEA en microsoft.github.io/genaiscript
💬 Únete al servidor de Discord
📝 Lee el blog para conocer las últimas novedades
📺 Mira la acogedora cocina con inteligencia artificial del Sr. Maeda
🤖 Agentes: lean el archivo llms-full.txt
Related MCP server: MCP Sandbox
Hola Mundo
Supongamos que desea crear un guion LLM que genere un poema de "Hola mundo". Puede escribir el siguiente guion:
$`Write a 'hello world' poem.`La función $ es una etiqueta de plantilla que crea una propuesta. Esta propuesta se envía al LLM (que usted configuró), que genera el poema.
Hagámoslo más interesante añadiendo archivos, datos y una salida estructurada. Supongamos que quieres incluir un archivo en el prompt y luego guardar la salida en un archivo. Puedes escribir el siguiente script:
// 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.`La función def incluye el contenido del archivo y lo optimiza, si es necesario, para el LLM de destino. El script GenAIScript también analiza la salida del LLM y extrae el archivo data.json automáticamente.
🚀 Guía de inicio rápido
Comience rápidamente instalando la extensión de Visual Studio Code o utilizando la línea de comandos .
✨ Características
JavaScript y TypeScript estilizados
Cree indicaciones mediante programación utilizando JavaScript o TypeScript .
def("FILE", env.files, { endsWith: ".pdf" })
$`Summarize FILE. Today is ${new Date()}.`🚀 Bucle de desarrollo rápido
Edite, depure , ejecute y pruebe sus scripts en Visual Studio Code o con la línea de comandos .
🔗 Reutilizar y compartir scripts
¡Los scripts son archivos ! Se pueden versionar, compartir y bifurcar.
// 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.`📋 Esquemas de datos
Definir, validar y reparar datos mediante esquemas . Compatibilidad con Zod integrada.
const data = defSchema("MY_DATA", { type: "array", items: { ... } })
$`Extract data from files using ${data} schema.`📄 Ingerir texto desde archivos PDF, DOCX, ...
Manipular archivos PDF , DOCX , ...
def("PDF", env.files, { endsWith: ".pdf" })
const { pages } = await parsers.PDF(env.files[0])📊 Ingerir tablas desde CSV, XLSX, ...
Manipular datos tabulares desde CSV , XLSX , ...
def("DATA", env.files, { endsWith: ".csv", sliceHead: 100 })
const rows = await parsers.CSV(env.files[0])
defData("ROWS", rows, { sliceHead: 100 })📝 Generar archivos
Extraiga archivos y compare la salida de LLM. Previsualice los cambios en la interfaz de refactorización.
$`Save the result in poem.txt.`FILE ./poem.txt
The quick brown fox jumps over the lazy dog.🔍 Búsqueda de archivos
Buscar archivos mediante grep o fuzz.
const { files } = await workspace.grep(/[a-z][a-z0-9]+/, { globs: "*.md" })Clasificar
Clasifica texto, imágenes o una mezcla de todo.
const joke = await classify(
"Why did the chicken cross the road? To fry in the sun.",
{
yes: "funny",
no: "not funny",
}
)Herramientas LLM
Registrar funciones de JavaScript como herramientas (con respaldo para modelos que no las admiten). También se admiten las herramientas del Protocolo de Contexto de Modelo (MCP) .
defTool(
"weather",
"query a weather web api",
{ location: "string" },
async (args) =>
await fetch(`https://weather.api.api/?location=${args.location}`)
)Agentes de LLM
Registre las funciones de JavaScript como herramientas y combine herramientas + indicaciones en agentes.
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"] }
)luego úsalo como herramienta
script({ tools: "agent_git" })
$`Do a statistical analysis of the last commits`Vea el código fuente del agente git .
🔍 RAG Incorporado
const { files } = await retrieval.vectorSearch("cats", "**/*.md")🐙 Modelos de GitHub y GitHub Copilot
Ejecute modelos a través de GitHub Models o GitHub Copilot .
script({ ..., model: "github:gpt-4o" })💻 Modelos locales
Ejecute sus scripts con modelos de código abierto , como Phi-3 , usando Ollama , LocalAI .
script({ ..., model: "ollama:phi3" })🐍 Intérprete de código
Deje que LLM ejecute el código en un entorno de ejecución aislado.
script({ tools: ["python_code_interpreter"] })🐳 Contenedores
Ejecutar código en contenedores Docker.
const c = await host.container({ image: "python:alpine" })
const res = await c.exec("python --version")Procesamiento de vídeo
Transcribe y captura capturas de pantalla de tus videos para que puedas alimentarlos de manera eficiente en tus solicitudes de 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)Composición de LLM
Ejecute LLMs para crear sus indicaciones LLM.
for (const file of env.files) {
const { text } = await runPrompt((_) => {
_.def("FILE", file)
_.$`Summarize the FILE.`
})
def("SUMMARY", text)
}
$`Summarize all the summaries.`🅿️ Soporte rápido
¡Ejecuta también tus archivos Prompty !
---
name: poem
---
Write me a poemEscaneo secreto conectable
Escanea tus chats en busca de secretos usando el escaneo de secretos .
{
"secretPatterns": {
...,
"OpenAI API Key": "sk-[A-Za-z0-9]{32,48}"
}
}⚙ Automatizar con CLI o API
Automatizar utilizando la CLI o API .
npx genaiscript run tlaplus-linter "*.tla"import { run } from "genaiscript/api"
const res = await run("tlaplus-linter", "*.tla")¡Seguridad ante todo!
GenAIScript proporciona indicaciones integradas del sistema de IA responsable y Azure Content Safety admite la validación de la seguridad del contenido .
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)💬 Reseñas de solicitudes de extracción
Integre las comprobaciones de sus solicitudes de extracción mediante comentarios, revisiones o actualizaciones de descripciones. Compatible con GitHub Actions y canalizaciones de Azure DevOps.
npx genaiscript ... --pull-request-reviews⭐ Pruebas y evaluaciones
Cree indicaciones confiables utilizando pruebas y evaluaciones impulsadas por promptfoo .
script({ ..., tests: {
files: "penguins.csv",
rubric: "is a data analysis report",
facts: "The data refers about penguin population in Antarctica.",
}})Documentos compatibles con LLM
Todo el contenido de la documentación se genera en Markdown en https://microsoft.github.io/genaiscript/llms-full.txt . Introdúzcalo directamente en su sistema RAG preferido.
Si trabajas con LLM, añade el sufijo .md a las URL de la documentación para obtener contenido Markdown sin procesar. Por ejemplo, https://microsoft.github.io/genaiscript/guides/prompt-as-code.md (ten en cuenta la extensión .md).
Contribuyendo
¡Aceptamos contribuciones! Consulta la página de CONTRIBUYENTES para obtener más información y la configuración para desarrolladores.
Marcas comerciales
Este proyecto puede contener marcas comerciales o logotipos de proyectos, productos o servicios. El uso autorizado de las marcas comerciales o logotipos de Microsoft está sujeto a las Directrices de Marcas Registradas y de Marca de Microsoft y debe cumplirlas. El uso de marcas comerciales o logotipos de Microsoft en versiones modificadas de este proyecto no debe causar confusión ni implicar patrocinio por parte de Microsoft. El uso de marcas comerciales o logotipos de terceros está sujeto a las políticas de dichos terceros.
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
