Por oculto me refiero a una categoría que no es visible para la mayoría de los usuarios. No tiene por qué estar oculta, pero tener una categoría solo con los PDF para que sirvan como conocimiento accesible por RAG podría desordenarse por otros usuarios.
Utilicé los PDF como ejemplo, ya que muchos manuales probablemente ya existen en formato PDF y se anotaron para ocultarlos en una categoría, ya que es más fácil de comprender. Para otras posibilidades que no necesitarían una categoría oculta, Langchain Retrieval es un buen punto de partida.
No tengo ningún problema con eso, la idea de lo que hay que hacer avanza en la dirección correcta.
Sin embargo, la palabra asistente parece estar perdiendo terreno en ciertos contextos frente al nuevo chico en la ciudad, GPTs. Los GPTs también parecen estar reemplazando a los plugins de ChatGPT, pero no he usado un plugin de ChatGPT en meses, así que realmente no me doy cuenta, solo veo comentarios al respecto en los foros.
¿no se presentaron la API de Asistente y los GPT el mismo día?
¿no es un GPT simplemente un frontend más (fácil de usar) y sin código de un Asistente, que carece de la posibilidad de ser llamado a través de una API?
Tengo que ser sincero. No sabía lo suficiente para responder, así que vi este video.
Con respecto a Asistente, parece que los GPT te dan
Navegación web
Generación de imágenes con DALL*E
Intérprete de código
Estaría de acuerdo con la mayor parte de lo que anotaste.
Además, después de haber aprendido mucho más sobre los GPT viendo el video, diré que es impresionante, aunque todavía no satisfará las necesidades de la mayoría de las personas, pero está progresando. También fue interesante ver parte del JSON que es igual/similar a los plugins de ChatGPT.
Con respecto a este tema, señalaré que muchos en el foro de OpenAI intentan cargar archivos para usarlos con RAG y rápidamente descubren que hay un límite de 10 archivos. También se puede compartir un enlace al GPT, pero el otro usuario también debe ser suscriptor de ChatGPT Plus, por lo que esta es muy probablemente una opción sin salida para muchas empresas comerciales.
La API de OpenAI Assistant está en una fase muy temprana de su desarrollo y se considera en vista previa:
Se informa que es prohibitivamente cara (llena el contexto disponible con cada iteración independientemente de si lo necesita o no, y se paga por ello lo necesites o no).
Aparentemente sufre de un problema de “bucle infinito” donde ocasionalmente se encuentra iterando indefinidamente. Este es un problema sorprendente dada la aparente experiencia de la empresa, ya que es muy sencillo diseñar una mitigación para esto.
Sospecho que necesita más tiempo de desarrollo y debe incorporar los comentarios de los primeros usuarios.
Como una posible simplificación futura para los consumidores de servicios de IA, como Chatbot, lo agradezco.
En cualquier caso, necesitas una interfaz con Discourse.
Chatbot ya proporciona la misma potencia que la API de Assistant sin ninguno de sus problemas y, además, proporciona la interfaz con Discourse. En última instancia, es agnóstico a la iteración de la API y evolucionará con los servicios disponibles, y es muy posible que ofrezca una opción de API de Assistant en el futuro, pero actualmente no hay ningún beneficio en hacerlo, ya que solo creará problemas (incluidos los descritos anteriormente).
20, pero sí, una cantidad muy limitada, que se puede sortear adjuntando todos los archivos que necesites en un solo archivo grande (que tiende a volverse bastante caro rápidamente).
y la gran sorpresa es que no sabes lo caro que es hasta más tarde…
Casi: la API de Assistant tiene la capacidad de incluir conocimiento privado, personalizado y externo a Discourse.
Vea el ejemplo anterior: si tiene archivos PDF que contienen manuales de usuario y se cargan en Discourse, no se procesarán ni indexarán. Necesitaría convertirlos a markdown. Esto no solo es tedioso, sino que contendría automatización y conversiones adicionales.
¿La realidad quizás?
La verdad es que la mayor parte del conocimiento del dominio no está fácilmente disponible en markdown.
De nuevo, toma el ejemplo dado anteriormente. Tienen buenos manuales de usuario en PDF que son creados por una división completamente diferente. Convertir una vez y editar localmente no funcionará.
Me alegra que otros se unan a esto y espero que sea de beneficio para Ryan.
Quizás @37Rb (Ryan) pueda proporcionar más información.
¿Prevé utilizar manuales para usar con RAG para un bot de IA de Discourse en el sitio de Discourse?
a. ¿Cuál es el formato actual de dichos manuales? ¿Impreso, PDF, sitio web, otro?
b. ¿Con qué frecuencia se actualizará la base de conocimientos con manuales nuevos o versiones de los mismos?
c. ¿Se harán públicos los manuales en el sitio?
¿Qué otra información además del foro de Discourse podría ser valiosa para una IA para responder en el sitio de soporte?
Al crear un bot de IA de Discourse, ¿prevé otras necesidades para el bot? Pregunto esto porque si lee el historial de Discourse al crear el bot de IA, verá que pasó por muchos cambios, no fue el bot perfecto con las primeras creaciones y todavía está experimentando muchos cambios.
¿Puede crear algunos ejemplos de cómo ve el uso del bot o los agentes? Por ejemplo, muestre algunos casos diferentes de un usuario chateando con el bot.
Nota: Uso la palabra “agente” de manera similar a un agente Langchain y no debe confundirse con un asistente de OpenAI.
Se me ocurrió una idea ahora que he visto que se está creando OpenAI GPT en una demostración de YouTube.
Podrías crear un OpenAI GPT, que requiere una suscripción a ChatGPT Plus y probablemente acceso después de estar en una lista de espera, similar a lo que buscas aprender sobre los pros y los contras de dicha tecnología y que se puede aprovechar para crear un bot de Discourse AI. No te sugiero que crees el bot, pero tendrías una mejor comprensión de lo que la IA puede hacer y dónde fallará estrepitosamente.
PDF o HTML (alojado en línea), pero no me importa convertirlos a texto/markdown y mantenerlos como publicaciones de Discourse. Podemos escribir un script para que sea más fácil.
Los manuales de productos no se actualizarán con frecuencia, pero otro contenido de la base de conocimientos sí. Cosas como preguntas frecuentes, problemas frecuentes/tendencias, etc., se actualizarían con más frecuencia. Publicamos tanto como sea posible públicamente, pero algunos tendrían sentido mantenerlos privados, no porque sea información sensible, sino porque podría parecer extraño y confuso como una publicación pública.
Sí, los manuales oficiales de productos suelen ser PDF. Por ejemplo…
Por ahora, probablemente nada. Hay demasiado riesgo al dejar que busque en Internet y obtenga resultados que no son verdaderos para nosotros.
En el futuro, podría ver el valor de darle al bot contexto adicional sobre el propio sistema de seguridad del cliente, pero eso podría no ser posible nunca debido a problemas de privacidad.
Me parece que, dado que todo se basa en RAG, lo más importante es darnos un control detallado sobre cómo el bot busca en el foro y genera indicaciones para la IA. Por lo que he leído, parece que el Discourse Chatbot de merefield hace eso mejor hoy en día. Espero probar esa teoría esta semana.
Para nosotros, siempre se trata de brindar soporte al usuario/cliente respondiendo sus preguntas o resolviendo sus problemas. Por ejemplo:
Ayudándoles a decidir qué comprar para asegurar su hogar específico, a veces teniendo en cuenta el equipo de seguridad del hogar que ya tienen.
Ayudándoles a instalar y usar su sistema.
Ayudándoles a solucionar problemas cuando tienen inconvenientes.
Respondiendo preguntas de curiosidad que tengan sobre cómo funcionan las cosas, qué podría estar disponible en el futuro, etc.
Los mejores ejemplos son los reales que se publican todos los días y que nuestro equipo de soporte (o a veces los miembros de la comunidad) responde.
Sé que este es solo un enlace sencillo para que lo compartas, pero para muchos otros que te siguen los pasos de crear un sitio de soporte para que un bot de IA responda y permita a otros ver el intercambio de ideas en un foro público, esto es de vanguardia. Sé que las empresas lo hacen en privado, pero tú lo estás haciendo públicamente.
También me alegró ver los diagramas, ya que reafirmaron que lo que estaba pensando era correcto.
No haría eso.
El bot en realidad no buscará en el foro de la misma manera que se busca texto en una publicación. La palabra clave y la tecnología relacionada que necesita aprender para esto es Base de datos vectorial y Búsqueda del vecino más cercano.
Para ver ejemplos de código de cómo se utiliza, consulte
He utilizado la versión gratuita en línea algunas veces y, como señalé en mi respuesta, no he visto nada tan bueno y he buscado mucho a lo largo de los años formas de obtener texto y otra información de un PDF.
Quiero añadir más información sobre esto, ya que algunos pueden pensar que la referencia (nombre del manual, fecha de publicación, sección y párrafo) es parte de la información utilizada con RAG y yo no lo concebí de esa manera y no proporcioné algunos de los detalles necesarios. Sí concebí el uso de metadatos; para mí, datos y metadatos tienen significados y usos muy diferentes.
Cuando le pregunté a ChatGPT sobre esto, dio una respuesta que estaba en la línea de lo que imaginaba, pero con algunos detalles más específicos como Elasticsearch.
Prompt
¿Cómo se puede usar RAG (Retrieval Augmented Generation) con un manual en PDF de un producto y obtener el título, la fecha de publicación, la página y el número de párrafo del manual como referencia con la información anotada?
Completado
Usar Retrieval Augmented Generation (RAG) con un manual en PDF para extraer información específica como el título, la fecha de publicación, la página y el número de párrafo implica varios pasos. RAG, desarrollado por Facebook AI, combina el poder de la recuperación (obtener documentos o datos relevantes) con la generación de lenguaje, lo que permite al modelo referenciar e incorporar conocimiento externo. Aquí hay un enfoque general para usar RAG con un manual en PDF:
Convertir el manual en PDF a un formato de texto:
Primero, necesita convertir el manual en PDF a un formato de texto que pueda ser procesado. Se pueden usar herramientas como Adobe Acrobat, pdftotext (parte del proyecto Xpdf) o bibliotecas de Python como PyPDF2 o PDFMiner para este propósito.
Preprocesar el texto:
Una vez que tenga el texto, es posible que necesite preprocesarlo. Esto incluye eliminar formato innecesario, manejar caracteres especiales y posiblemente segmentar el texto en secciones, páginas y párrafos con marcadores identificables.
Indexar el manual:
Para que RAG funcione de manera efectiva, el contenido del manual debe ser indexado. Esto significa crear una base de datos o un formato estructurado donde cada pieza de información (como un párrafo o una sección) se almacena con sus metadatos correspondientes (número de página, número de párrafo, etc.). Elasticsearch o un motor de búsqueda similar se pueden usar para este propósito.
Integrar RAG:
Con el manual indexado, ahora puede integrar RAG. RAG típicamente combina un modelo de lenguaje basado en transformadores (como BERT o RoBERTa) para la recuperación y un modelo secuencia a secuencia (como BART o T5) para la generación. Necesitará configurar RAG para consultar su manual indexado. Esto podría implicar personalizar el componente de recuperación para que funcione con su motor de búsqueda.
Consultar el sistema:
Cuando consulta el sistema RAG, el componente de recuperación primero encuentra las secciones más relevantes del manual basándose en su consulta. Esta información luego se pasa al componente de generación, que formula una respuesta.
Extraer información de referencia:
Para obtener el título, la fecha de publicación, la página y el número de párrafo, deberá asegurarse de que estos detalles estén incluidos en los segmentos recuperados o que el sistema pueda hacer referencia a los datos indexados para obtener estos metadatos. Esto podría requerir lógica adicional en su sistema.
Postprocesamiento para referencias:
Después de que se genera la respuesta, es posible que necesite un paso de postprocesamiento para formatear las referencias correctamente, asegurando que el título, la fecha de publicación, la página y el número de párrafo se incluyan con precisión.
Ajuste fino y evaluación:
Dependiendo de sus requisitos específicos y la complejidad del manual, es posible que necesite ajustar el modelo RAG en tipos de documentos o consultas similares. Evalúe el rendimiento del sistema y ajuste su enfoque según sea necesario.
Integración con la interfaz de usuario:
Finalmente, si este sistema está destinado a usuarios finales, intégralo con una interfaz fácil de usar donde los usuarios puedan ingresar consultas y recibir respuestas con la información referenciada.
Recuerde que la efectividad de este enfoque depende en gran medida de la calidad de los datos indexados, las capacidades del modelo de recuperación y qué tan bien ha sido entrenado o ajustado el modelo de generación para su caso de uso específico.
Nota: Si bien uso ChatGPT para generar información, tampoco publico información de ChatGPT si creo que es incorrecta. En otras palabras, ChatGPT puede ser útil, pero tienes que saber si la información proporcionada es correcta o no. Aunque no he implementado exactamente lo que señala ChatGPT aquí, tengo suficiente experiencia con esto como para usar esto o una desviación de ello.
El plugin Discourse Chatbot tiene un paso donde crea los embeddings que utiliza la API de embeddings de OpenAI. El plugin Discourse AI no parece hacer esto (no mostró actividad de embeddings en el panel de OpenAI) pero aún así encuentra publicaciones en nuestro foro. Si no genera embeddings para buscar semánticamente, ¿cómo busca el plugin Discourse AI en el foro? ¿Utiliza búsqueda de texto normal? ¿Calcula sus propios embeddings?