psylink
1.0.0
Un backend y un protocolo mínimo para distribuir las indicaciones locales de LLM. Construido con Llama CPP para Python y Redis.
┌────────┐ ┌────────────────┐
│ Client ├──────┐ ┌─────┤ Psylink Worker │
└────────┘ │ ┌──────────────────────────────┐ │ └────────────────┘
└──┤ ├──┘
┌────────┐ │ Redis Message Broker Server │ ┌────────────────┐
│ Client ├─────────┤ ├────────┤ Psylink Worker │
└────────┘ ├──────────────────────────────┤ └────────────────┘
│ │
┌────────┐ │ Prompt Input/ Output Queues │ ┌────────────────┐
│ Client ├─────────┤ ├────────┤ Psylink Worker │
└────────┘ │ Command Input/ Output Queues │ └────────────────┘
┌───┤ ├──┐
┌────────┐ │ └──────────────────────────────┘ │ ┌────────────────┐
│ Client ├─────┘ └─────┤ Psylink Worker │
└────────┘ └────────────────┘
Crear un entorno virtual y ejecutar
pip install -r requirements.txt
Para instalar los paquetes de Python requeridos.
Formato de mensaje de la cola de entrada del cliente:
{
"message_id" : str ,
"client_id" : str ,
"priority" : int ,
"input" : str ,
"timestamp" : int
}Formato de mensaje de la cola de comandos del cliente:
{
"message_id" : str ,
"client_id" : str ,
"worker_id" : str ,
"input" : {
"command" : str ,
"args" : dict | None
},
"timestamp" : int
}Formato de mensaje de la cola de salida del trabajador:
{
"message_id" : str ,
"client_id" : str ,
"worker_id" : str ,
"input" : str ,
"output" : str ,
"timestamp" : int
}Ejemplo config.toml:
[ redis ]
host = " localhost "
port = 6379
password = " supersecretpassword "
db = 0
prompt_input_queue = " psy_prompt_input_queue "
prompt_output_queue = " psy_prompt_output_queue "
command_input_queue = " psy_command_input_queue "
command_output_queue = " psy_command_output_queue "
[ model ]
model_path = " models/codellama-13b-instruct.Q8_0.gguf "
[ llama_params ]
max_tokens = 32
echo = true
temperature = 0.85
[ properties ]
min_priority = 1
max_priority = 5