Quiero construir una app CoCo mínima
Para un desarrollador Python que construye una app Streamlit · **10 min · un entorno Python funcional**
Terminas con una app Streamlit de una sola página que incrusta un panel de CoCo y una barra de entrada, usando el patrón de integración preferido.
Antes de empezar#
streamlit-coco[sdk]instalado (ver Enablement- Una conexión de Snowflake configurada y accesible —
check_environment().readyya debería serTrue; ver Primeros pasos. - No se requiere ninguna app CoCo previa; este es el punto de partida para
el resto de páginas de tareas de esta guía.
Pasos#
- Crea
streamlit_app.pyy construye unCocoOptionscon al menos unnombre de conexión:
import streamlit as st import streamlit_coco as st_coco st.set_page_config(page_title="Minimal CoCo app") options = st_coco.CocoOptions( connection="my_connection", cwd=".", ) - Llama a
check_environment()a través de la puerta de aterrizaje, ydetén el script si no está listo:
if not st_coco.render_start_gate(options): st.stop()render_start_gate()renderiza la propia pantalla de aterrizaje (estado SDK/CLI/Snowflake, una acción Start) y devuelveFalsemientras el entorno o el usuario no lo hayan confirmado — tu app debe llamar ast.stop()en ese caso,render_start_gate()no detiene el script por ti. - Obtén o crea la sesión para esta página, y monta el panel y su barra
de entrada:
session = st_coco.get_or_create_session(options) st_coco.panel(session) st_coco.chat_input_bar(session)get_or_create_session()almacena la sesión enst.session_state["coco"]por defecto (sobrescribible conkey=) y la reutiliza a través de los reruns. - Ejecuta la app:
streamlit run streamlit_app.py - Escribe un prompt en la barra de entrada al pie de la página y confirma
que la transcripción transmite una respuesta encima de ella.
Resultado#
Una pestaña del navegador mostrando el panel de CoCo: una cabecera de estado, una transcripción vacía, y la barra de entrada del chat. Tras un prompt, la transcripción se llena con la respuesta en streaming del agente y cualquier tarjeta de herramienta que haya usado. Esta app mínima no escribe ningún archivo por sí sola — la salida de archivos empieza cuando añades subidas (Quiero añadir subida de archivos) o el agente escribe en cwd.
Variaciones#
- Usa
copilot_rail()en lugar depanel()+chat_input_bar()paraincrustar CoCo como un rail lateral derecho dentro de una app más grande y multipágina en lugar de un chat de una sola página — ver los ejemplos Backlog Desk y BI → Semantic en Referencia de apps de ejemplo.
- Define
panel(session, output_mode="field")para renderizar solo laúltima salida del asistente en lugar de la transcripción completa.
- Define
warm_up=Trueenrender_start_gate()(el valor por defecto)para iniciar la sesión en cuanto la puerta se supera, en lugar de esperar al primer prompt.