TrainMyAI uses AI to answer questions based on a defined set of information, rather than the Internet as a whole.
It implements an approach called retrieval augmented generation (RAG), which combines the conversational ability of large language models with a given set of references. This ensures that answers are grounded in trusted sources, avoiding the well-known problem of hallucination in these systems.
TrainMyAI is “trained” by uploading your content as text, web pages, PDFs, Word files or via the API. It splits that content into paragraphs and allows you to tweak, remove and disable those paragraphs as you wish.
TrainMyAI then uses an AI model to calculates the “embedding” for each paragraph. An embedding is a long list of numbers representing the meaning of some text. TrainMyAI stores these embeddings in a database on your server.
When a user asks a question, TrainMyAI calculates the question's embedding, then searches this database for embeddings which are mathematically similar. These identify the paragraphs of your content which are most relevant for the question.
TrainMyAI then prompts the AI language model to answer the user's question based only on these paragraphs, displaying the response in real-time. It can also show the references to the user, together with links back to the source materials.
TrainMyAI allows users to rate their conversations with a simple star system. All conversations and ratings are stored for review by site administrators, who can browse conversations by user or time.
TrainMyAI also provides statistics on which reference paragraphs are most frequently used. This helps point out popular conversation topics and high impact paragraphs which can be improved or expanded on.
TrainMyAI includes many other useful features – support for several language models, fine-grained user management, multiple knowledge bases, extensive customization of AI parameters and HTML pages, and an API for integration into mobile or other applications. And it does all this on your own server, allowing you to maintain full control.