Overview#
Aryn’s open source conversational search stack is an integrated one-stop shop that you can use to easily build conversational applications on unstructured enterprise data and quickly scale them to production. The stack consists of three main components: semantic data preparation with Sycamore, semantic search with OpenSearch, and conversational capabilities in OpenSearch. Generative AI augments each of these components, leading to higher quality answers and ease of use.
Sycamore, a robust and scalable semantic data preparation system, handles the data ingestion stage of the search stack. It runs data pipelines with operations such as data cleaning, information extraction, enrichment, summarization, and generation of vector embeddings that encapsulate the semantics of data. Sycamore also uses large language models (LLMs) during the data enrichment process. It runs on Ray, an open source framework for scaling Python workloads.
OpenSearch, a popular enterprise-grade search engine, provides capabilities that power the other stages of the stack: information retrieval and conversational capabilities. For information retrieval, you can use semantic search, keyword search, or hybrid search - which is a combination of semantic and keyword search. For many use cases, hybrid search gives the highest search relevance. OpenSearch offers both vector databases and term-based indexing, so you can use the same system for hybrid search. You can also use other OpenSearch features, like filtering, with these workloads.
Aryn added support for conversational capabilities in OpenSearch in version 2.10. These features enable you run a conversational search query using information retrieval and generative AI and store the history of each interaction to use in an ongoing conversation. First, the stack uses a OpenSearch Search Pipeline to orchestrate interactions with LLMs using retrieval-augmented generation (RAG) pipelines. RAG is a popular approach for using LLMs to synthesize natural language answers from an private dataset. Your application will use this pipeline for each search query. Second, the stack uses conversation memory to store each interaction in a conversation. Conversation memory stores this data in an OpenSearch index. The RAG Search Pipeline can use the stored interactions to provide conversational context to future interactions.