[ Inglés | 简体中文]
promptc-go es una implementación de GO de promptc . Utiliza la especificación promptc para generar, analizar, construir, compilar y ejecutar archivos promptc y tiene como objetivo generalizar la forma de hacer ingeniería rápida.
promptc es una especificación similar OpenAPI para ingeniería rápida.
El archivo de solicitud anterior está adaptado de Zinccat/ZKIT, con licencia en GPLV3
# As simple as it should be
$ promptc $prompt $input
Función de chat
$ promptc chatMás información sobre ARDCC-CLI, consulte Docs/CLI.MD.
Archivo de inmediato estructurado:
// [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 % }
'' '
]Archivo de inmediato de una sola línea Experimental :
You Entered : { x }Nota
El archivo de inmediato de una sola línea actualmente es una característica experimental.
No se recomienda usarlo en el entorno de producción.
Puede escribir el archivo de solicitud de una sola línea sin estructurado.
promptc-go actual admite string , int , tipos 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 : cadena{ role : 'user' }
xx { x } {{ x }} { %
if ( x > 12 ) {
result = "good" ;
} else {
result = "bad" ;
}
% } Cualquier cosa en {} será variable, por ejemplo, {x} en un ejemplo anterior
Cualquier cosa en {%%} será JS scripts
Si desea mostrar { o } , use {{ o }} en su lugar
La primera línea de aviso es especial, proporciona información adicional para este aviso.
es decir, información de rol para chatgpt. p.ej
role: 'user'
Show me more about {x}
Si desea proporcionar información adicional vacía, use {} ya que su primera línea es extremadamente recomendada. Aunque no es necesario, porque una vez que HJSON PSE falló, el promptc prependá la primera línea a su aviso, pero puede causar mucho comportamiento indefinido.
Reservamos {%Q%} para ''' que no se puede hacer fácil en la sintaxis de texto multilínea de HJSON.
p.ej
This is reserved { % Q % } {{ % Q % }}Será compilado para
This is reserved ''' { % Q % }Nota
Usar JavaScript en el aviso es una característica experimental.
promptc-gousa a Otto como su tiempo de ejecución de JavaScript
Advertencia
Usar JavaScript en el aviso podría hacer que se vista vulnerable y causar una posible violación de seguridad.
promptc-gono asumirá ninguna responsabilidad al respecto.
promptc admite la incrustación de scripts de JavaScript en Strem con {%%} sintaxis. Y admite 2 modos:
En el modo estándar, después de ejecutar el script JS, el indicc obtendrá el resultado de la variable result .
You Entered : { x }
Prompt Compiled : { %
if ( x == "1" ) {
result = "Hello" ;
} else {
result = "Word!" ;
}
% } Si ingrese x = 1 , el resultado será:
You Entered: 1
Prompt Compiled: Hello
En modo fácil, el ARDCC obtendrá el resultado del valor devuelto del script JS. Y agregará una E al comienzo del aviso. ( {%E /*script here*/ %} )
You Entered : { x }
Prompt Compiled : { % E
if ( x == "1" ) {
return "Hello" ;
} else {
return "Word!" ;
}
% } Si ingrese x = 1 , el resultado será:
You Entered: 1
Prompt Compiled: Hello
En modo fácil, el script se envolverá en una función para habilitar la declaración return .
por ejemplo, el script real que se ejecutará en un ejemplo anterior:
result = ( function ( ) {
if ( x == "1" ) {
return "Hello"
} else {
return "Word!" ;
}
} ( )La información meta actuaría como variables definidas especiales de camino salvaje (pero no se tratará como variable).
Información meta compatible actual:
project: test
author: KevinZonda
license: MIT
version: 0.0 .1 Puede definir el mismo nombre en la sección vars si lo desea.
// 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