[ الإنجليزية | 简体中文]
promptc-go هو تنفيذ Go لـ promptc . يستخدم مواصفات promptc لإنشاء ملفات promptc وتجميعها وتجميعها وتشغيلها ويهدف إلى تعميم طريقة القيام بالهندسة السريعة.
promptc هي مواصفات OpenAPI مثل الهندسة المطالبة.
يتم تكييف الملف الموجه أعلاه من Zinccat/Zkit ، مرخصة بموجب GPLV3
# As simple as it should be
$ promptc $prompt $input
وظيفة الدردشة
$ promptc chatمزيد من المعلومات حول kerdc-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 }ملحوظة
يعد ملف موجه الخط الواحد حاليًا ميزة تجريبية.
لا ينصح باستخدامه في بيئة الإنتاج.
يمكنك كتابة ملف موجه الخط الواحد بدون تنظيم.
يدعم Current 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
إذا كنت تريد إظهار { أو } ، فاستخدم {{ أو }} بدلاً من ذلك
السطر الأول من الموجه خاص ، فهو يوفر بعض المعلومات الإضافية لهذه الموجه.
IE معلومات دور chatgpt. على سبيل المثال
role: 'user'
Show me more about {x}
إذا كنت ترغب في تقديم معلومات إضافية فارغة ، فاستخدم {} لأن الخط الأول يوصى به للغاية. على الرغم من أن هذا غير مطلوب ، لأنه بمجرد فشل Hjson Parse ، ستقوم promptc بتقديم خط أول إلى موجه ، ولكنه قد يسبب الكثير من السلوك غير المحدد.
لقد قمنا بتخصيص {%Q%} لـ ''' الذي لا يمكن القيام به في بناء جملة النص متعدد الألين من HJSON.
على سبيل المثال
This is reserved { % Q % } {{ % Q % }}سيتم تجميعها ل
This is reserved ''' { % Q % }ملحوظة
استخدام JavaScript في المطالبة هي ميزة تجريبية.
يستخدمpromptc-goOtto كوقت تشغيل JavaScript
تحذير
استخدام JavaScript في المطالبة يمكن أن يجعل المطالبة عرضة للخطر وتسبب خرق الأمن المحتمل.
لن تتحملpromptc-goأي مسؤولية حيال ذلك.
تدعم promptc تضمين البرامج النصية JavaScript في مطالبة مع بناء جملة {%%} . وهو يدعم وضعين:
في الوضع القياسي ، بعد تشغيل البرنامج النصي JS ، ستحصل PROFRC على النتيجة من متغير result .
You Entered : { x }
Prompt Compiled : { %
if ( x == "1" ) {
result = "Hello" ;
} else {
result = "Word!" ;
}
% } إذا أدخل x = 1 ، فستكون النتيجة:
You Entered: 1
Prompt Compiled: Hello
في الوضع السهل ، ستحصل PROMRC على النتيجة من القيمة التي تم إرجاعها من البرنامج النصي 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