
สภาพแวดล้อม JavaScript-ish พร้อมเครื่องมือที่สะดวกสำหรับการบริโภคไฟล์การพัฒนาที่รวดเร็วและการสกัดข้อมูลที่มีโครงสร้าง
การประกอบตามโปรแกรมสำหรับ LLM โดยใช้ JavaScript orchestrate LLMS เครื่องมือและข้อมูลในสคริปต์เดียว
พูดกับคุณต้องการสร้างสคริปต์ LLM ที่สร้างบทกวี 'Hello World' คุณสามารถเขียนสคริปต์ต่อไปนี้:
$ `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 หรือใช้บรรทัดคำสั่ง
บิลด์แจ้งเตือนทางโปรแกรมโดยใช้ JavaScript หรือ TypeScript
def ( "FILE" , env . files , { endsWith : ".pdf" } )
$ `Summarize FILE. Today is ${ new Date ( ) } .`แก้ไขแก้ไขเรียกใช้และทดสอบสคริปต์ของคุณในรหัส Visual Studio หรือด้วยบรรทัดคำสั่ง
สคริปต์คือไฟล์! พวกเขาสามารถใช้เวอร์ชันแบ่งปันและแยกได้
// 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.`กำหนดตรวจสอบและซ่อมแซมข้อมูลโดยใช้ schemas
const data = defSchema ( "MY_DATA" , { type : "array" , items : { ... } } )
$ `Extract data from files using ${ data } schema.`จัดการ pdfs, docx, ...
def ( "PDF" , env . files , { endsWith : ".pdf" } )
const { pages } = await parsers . PDF ( env . files [ 0 ] )จัดการข้อมูลตารางจาก 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 refactoring
$ `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" } )ลงทะเบียนฟังก์ชั่น JavaScript เป็นเครื่องมือ (พร้อมทางเลือกสำหรับรุ่นที่ไม่สนับสนุนเครื่องมือ)
defTool (
"weather" ,
"query a weather web api" ,
{ location : "string" } ,
async ( args ) =>
await fetch ( `https://weather.api.api/?location= ${ args . location } ` )
)ลงทะเบียนฟังก์ชั่น 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" } )
$ `Do a statistical analysis of the last commits`การค้นหาเวกเตอร์
const { files } = await retrieval . vectorSearch ( "cats" , "**/*.md" )เรียกใช้โมเดลผ่านรุ่น GitHub หรือ GitHub Copilot
script ( { ... , model : "github:gpt-4o" } )เรียกใช้สคริปต์ของคุณด้วยโมเดลโอเพ่นซอร์สเช่น Phi-3 โดยใช้ Ollama, Localai
script ( { ... , model : "ollama:phi3" } )ให้รหัส LLM เรียกใช้ในสภาพแวดล้อมการดำเนินการแบบ sandbox
script ( { tools : [ "python_code_interpreter" ] } )เรียกใช้รหัสในคอนเทนเนอร์ Docker
const c = await host . container ( { image : "python:alpine" } )
const res = await c . exec ( "python --version" )เรียกใช้ 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.` เรียกใช้ไฟล์พรอมต์ของคุณเช่นกัน!
---
name : poem
---
Write me a poemใช้งาน CLI โดยอัตโนมัติรวมรายงานในไปป์ไลน์ CI/CD ของคุณ
npx genaiscript 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 และ Azure DevOps Pipelines
npx genaiscript ... --pull-request-reviewsสร้างพรอมต์ที่เชื่อถือได้โดยใช้การทดสอบและ EVALS ที่ขับเคลื่อนโดย 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/.well-knowl/llms.txt สำหรับแผนที่เอกสารหรือเพิ่มคำต่อท้าย .md ลงใน URL เอกสารใด ๆ เพื่อรับเนื้อหาการทำเครื่องหมายดิบ
ตัวอย่างเช่น https://microsoft.github.io/genaiscript/guides/prompt-as-code.md (หมายเหตุส่วนขยาย. md)
เรายอมรับการมีส่วนร่วม! ชำระเงินหน้าสำหรับรายละเอียดและการตั้งค่านักพัฒนา
โครงการนี้อาจมีเครื่องหมายการค้าหรือโลโก้สำหรับโครงการผลิตภัณฑ์หรือบริการ การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ที่ได้รับอนุญาตขึ้นอยู่กับและต้องปฏิบัติตามแนวทางเครื่องหมายการค้าและแบรนด์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของ Microsoft ในรุ่นที่แก้ไขของโครงการนี้จะต้องไม่ทำให้เกิดความสับสนหรือบอกเป็นสปอนเซอร์ของ Microsoft การใช้เครื่องหมายการค้าหรือโลโก้ของบุคคลที่สามจะอยู่ภายใต้นโยบายของบุคคลที่สามเหล่านั้น