[ ภาษาอังกฤษ | 简体中文]
promptc-go เป็นการใช้งาน GO ของ promptc มันใช้ข้อมูลจำเพาะ promptc เพื่อสร้างวิเคราะห์สร้างคอมไพล์และเรียกใช้ไฟล์ promptc และมีจุดมุ่งหมายเพื่อสรุปวิธีการทำวิศวกรรมที่รวดเร็ว
promptc เป็นข้อกำหนดที่เหมือน OpenAPI สำหรับวิศวกรรมที่รวดเร็ว
ไฟล์พรอมต์ข้างต้นถูกดัดแปลงจาก zinccat/zkit ที่ได้รับอนุญาตภายใต้ GPLV3
# As simple as it should be
$ promptc $prompt $input
ฟังก์ชั่นการแชท
$ promptc chatข้อมูลเพิ่มเติมเกี่ยวกับพรอมต์ CLI โปรดดูเอกสาร/CLI.MD
ไฟล์พรอมต์ที่มีโครงสร้าง:
// [Optional] meta info
project: test
author: KevinZonda
license: MIT
version: 0.0 .1
// [Optional] define configs
conf: {
provider: openai
model: gpt - 3.5 - turbo
temperature: 0.5
stop: [ 'Hello' , '4.0' ]
}
// [Optional] define variable constraint
vars: {
x: int
// var x with int type
y: int { min : 0 , max : 10 }
z: int { min : 0 , max : 10 , default : '5' }
}
// [Optional] Birmingham-style define var
a: int { min : 0 , max : 10 }
// [Required] define prompts
prompts: [
// role: 'user' is meta info for ChatGPT
// to make it empty, use {}
'' 'role: ' user '
You Entered : { x }
Prompt Compiled : { %
if ( x == "1" ) {
result = "Hello" ;
} else {
result = "Word!" ;
}
% }
{ % Q % }
'' '
]การทดลอง ไฟล์พรอมต์บรรทัดเดียว:
You Entered : { x }บันทึก
ปัจจุบันไฟล์พรอมต์บรรทัดเดียวเป็นคุณสมบัติการทดลอง
ไม่แนะนำให้ใช้ในสภาพแวดล้อมการผลิต
คุณสามารถเขียนไฟล์พรอมต์ บรรทัดเดียวได้ โดยไม่ต้องมีโครงสร้าง
ปัจจุบัน promptc-go รองรับ string , int , ประเภท float
// declare a variable
myName : string { minLen : 3 , maxLen : 10 , default : "John" }
// a var named `myName` of type `string`
// with default value "John"
// min length 3, max length 10
myAge : int { min : 18 , max : 100 , default : '18' }
// a var named `myAge` of type `int`
// with default value 18
// min value 18, max value 100
thisPrice : float { min : 0.01 , default : '0.01' }
// a var named `thisPrice` of type `float`
// with default value 0.01
// min value 0.01, and unlimited max value stringminLen : intmaxLen : intintmin : int64max : int64floatmin : Float64max : Float64default : สตริง{ role : 'user' }
xx { x } {{ x }} { %
if ( x > 12 ) {
result = "good" ;
} else {
result = "bad" ;
}
% } สิ่งใดใน {} จะเป็นตัวแปรเช่น {x} ในตัวอย่างก่อนหน้า
อะไรก็ได้ใน {%%} จะเป็นสคริปต์ JS
หากคุณต้องการแสดง { หรือ } ให้ใช้ {{ หรือ }} แทน
บรรทัดแรกของพรอมต์เป็นพิเศษมันให้ข้อมูลเพิ่มเติมสำหรับพรอมต์นี้
เช่นข้อมูลบทบาทสำหรับ chatgpt เช่น
role: 'user'
Show me more about {x}
หากคุณต้องการให้ข้อมูลเพิ่มเติมที่ว่างเปล่าให้ใช้ {} เนื่องจากบรรทัดแรกของคุณแนะนำอย่างยิ่ง แม้ว่ามันจะไม่จำเป็นเพราะเมื่อ HJSON แยกวิเคราะห์ล้มเหลว promptc จะเตรียมบรรทัดแรกให้กับพรอมต์ของคุณ แต่อาจทำให้เกิดพฤติกรรมที่ไม่ได้กำหนดไว้มากมาย
เราสงวนไว้ {%Q%} สำหรับ ''' ซึ่งไม่สามารถทำได้ง่ายในไวยากรณ์ข้อความหลายข้อความของ HJSON
เช่น
This is reserved { % Q % } {{ % Q % }}จะถูกรวบรวมเป็น
This is reserved ''' { % Q % }บันทึก
ใช้ JavaScript ในพรอมต์เป็นคุณสมบัติการทดลอง
promptc-goใช้ Otto เป็นรันไทม์ JavaScript
คำเตือน
ใช้ JavaScript ตามพรอมต์อาจทำให้เกิดความเสี่ยงและทำให้เกิดการละเมิดความปลอดภัยที่อาจเกิดขึ้น
promptc-goจะ ไม่ รับผิดชอบใด ๆ เกี่ยวกับเรื่องนี้
promptc รองรับการฝังสคริปต์ JavaScript ในพรอมต์ด้วยไวยากรณ์ {%%} และรองรับ 2 โหมด:
ในโหมดมาตรฐานหลังจากเรียกใช้สคริปต์ JS พรอมต์จะได้รับผลลัพธ์จากตัวแปร result
You Entered : { x }
Prompt Compiled : { %
if ( x == "1" ) {
result = "Hello" ;
} else {
result = "Word!" ;
}
% } หากป้อน x = 1 ผลลัพธ์จะเป็น:
You Entered: 1
Prompt Compiled: Hello
ในโหมดง่ายพรอมต์จะได้รับผลลัพธ์จากค่าที่ส่งคืนของสคริปต์ JS และมันจะเพิ่ม E ที่จุดเริ่มต้นของพรอมต์ ( {%E /*script here*/ %} )
You Entered : { x }
Prompt Compiled : { % E
if ( x == "1" ) {
return "Hello" ;
} else {
return "Word!" ;
}
% } หากป้อน x = 1 ผลลัพธ์จะเป็น:
You Entered: 1
Prompt Compiled: Hello
ในโหมดง่ายสคริปต์จะถูกห่อหุ้มด้วยฟังก์ชั่นเพื่อเปิดใช้งานคำสั่ง return
เช่นสคริปต์จริงที่จะทำงานในตัวอย่างก่อนหน้า:
result = ( function ( ) {
if ( x == "1" ) {
return "Hello"
} else {
return "Word!" ;
}
} ( )ข้อมูลเมตาจะทำหน้าที่เป็น ตัวแปรที่กำหนดไว้เป็น พิเศษ (แต่จะไม่ถือว่าเป็นตัวแปร)
ข้อมูลเมตาที่รองรับปัจจุบัน:
project: test
author: KevinZonda
license: MIT
version: 0.0 .1 คุณสามารถกำหนดชื่อเดียวกันในส่วน vars หากคุณต้องการ
// prompt1.promptc
project: test
author: KevinZonda
license: MIT
version: 0.0 .1
vars: {
x : int
}
// VarList:
// - x: string // prompt2.promptc
project: test
author: KevinZonda
license: MIT
version: 0.0 .1
vars: {
x: int
project: string
license: string { minLen : 12 }
}
// VarList:
// - x: string
// - project: string
// - license: string // prompt3.promptc
project: test
author: KevinZonda
license: MIT
version: 0.0 .1
prompts: [
'' '{}
{ %
console . log ( project ) ; // will print nothing
% }
'' '
]
// VarList:
// - project: string