chatbot_support_vision
)*Se requiere registrarse para servicios API externos (no afiliados). Enlaces en configuración.
Hay dos modos:
El modo RAG es muy inteligente y conoce los datos publicados en tu foro.
El modo bot básico a veces puede cometer errores, pero su ejecución es más económica porque realiza menos llamadas al modelo de lenguaje grande:
Este bot se puede utilizar en espacios públicos de tu foro. Para que el bot sea especialmente útil, existe el modo RAG (una configuración por nivel de confianza del bot). Esto no está configurado de forma predeterminada.
En el modo RAG, el bot se rige, de forma predeterminada, mediante la configuración de chatbot embeddings strategy
( benchmark_user
predeterminada) que tiene acceso a todo el contenido que vería un usuario de nivel de confianza 1. Por lo tanto, si interactúa con un tema público, existe la posibilidad de que el bot pueda "filtrar" información si tiende a bloquear contenido en el nivel de confianza 0 o 1 a través de permisos de categoría. Se eligió este nivel porque, a través de la experiencia, la mayoría de los sitios generalmente no incluyen contenido confidencial en niveles bajos de confianza, pero depende de sus necesidades específicas.
Para este modo, asegúrese de tener al menos un usuario con Nivel de confianza 1 y no tener membresía en ningún grupo adicional más allá de los grupos automatizados. (tenga en cuenta que el bot sabrá todo lo que un usuario de nivel TL1 sabría y podrá compartirlo). Puede optar por reducir chatbot embeddings benchmark user trust level
si tiene un usuario de nivel de confianza 0 sin membresía de grupo adicional más allá de los grupos automatizados.
Alternativamente:
chatbot embeddings strategy
a category
y complete chatbot embeddings categories
con las categorías que desea que el bot conozca. (Tenga en cuenta que si agrega categorías privadas, debería conocerlas y todo lo que el bot diga en público, en cualquier lugar, podría filtrarse a usuarios menos privilegiados, así que tenga un poco de cuidado con lo que agregue).basic
(pero el bot no verá ninguna publicación)Puede ver que esta configuración es un compromiso. Para que el bot sea útil, debe conocer el contenido de su sitio. Actualmente, no es posible que el bot lea selectivamente contenido solo para miembros y lo comparta solo con miembros, lo que algunos administradores pueden considerar limitante, pero no hay forma de resolverlo fácilmente mientras el bot pueda hablar en público. Contáctame si tienes necesidades especiales y te gustaría patrocinar algún trabajo en este espacio. La concesión de permisos a bots con búsqueda semántica no es un problema trivial. Actualmente, el sistema está optimizado para la velocidad. NB: el bot nunca lee los mensajes privados.
Si desea que Chatbot conozca el contenido de su sitio, active esta configuración:
chatbot_embeddings_enabled
Solo es necesario si desea utilizar el bot tipo RAG y asegurarse de que conozca el contenido de su foro, no solo el tema actual.
Inicialmente, necesitamos crear incrustaciones para todas las publicaciones dentro del alcance, para que el bot pueda encontrar información del foro. Esto ahora sucede en segundo plano una vez que esta configuración está habilitada y no necesita hacer nada.
Este trabajo de siembra puede llevar varios días en sitios muy grandes.
Esto está determinado por varias configuraciones:
chatbot_embeddings_strategy
que puede ser "benchmark_user" o "categoría"chatbot_embeddings_benchmark_user_trust_level
establece el nivel de confianza relevante para el primerochatbot_embeddings_categories
si se establece la estrategia category
, le da al bot acceso para considerar todas las publicaciones en la categoría especificada.Si cambia esta configuración, con el tiempo, la población de incrustaciones se transformará.
Introduzca el contenedor:
./launcher enter app
y ejecute el siguiente comando rake:
rake chatbot:refresh_embeddings[1]
que actualmente se ejecutará dos veces por motivos desconocidos (¡lo siento! No dude en hacer relaciones públicas), pero [1]
garantiza que la segunda vez solo agregará incrustaciones faltantes (es decir, ninguna inmediatamente después de la primera ejecución), por lo que es algo discutible.
En el improbable caso de que OpenAI limite la tasa (¡poco probable!), puede completar las incrustaciones haciendo esto:
rake chatbot:refresh_embeddings[1,1]
que completará los que faltan (para que no se pierda nada por el error) pero continuará con más cautela poniendo un retraso de 1 segundo entre cada llamada a Open AI.
En comparación con las interacciones de bots, las incrustaciones no son costosas de crear, pero en cualquier caso, controle su uso en su panel de Open AI.
NB Las incrustaciones solo se crean para publicaciones y solo aquellas publicaciones a las que un usuario de nivel uno de confianza tendría acceso. Esto parecía un compromiso razonable. No creará incrustaciones para publicaciones de contenido accesible únicamente de nivel de confianza 2+.
@37Rb escribe: "Aquí hay una consulta SQL que estoy usando con el complemento Data Explorer para monitorear y verificar incrustaciones... en caso de que ayude a alguien más".
SELECT e.id, e.post_id AS post, p.topic_id AS topic, p.post_number,
p.topic_id, e.created_at, e.updated_at, p.deleted_at AS post_deleted
FROM chatbot_post_embeddings e LEFT JOIN posts p ON e.post_id = p.id
Es posible que reciba un error como este:
OpenAI HTTP Error (spotted in ruby-openai 6.3.1): {"error"=>{"message"=>"This model's maximum context length is 8192 tokens, however you requested 8528 tokens (8528 in your prompt; 0 for the completion). Please reduce your prompt; or completion length.", "type"=>"invalid_request_error", "param"=>nil, "code"=>nil}}
Así se soluciona...
Según su mensaje de error, el modelo de inserción tiene un límite de:
8192 tokens
however you requested 8528
Debe eliminar el valor actual de esta configuración:
chatbot_open_ai_embeddings_char_limit:
por aproximadamente 4 x la diferencia y vea si funciona (un token tiene aproximadamente 4 caracteres).
Entonces, en este ejemplo, 4 x (8528 - 8192) = 1344
Así que elimine chatbot_open_ai_embeddings_char_limit
el valor actual en 1500 para estar seguro. Sin embargo, el valor predeterminado se estableció de acuerdo con muchas pruebas para publicaciones en inglés, pero es posible que sea necesario reducirlo para otros idiomas.
Esto luego cortará más texto y solicitará tokens y, con suerte, se realizará la incrustación. De lo contrario, deberá confirmar la diferencia y reducirla aún más en consecuencia. Con el tiempo será lo suficientemente bajo como para que no sea necesario volver a mirarlo.
No necesita hacer nada más que cambiar la configuración: el trabajo en segundo plano se encargará de todo, aunque sea de forma gradual.
Si realmente desea acelerar el proceso, haga:
chatbot_open_ai_embeddings_model
a su nuevo modelo preferido./launcher enter app
rails c
::DiscourseChatbot::PostEmbedding.delete_all
exit
(para volver a la raíz dentro del contenedor)rake chatbot:refresh_embeddings[1]
chatbot_forum_search_function_similarity_threshold
o es posible que no obtengas resultados :). Bajé mi valor predeterminado de 0.8
a 0.6
, pero su kilometraje puede variar. Tómese un momento para leer el conjunto completo de configuraciones de complementos. La configuración chatbot bot type
es clave y hay una para cada "Nivel de confianza" de chatbot:
El modo RAG es superior pero realizará más llamadas a la API, lo que podría aumentar el costo. Dicho esto, la reducción de su propensión a generar 'alucinaciones' en última instancia puede facilitarle la posibilidad de pasar de GPT-4 a GPT-3.5 y puede terminar gastando menos a pesar del aumento significativo en la utilidad y confiabilidad de la salida. GPT 3.5 también se adapta mejor al tipo de agente según los tiempos de respuesta. ¡Un posible beneficio mutuo! ¡Experimento!
Para que Chatbot funcione en Chat debes tener Chat habilitado.
Esto se rige principalmente por una configuración: chatbot_reply_job_time_delay
sobre la cual tienes discreción.
La intención de tener esta configuración es:
Ahora es '1' segundo por defecto y ahora se puede reducir a cero, pero tenga en cuenta los riesgos anteriores.
Al establecer este cero, el bot, incluso en modo "agente", se vuelve mucho más "ágil".
Obviamente esto puede ser un poco artificial y ninguna persona real escribiría tan rápido... pero configúralo a tu gusto y al tamaño de tu billetera.
NB: no puedo controlar directamente la velocidad de respuesta de la API de Open AI, y la regla general es que cuanto más sofisticado sea el modelo que establezca, más lenta será esta respuesta. Entonces, GPT 3.5 es mucho más rápido que GPT 4... aunque esto puede cambiar con el modelo GPT 4 Turbo más nuevo.
Para que Chatbot funcione en Chat debes tener Chat habilitado.
Debe obtener un token de https://platform.openai.com/ para poder utilizar el bot actual. Se establece un modelo de idioma predeterminado (uno de los más sofisticados), pero puedes probar una alternativa más económica, la lista está aquí
Hay una parte automatizada de la configuración: al agregar un Discurso, el complemento actualmente configura un usuario de bot de IA con los siguientes atributos
Puede editar el nombre, el avatar y la biografía (consulte la cadena de configuración regional en administrador -> personalizar -> texto) como desee, pero haga que sea fácil de mencionar.
Inicialmente nadie tendrá acceso al bot, ni siquiera el personal.
¡Llamar a la API Open AI no es gratuito después de que haya expirado una asignación gratuita inicial! Por eso, he implementado un sistema de cuotas para mantener esto bajo control, mantener los costos bajos y evitar abusos. El costo no es una locura con estas pequeñas interacciones, pero puede aumentar si se vuelve popular. Puede leer más sobre los precios de OpenAI en su página de precios.
Para interactuar con el bot, debe pertenecer a un grupo que se haya agregado a uno de los tres niveles de conjuntos de grupos confiables: conjuntos de grupos de confianza baja, media y alta. Puede modificar cada uno de los conjuntos de números de interacciones permitidas por semana por grupo de confianza en la configuración correspondiente.
También debes completar los grupos. Esa configuración depende totalmente de usted. Comienzan en blanco, por lo que inicialmente nadie tendrá acceso al bot. Hay cuotas correspondientes en tres entornos adicionales.
Tenga en cuenta que el usuario obtiene la cuota según el grupo de mayor confianza al que pertenece.
Hay varias "configuraciones" de texto local que influyen en lo que recibe el bot y en cómo responde.
El más importante que deberías considerar cambiar es el indicador system
del bot. Esto se envía cada vez que hablas con el bot.
Para el bot básico, puedes probar un mensaje del sistema como:
"Eres un fanático extremo de la Fórmula Uno, te encanta todo lo que tiene que ver con el automovilismo y sus niveles de emoción de alto octanaje", en lugar del valor predeterminado.
(Para el robot agente, debes conservar todo después de "Eres un asistente útil" o puedes alterar el comportamiento del agente. Reinícialo si tienes problemas. ¡Experimenta nuevamente!)
Pruebe uno que sea más apropiado para el tema de su foro. ¡Sea creativo!
Cambiar estas cadenas de configuración regional puede hacer que el bot se comporte de manera muy diferente, pero no se puede modificar sobre la marcha. Recomendaría cambiar solo el mensaje del sistema, ya que los demás juegan un papel importante en el comportamiento del agente o brindan información sobre quién le dijo qué al bot.
NB: En Temas, la primera publicación y el título del tema se envían además de la ventana de Publicaciones (determinada por la configuración retrospectiva) para darle más contexto al bot.
Puede editar estas cadenas en Administrador -> Personalizar -> Texto en chatbot.prompt.
discurso-chatbot/config/locales/server.en.yml
Línea 45 en 262a0a4
El bot admite mensajes de chat y publicaciones de temas, incluidos mensajes privados (si están configurados).
Puede pedirle al bot que responda respondiéndole o mencionándolo. Puede establecer qué tan lejos mira el bot hacia atrás para obtener contexto para una respuesta. Cuanto mayor sea el valor, más costosa será cada llamada.
Hay un botón flotante de chat rápido que te conecta inmediatamente con el bot. Esto se puede desactivar en la configuración. Puedes elegir si cargar el bot en un chat 1 a 1 o en un mensaje personal.
Ahora puede elegir su ícono preferido (¿predeterminado?) o, si lo deja en blanco, seleccionará el avatar del usuario del bot. ?
Y recuerde, también puede personalizar el texto que aparece cuando se expande editando el texto local usando Administrador -> Personalizar -> chatbot.
El único paso necesario para eliminarlo es eliminar la declaración de clonación de su app.yml
.
No soy responsable de lo que responde el bot. Considere que el complemento está en la etapa Beta y las cosas podrían salir mal. Mejorará con la retroalimentación. ¿Pero no necesariamente la respuesta de los bots? Comprenda los pros y los contras de un LLM y lo que son y lo que no son capaces de hacer y sus limitaciones. Son muy buenos creando textos convincentes, pero a menudo pueden estar equivocados.
Todo lo que escriba en su foro puede reenviarse a Open AI como parte del análisis de los robots de las últimas publicaciones una vez que se le solicite responder (obviamente, esto está restringido al tema o canal de chat actual). Si bien es casi seguro que no se incorporarán a sus modelos previamente entrenados, utilizarán los datos en sus análisis y registros. Asegúrese de agregar este hecho en los TOS y declaraciones de privacidad de su foro . Enlaces relacionados: https://openai.com/policies/terms-of-use, https://openai.com/policies/privacy-policy, https://platform.openai.com/docs/data-usage-policies
Open AI hizo una declaración sobre los derechos de autor aquí: https://help.openai.com/en/articles/5008634-will-openai-claim-copyright-over-what-outputs-i-generate-with-the-api