93 lines
2.4 KiB
Markdown
93 lines
2.4 KiB
Markdown
# LLM Server - Deployment Automatizado
|
|
|
|
Sistema completo de IA agentica con LLMs locales (Phi + DeepSeek 33B) en Ubuntu 22.04.
|
|
|
|
## Requisitos Mínimos
|
|
|
|
- **CPU**: Intel i3-10105 (4 cores)
|
|
- **RAM**: 16GB DDR4
|
|
- **GPU**: NVIDIA RTX 3090 (24GB VRAM)
|
|
- **PSU**: 850W+
|
|
- **SO**: Ubuntu 22.04 LTS
|
|
|
|
## Solución para tool calling con rutas de Windows
|
|
|
|
Cuando el LLM intenta ejecutar una herramienta, la respuesta no debe mostrarse como texto plano. Debe ser manejada como un `tool_call` o `function_call` y ejecutada localmente.
|
|
|
|
### Regla importante
|
|
|
|
Añade esta instrucción al `System Prompt`:
|
|
|
|
```text
|
|
When outputting Windows file paths in JSON arguments, you must strictly escape all backslashes (for example: C:\\Users\\name\\file.txt).
|
|
```
|
|
|
|
### Patrón recomendado
|
|
|
|
1. El LLM devuelve una llamada como JSON.
|
|
2. Tu cliente detecta `tool_calls` o `function_call`.
|
|
3. Tu código ejecuta la función localmente.
|
|
4. Se envía de vuelta al LLM el resultado con rol `tool` o `function`.
|
|
|
|
### Ejemplo de implementación
|
|
|
|
El proyecto incluye un ejemplo funcional en `tool_call_demo.py` que:
|
|
|
|
- simula un `tool_call` del modelo,
|
|
- valida que la ruta JSON esté escapada correctamente,
|
|
- lee el archivo físico en disco,
|
|
- devuelve el contenido al modelo para continuar.
|
|
|
|
```bash
|
|
python tool_call_demo.py
|
|
```
|
|
|
|
### Ejemplo de payload válido
|
|
|
|
```json
|
|
{
|
|
"tool_calls": [
|
|
{
|
|
"id": "call_read_001",
|
|
"type": "function",
|
|
"function": {
|
|
"name": "read_file",
|
|
"arguments": "{\"path\": \"c:\\\\Workspace\\\\llm-server-setup\\\\README.md\"}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
> Si el JSON tiene barras invertidas sin escape, el parser falla y el modelo parece "no responder". Usar rutas con `\\` en JSON es obligatorio en Windows.
|
|
|
|
## Instalación Rápida
|
|
|
|
```bash
|
|
# 1. Clonar repositorio
|
|
git clone https://github.com/tuuser/llm-server-setup.git
|
|
cd llm-server-setup
|
|
|
|
# 2. Instalar OpenClaw sin iniciar el asistente
|
|
bash install_openclaw.sh
|
|
|
|
# 3. Ejecutar el asistente inicial cuando quieras
|
|
openclaw onboard --install-daemon
|
|
|
|
# También puedes instalar y abrir el asistente en el mismo paso
|
|
bash install_openclaw.sh --onboard
|
|
```
|
|
|
|
El script está pensado para Ubuntu 22.04/24.04 y WSL2. Usa el instalador oficial
|
|
de OpenClaw, que instala Node.js si es necesario. Revisa las instrucciones
|
|
oficiales si vas a usar otra distribución o un entorno restringido.
|
|
|
|
## Instalación del servidor LLM
|
|
|
|
```bash
|
|
nano setup_llm_server.sh
|
|
|
|
chmod +x setup_llm_server.sh
|
|
sudo ./setup_llm_server.sh
|
|
```
|