Files
fn_registry/python/functions/infra/claude_cli_prompt.md
T
egutierrez a03675113a chore: auto-commit (286 archivos)
- .claude/agents/fn-orquestador/SKILL.md
- .claude/commands/fn_claude.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- .claude/rules/ids_naming.md
- CHANGELOG.md
- apps/dag_engine/README.md
- apps/dag_engine/api.go
- apps/dag_engine/dags_migrated/example.yaml
- apps/dag_engine/dags_migrated/example_lineage_tracking.yaml
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:33:22 +02:00

2.3 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
claude_cli_prompt function py infra 1.0.0 impure def claude_cli_prompt(prompt: str, timeout_s: int = 60, model: str | None = None, max_chars_response: int = 200_000, extra_args: list[str] | None = None) -> str Invoca `claude -p` via subprocess y devuelve la respuesta completa como string. Valida presencia del CLI, captura stderr en errores, y trunca respuestas largas.
claude
llm
cli
ai
navegator
subprocess
false error_go_core
shutil
subprocess
name desc
prompt Texto del prompt a enviar a Claude.
name desc
timeout_s Segundos antes de raise TimeoutExpired. Default 60.
name desc
model Modelo a usar (ej. claude-opus-4-5). None usa el default del CLI.
name desc
max_chars_response Trunca stdout a este numero de caracteres. Default 200_000.
name desc
extra_args Lista de argumentos adicionales para el CLI.
Respuesta de Claude como texto plano (stdout del proceso). false
python/functions/infra/claude_cli_prompt.py

Ejemplo

from infra.claude_cli_prompt import claude_cli_prompt

# Pregunta simple
respuesta = claude_cli_prompt("Suma 2+2 y devuelve solo el numero")
print(respuesta)  # "4"

# Con modelo especifico y timeout extendido
respuesta = claude_cli_prompt(
    prompt="Resume este texto en 3 puntos: ...",
    model="claude-opus-4-5",
    timeout_s=120,
)

Cuando usarla

Cuando necesitas invocar Claude desde un script Python sin mantener sesion de chat — un prompt puntual (clasificacion, resumen, extraccion) que se resuelve en una sola llamada. Ideal para pipelines que procesan chunks de AX tree, texto, o cualquier contenido que requiera razonamiento LLM.

Gotchas

  • Requiere claude CLI instalado y autenticado en PATH. Si no esta: FileNotFoundError.
  • Cada llamada lanza un subproceso nuevo — no hay cache ni sesion persistente.
  • El CLI puede tardar varios segundos al cold-start. Usa timeout_s conservador (>=30s).
  • extra_args se pasan literalmente — validar antes de pasar input de usuario.
  • En CI/CD sin display interactivo puede requerir --no-interactive en extra_args.