Chatbot de Discourse 🤖

@merefield ¡Gracias!

¿Cómo diablos depuraste eso tan rápido?

Eliminaré Zendesk… simple :slight_smile:

1 me gusta

Experiencia amarga :sweat_smile:

3 Me gusta

Hola a todos:

Ya he creado una cuenta en OpenAI. ¿Debo crear un “Asistente”? Solo me pregunto si hay algún paso a seguir para integrar la IA con el plugin.

Saludos,

No, solo necesitas un token. Es posible que necesites acreditar tu cuenta con Open AI para acceder a los modelos más avanzados y a límites de tasa más altos.

Todo lo relacionado con la API lo maneja el plugin.

(Por cierto, dato curioso: Chatbot explícitamente no soporta la API de Asistentes porque implementa su propio sistema de conversación y “pensamiento interno” utilizando únicamente la API de Completions de Chat y la API de Embeddings. Esto es genial porque la API de Asistentes tiene reputación de ser pródiga con los tokens y costarte mucho dinero. ¡Chatbot está diseñado para ser frugal!)

Guau, hace mucho más de lo que me imaginaba.

¿Podrías explicar qué es un token en el mundo de ChatGPT? Estoy pagando por ChatGPT premium en este momento, son 20 USD/mes. Lo que pretendía era permitir que nuestros usuarios de Discourse accedieran a la IA que he estado entrenando, en chatgpt.com.

¡Espero que esto tenga sentido y el caso de uso esté claro!

Es como el dinero. Puedes pensar en los tokens como palabras o partes de palabras. Cuando preguntas algo, vale una cantidad X de tokens. Cuando OpenAI procesa tu pregunta, usa más tokens. Y por último, cuando se crea tu respuesta, eso cuesta una cantidad de tokens.

Dependiendo del modelo utilizado y de la conversación, tienes que pagar por ese uso de tokens, a veces más y a veces menos.

1 me gusta

La capacidad de usar o1 ha cambiado bastante mi uso de la IA (y gracias… no a Dios, sino a las habilidades de codificación de Robert, puedo limitar su uso solo para mí). Pero la serie o1 no usa un prompt del sistema, así que tengo que añadir esa guía, como cómo mostrar matemáticas, etc., en mi prompt.

Sería más fácil si tuviéramos un texto estándar para añadir automáticamente después del prompt real, es decir, un post. Discourse tiene, más o menos, esa capacidad, pero o no puedo usarla o la estoy intentando usar mal. Debería aparecer en cada categoría y PM cuando se mencione el Chatbot o sea parte de un PM. Y solo cuando se use o1 u o1-mini :woozy_face:

La serie o1 aún no está lista, por lo que puede cambiar en algún momento cómo puede usar herramientas, etc. Así que, en ese sentido, no estoy pidiendo una nueva función, sino quizás discutiendo opciones. Y la serie o1 nunca será una solución masiva, es demasiado especializada (y cara), por lo que la demanda donde un usuario simplemente debe recordar añadir esas reglas adicionales puede estar justificada.

Fuera de tema, pero los modelos GPT aprendieron matemáticas cuando se publicó o1.

1 me gusta

Sí, no podemos entrar demasiado en la personalización para compensar las inconsistencias de Open AI.

Sospecho firmemente que las herramientas e incluso las funciones de prompt del sistema vendrán cuando o1 salga de la vista previa.

Sin embargo, no estoy convencido de que Chatbot sea el lugar para implementar un sistema de “fragmentos”, aunque recuerdo que uno de los miembros del equipo lo creó, déjame encontrarlo y actualizar la publicación…

Aquí tienes:

4 Me gusta

Gracias @Jagster por la información tan clara. Creo que me refería a algo diferente, ¿quizás? Estoy intentando integrar este plugin con OpenAI usando esto,

. Solo estoy intentando obtener información básica sobre cómo conectar las cosas.

2 Me gusta

Esa es solo una clave de API que generarás para obtener acceso. Nada más, tu contraseña, por así decirlo.

3 Me gusta

Ahora entiendo la confusión.

Sí, hay un token de API (o clave, que necesitas obtener de OpenAI) y hay tokens de texto que representan partes de palabras. Estos últimos son procesados por el LLM. El primero es para que la API te autentifique.

Aquí tienes una guía bastante buena sobre la terminología de The Verge:

5 Me gusta

Estoy ejecutando Llama localmente y estoy muy cerca de conseguir que esto funcione en una instancia local de Discourse. El chatbot está chateando :sunglasses: pero tengo problemas para obtener la incrustación. Tengo mi usuario de referencia en el Nivel de Confianza 1. La tarea rake rake chatbot:refresh_embeddings[1] está fallando con un problema de autenticación.

Faraday::UnauthorizedError: el servidor respondió con estado 401 (Faraday::UnauthorizedError)

Dentro del campo del token de OpenAI del chatbot, pegué la URL que Llama me dio.

¿Tienes alguna sugerencia sobre cómo debería autenticarme correctamente?

4 Me gusta

¡Genial que lo hayas intentado!

Me alegra que esté chateando :smile:
No sé si es posible usar el chatbot con incrustaciones localmente.
Aceptaría un buen PR para agregar soporte.
Encontré esto:

Así que podría ser posible con el modelo correcto y el código y la configuración adicionales relevantes en el chatbot. Probablemente necesitarías una configuración de modelo de incrustación personalizada que aún no existe.
Sin embargo, ya existe esto:
chatbot open ai embeddings model custom url
que se implementó principalmente para ayudar a admitir Azure, pero se puede reutilizar de manera similar a cómo las Finalizaciones de Chat pueden apuntar al servicio local de ollama.
Aprecio que esto actualmente limite la utilidad del bot localmente.

Este es el token enviado al endpoint. Es simplemente un campo de texto. Dudo mucho que una URL aquí funcione. Hay configuraciones de URL de endpoint de finalizaciones de chat personalizadas más abajo:
por ejemplo, chatbot open ai model custom url high trust
Si creas una bifurcación y realizas adiciones relevantes que estén en línea con lo que ya existe, aprovecha lo que ya está disponible, pero agrega lo mínimo necesario para lograr el soporte de incrustaciones locales con ollama, manteniendo el comportamiento existente con Open AI y Azure intacto, definitivamente revisaré un PR con vistas a fusionarlo.

2 Me gusta

Próximamente
Próximamente se añadirán más funciones para admitir flujos de trabajo que impliquen embeddings:

Compatibilidad con la API de OpenAI: compatibilidad con el endpoint /v1/embeddings compatible con OpenAI

Dado que próximamente suele ser muy pronto en este dominio de rápido movimiento, ¿quizás valga la pena esperar para resolver mi caso de uso?

Nuestra instancia es una fuente de información que se remonta a 20 años, pero la filtración también es una gran preocupación, de ahí el deseo de realizar pruebas locales.

1 me gusta

Creo que encontré un PR de Ollama que parece solucionar la compatibilidad del punto final de la API. Necesito entenderlo mejor, pero ¿voy por buen camino?

1 me gusta

actualmente no hay una configuración para el modelo de embeddings personalizado, así que eso es un impedimento.

al ejecutar localmente, podrías intentar codificar el modelo en el que descargaste para ollama.

pensando más en esto, el otro problema que enfrentarás es que la definición de la tabla de embeddings tiene dimensiones establecidas al estándar del modelo pequeño de OpenAI, que es ENORME… quizás puedas pensar en cómo superar eso…

1 me gusta

Chatbot 1.2. presenta la recopilación de Campos de Usuario impulsada por IA como una característica experimental.

Si un Usuario tiene Campos de Usuario Opcionales que actualmente están en blanco, habilitar esta configuración hará que el bot comience a preguntar al usuario por la información. Progresará a través de los Campos de Usuario pendientes hasta que se completen y luego volverá al comportamiento normal.

image

(disculpen la lentitud de la respuesta - esto fue grabado en desarrollo)

NB Esta función solo admite:

  • Texto
  • Menús desplegables
  • Confirmaciones

La selección múltiple aún no es compatible.

Los campos deben ser opcionales

El orden de los Campos de Usuario determina la prioridad.

6 Me gusta

Se ha lanzado Chatbot 1.3 :tada:

  • CARACTERÍSTICA: añadir opción para gestionar cuotas por token
    • la nueva configuración chatbot_quota_basis te permite optar por ella, de lo contrario, seguirá siendo por número de consultas
    • la única diferencia por defecto es que la cuota se cuenta hacia abajo desde la cuota máxima inicial (que todavía se basa en la misma configuración de nivel de confianza).
  • CARACTERÍSTICA: incluir el coste de las llamadas a la API como DALL-E en el consumo del usuario
    • solo base de tokens
    • varias configuraciones nuevas para ajustar e influir en el coste de tokens de las funciones de la API
  • CARACTERÍSTICA: añadir función para permitir al usuario comprobar su cuota restante

Chatbot siempre ha incluido la capacidad de aplicar una cuota de uso.

¡Hoy esto se vuelve más sofisticado!

Chatbot ahora puede rastrear y aplicar una cuota al uso por token.

Puedes calcular el coste de las llamadas a las API para disuadir su uso excesivo, por lo que puedes preocuparte menos por dar acceso a la generación de imágenes, por ejemplo.

El seguimiento de tokens es opcional. Si cambias al seguimiento de tokens, asegúrate de aumentar la cuota de cada nivel de confianza, ya que los valores deberán ser unos cuantos órdenes de magnitud mayores. Experimenta.

Sin embargo, el seguimiento por consulta ha cambiado ligeramente. Ahora se reiniciará a tu número máximo de consultas permitidas y contará hacia abajo hasta cero.

Podrías considerar ejecutar el trabajo de reinicio de cuota global una vez como algo puntual para asegurarte de que todos comiencen con una cuota completa. ¡Esto es solo una vez!

En sidekiq en /sidekiq/scheduler:

Pulsa el botón de activación.

En cualquier caso, los usuarios ahora pueden preguntar cuánta cuota les queda:

NB: problema conocido: si esta pregunta se hace por primera vez antes de que se ejecute el trabajo de reinicio, la respuesta podría ser un poco extraña. Independientemente de si el trabajo de reinicio se ejecuta, la segunda vez que se haga esta pregunta debería funcionar bien.

4 Me gusta

Hola Robert:

Agradezco todo el trabajo que has invertido en el bot, sin embargo, estoy recibiendo el siguiente error en los registros al intentar invocarlo en el chat.

image

¿Alguna idea sin tener que desinstalar/reinstalar?

1 me gusta