/** * Sentiment analysis en el AI Node — las etiquetas, los puertos y el orden. * * ## Por qué vive aquí y no en cada repo * * Las tres etiquetas son a la vez TRES cosas: el `enum` del esquema que se le * da al modelo, el nombre de los puertos por los que el nodo despacha, y las * pastillas de la tarjeta del lienzo. Si el api, hw-nodes y el dashboard * escriben su propia lista, la primera que alguien reordene o rebautice deja * una arista apuntando a un puerto que ya no existe — y eso no lo dice ningún * compilador. Es el mismo motivo por el que las operaciones de cada nodo * viven en este paquete. * * ## Por qué `unclear` no es una etiqueta más * * El modelo elige entre las TRES de `SENTIMENT_LABELS`; `unclear` no se le * ofrece nunca. Es lo que hace el NODO cuando la confianza queda por debajo * del umbral (`sentimentThreshold`) o cuando la respuesta no se puede leer. * Ofrecérsela al modelo sería darle una salida cómoda para no mojarse, que es * justo lo contrario de lo que se busca al poner un umbral. * * A diferencia del `other` del clasificador, `unclear` SÍ tiene puerto: el * caso de uso es mandar a revisión humana lo que el modelo no ve claro, y sin * puerto eso obligaba a adivinar por qué un item no salió por ninguna rama. */ /** Lo que el modelo puede contestar, en orden de peor a mejor. */ export declare const SENTIMENT_LABELS: readonly ["negative", "neutral", "positive"]; export type SentimentLabel = (typeof SENTIMENT_LABELS)[number]; /** La salida del nodo cuando no hay etiqueta fiable. No se le ofrece al modelo. */ export declare const SENTIMENT_UNCLEAR = "unclear"; /** Los cuatro puertos del modo sentiment, en el orden en que se pintan. */ export declare const SENTIMENT_PORTS: readonly ["negative", "neutral", "positive", "unclear"]; export type SentimentPort = (typeof SENTIMENT_PORTS)[number]; /** El nombre que ve la persona, por puerto. */ export declare const SENTIMENT_PORT_LABEL: Record; /** Qué significa cada puerto, para el modal de conexión y la doc. */ export declare const SENTIMENT_PORT_SUMMARY: Record; /** ¿Es una de las tres que el modelo puede contestar? */ export declare function esEtiquetaDeSentimiento(v: unknown): v is SentimentLabel;