1
1
.. _arch-center-is-claim-management:
2
2
3
- =====================================================
4
- Claim Management Using LLMs and Vector Search for RAG
5
- =====================================================
3
+ ======================================================
4
+ Claims Management Using LLMs and Vector Search for RAG
5
+ ======================================================
6
6
7
7
.. facet::
8
8
:name: genre
@@ -18,8 +18,8 @@ Claim Management Using LLMs and Vector Search for RAG
18
18
:depth: 1
19
19
:class: singlecol
20
20
21
- Discover how to combine Atlas Vector Search and large language models (LLMs) to
22
- streamline the claim adjustment process.
21
+ Discover how to combine MongoDB Atlas Vector Search and Large Language Models
22
+ (LLMs) to streamline the claims adjustment process.
23
23
24
24
**Use cases:** `Gen AI <https://www.mongodb.com/use-cases/artificial-intelligence>`__,
25
25
`Content Management <https://www.mongodb.com/solutions/use-cases/content-management>`__
@@ -38,45 +38,44 @@ streamline the claim adjustment process.
38
38
Solution Overview
39
39
-----------------
40
40
41
- One of the biggest challenges for claim adjusters is pulling and aggregating
42
- information from disparate systems and diverse data formats. PDFs of policy
43
- guidelines might be stored in a content-sharing platform, customer information
44
- locked in a legacy CRM, and claim-related pictures and voice reports in yet
45
- another tool. All of this data is not just fragmented across siloed sources and
46
- hard to find but also in formats that have been historically nearly impossible
47
- to index with traditional methods. Over the years, insurance companies have been
48
- accumulating terabytes of `unstructured data <https://www.mongodb.com/unstructured-data>`__
49
- in their datastores, but failing to capitalize on the possibility of accessing
50
- and leveraging it to uncover business insights, deliver better customer
51
- experiences, and streamline operations. Some of our customers even admit they’re
52
- not fully aware of all of the data that’s truly in their archives. There’s a
53
- tremendous opportunity now to leverage all of this unstructured data to the
54
- benefit of these organizations and their customers.
55
-
56
- Our solution addresses these challenges by combining the power of
57
- `Altas Vector Search <https://www.mongodb.com/products/platform/atlas-vector-search>`__
58
- and a `Large Language Model (LLM) <https://www.mongodb.com/basics/large-language-models>`__ to
59
- in a `retrieval augmented generation (RAG) <https://www.mongodb.com/basics/retrieval-augmented-generation>`__
60
- system, allowing organizations to go beyond the limitations of baseline
61
- foundational models, making them context-aware by feeding them proprietary data.
62
- In this way, they can leverage the full potential of AI to streamline operations.
63
-
64
- Reference Architectures
65
- -----------------------
66
-
67
- With MongoDB
68
- ~~~~~~~~~~~~
69
-
70
- MongoDB Atlas combines transactional and search capabilities in the same
71
- platform, providing a unified development experience. As embeddings are stored
72
- alongside existing data, when running a vector search query, we get the document
73
- containing both the vector embeddings and the associated metadata, eliminating
74
- the need to retrieve the data elsewhere. This is a great advantage for
75
- developers who don’t need to learn to use and maintain a separate technology and
76
- can fully focus on building their apps.
77
-
78
- Ultimately, the data obtained from MongoDB Vector Search is fed to the LLM as
79
- context.
41
+ One of the biggest challenges for claims adjusters is aggregating information
42
+ from diverse systems and data formats. Over the years, insurance
43
+ companies have accumulated terabytes of `unstructured data
44
+ <https://www.mongodb.com/unstructured-data>`__ in their datastores, which can
45
+ help uncover business insights, deliver better customer experiences, and
46
+ streamline operations. However, many companies fail to capitalize on this.
47
+
48
+ To help your organization overcome these challenges, you can build a claims
49
+ management solution with MongoDB that combines `Atlas Vector Search
50
+ <https://www.mongodb.com/products/platform/atlas-vector-search>`__ and `LLMs
51
+ <https://www.mongodb.com/basics/large-language-models>`__ in a `retrieval
52
+ augmented generation (RAG)
53
+ <https://www.mongodb.com/basics/retrieval-augmented-generation>`__ system. This
54
+ framework helps organizations go beyond the limitations of basic foundational
55
+ models and use their proprietary data to make models context-aware, streamlining
56
+ operations with AI’s full potential.
57
+
58
+ Reference Architecture
59
+ ----------------------
60
+
61
+ MongoDB provides a unified development experience by storing documents alongside
62
+ their vector embeddings and associated metadata, eliminating the need to
63
+ retrieve data elsewhere. This allows users to focus on building their
64
+ application instead of maintaining a separate technology. Ultimately, the data
65
+ obtained from MongoDB Vector Search is fed to the LLM as context.
66
+
67
+ The process of the RAG querying flow is as follows:
68
+
69
+ #. The user writes a prompt in natural language.
70
+
71
+ #. Voyage AI's embedding model vectorizes the prompt.
72
+
73
+ #. Atlas Vector Search uses the vectorized prompt to retrieve relevant
74
+ documents.
75
+
76
+ #. LLM uses both the context and original question to generate an answer.
77
+
78
+ #. The user receives an answer.
80
79
81
80
.. figure:: /includes/images/industry-solutions/rag-querying-flow.svg
82
81
:figwidth: 1200px
@@ -87,96 +86,136 @@ context.
87
86
Data Model Approach
88
87
-------------------
89
88
90
- The “claim” collection contains documents including a number of fields
91
- related to the claim. In particular, we are interested in the
92
- ``claimDescription`` field, which we vectorize and add to the document
93
- as ``claimDescriptionEmbedding``. This embedding is then indexed and
94
- used to retrieve documents associated with the user prompt.
89
+ In the demo solution, the data model is a simplified design that emulates
90
+ real-world insurance claim data. The approach leverages MongoDB's flexible
91
+ document model to handle the diverse data structure that stores embeddings
92
+ alongside their related document.
95
93
96
- .. code-block:: json
97
- :emphasize-lines: 4, 10
98
- :copyable: true
94
+ The ``claims_final`` collection stores claim information. The relevant fields
95
+ are the ``claimDescription`` field and its corresponding embedding
96
+ ``claimDescriptionEmbedding``. This embedding is indexed and used to retrieve
97
+ documents associated with the user prompt. The documents in this collection are
98
+ as follows:
99
99
100
+ .. code-block:: javascript
101
+
100
102
{
101
- _id: ObjectId('64d39175e65'),
102
- customerID: "c113",
103
- claimDescription: "A motorist driving...",
104
- damageDescription: "Front-ends of both...",
105
- lossAmount: 1250,
106
- photo: "image_65.jpg"
107
- claimClosedDate: "2024-02-03",
108
- coverages: Array(2),
109
- claimDescriptionEmbedding: [0.3, 0.6, ..., 11.2]
103
+ "_id": {
104
+ "$oid": "65cc809c76da22d0089dfb2e"
105
+ },
106
+ "customerID": "c105",
107
+ "policyNumber": "p105",
108
+ "claimID": "cl105",
109
+ "claimStatusCode": "Subrogation",
110
+ "claimDescription": "High winds caused ...",
111
+ "totalLossAmount": 4200,
112
+ "claimFNOLDate": "2023-10-27",
113
+ "claimClosedDate": "2024-09-01",
114
+ "claimLineCode": "Auto",
115
+ "damageDescription": "Roof caved in ...",
116
+ "insurableObject": {
117
+ "insurableObjectId": "abc105",
118
+ "vehicleMake": "Make105",
119
+ "vehicleModel": "Model105"
120
+ },
121
+ "coverages": [
122
+ {
123
+ "coverageCode": "888",
124
+ "description": "3rd party responsible"
125
+ },
126
+ {
127
+ "coverageCode": "777",
128
+ "description": "Vehicle rental/loaner service for customer"
129
+ }
130
+ ],
131
+ "claimDescriptionEmbedding": [-0.017, ..., 0.011],
132
+ "damageDescriptionEmbedding": [-0.047, ..., -0.043],
133
+ "photo": "105.jpg",
134
+ "photoEmbedding": [9.629, ..., 14.075]
110
135
}
111
136
112
- Building the Solution
113
- ---------------------
137
+ Build the Solution
138
+ ------------------
114
139
115
- The instructions to build the demo are included in the README of `this
116
- Github repo <https://github.com/mongodb-industry-solutions/RAG-Insurance>`__.
117
- You’ll be guided through the following steps:
140
+ For detailed setup instructions, follow the `` README`` of `this
141
+ GitHub repository <https://github.com/mongodb-industry-solutions/RAG-Insurance>`__.
142
+ The instructions guide you through the following steps:
118
143
119
- - AWS Account with Bedrock access
120
- - Atlas connection setup
121
- - Dataset download
122
- - LLM configuration options
123
- - Vector Search index creation
144
+ .. procedure::
145
+ :style: normal
124
146
125
- Visit the `Atlas Vector Search Quick Start guide
126
- <https://www.mongodb.com/docs/atlas/atlas-vector-search/tutorials/vector-search-quick-start/?tck=ai_as_web>`__
127
- to try our semantic search tool now.
147
+ .. step:: Set up MongoDB database and collections
128
148
129
- This `document
130
- <https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-type/#create-an-atlas-vector-search-index>`__
131
- walks you through the creation and configuration of the Vector Search
132
- index. Make sure you follow this structure:
149
+ Create a new database in MongoDB Atlas called ``demo_rag_insurance`` and
150
+ use the provided dataset ``demo_rag_insurance_claims.json`` to create a
151
+ collection called ``claims_final``.
133
152
134
- .. code-block:: json
135
- :copyable: true
153
+ .. step:: Create a Vector Search Index
136
154
137
- {
138
- "fields": [
139
- {
140
- "type": "vector",
141
- "path": "claimDescriptionEmbedding",
142
- "numDimensions": 350,
143
- "similarity": "cosine"
155
+ Create and configure an :ref:`Atlas Vector Search index
156
+ <atlas-ui-create-vector-search>` for ``claimDescriptionEmbeddingCohere``
157
+ called ``vector_index_claim_description_cohere``. You must structure the
158
+ search index as follows:
159
+
160
+ .. code-block:: json
161
+ :copyable: true
162
+
163
+ {
164
+ "fields": [
165
+ {
166
+ "type": "vector",
167
+ "path": "claimDescriptionEmbeddingCohere",
168
+ "numDimensions": 350,
169
+ "similarity": "cosine"
170
+ }
171
+ ]
144
172
}
145
- ]
146
- }
147
173
148
- Ultimately, you have to run both the front and the back end. You’ll
149
- access a web UI that allows you to ask questions to the LLM, obtain an
150
- answer, and see the reference documents used as context.
174
+ .. step:: Configure the Backend
175
+
176
+ Set up a virtual environment using Poetry.
177
+
178
+ .. step:: Interact with the API
179
+
180
+ Start the backend server.
181
+
182
+ .. step:: Connect to the Frontend
183
+
184
+ Configure environment variables and run the frontend.
185
+
186
+ You have to run both the front and back end. You’ll access a web UI
187
+ that allows you to ask questions to the LLM, obtain an answer, and see the
188
+ reference documents used as context.
189
+
190
+ To try MongoDB's semantic search tool now, visit the :ref:`Atlas Vector Search
191
+ Quick Start guide <vector-search-quick-start>`.
151
192
152
193
Key Learnings
153
194
-------------
154
195
155
- - **Text embedding creation:** The embedding generation process can be
156
- carried out using different models and deployment options. It is
157
- important to consider privacy and data protection requirements. You
158
- can deploy a model locally if your data needs to remain on the
159
- servers. Otherwise, you can call an API and get your vector embeddings
160
- back, as explained in `this
196
+ - **Generate Text Embeddings:** You can create embeddings using different models
197
+ and deployment options. It is important to consider privacy and data
198
+ protection requirements. You can deploy a model locally if your data needs to
199
+ remain on the servers. Otherwise you can call an API and get your vector
200
+ embeddings back, as explained in `this
161
201
<https://www.mongodb.com/docs/atlas/atlas-vector-search/create-embeddings/>`__
162
- tutorial. You can use `Voyage AI (acquired by MongoDB)
202
+ tutorial. You can use `Voyage AI
163
203
<https://www.mongodb.com/blog/post/redefining-database-ai-why-mongodb-acquired-voyage-ai>`__
164
204
or open-source models.
165
205
166
- - **Creation of a Vector Search index in Atlas :** It is now possible to
167
- create indexes for `local deployments
168
- <https://www.mongodb.com/docs/ atlas/cli/stable/atlas -cli-deploy-local/#std-label-atlas-cli-deploy-local-avs>`__ .
206
+ - **Create Vector Search Indexes :** You can build Vector Search indexes in
207
+ MongoDB Atlas. Alternatively, you can also build indexes for :ref: `local
208
+ deployments < atlas-cli-deploy-local>` .
169
209
170
- - **Performing a Vector Search query:** Notably, `Vector Search queries <https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-stage/>`__
171
- have a dedicated operator within MongoDB’s `aggregation pipeline
172
- <https://www.mongodb.com/docs/manual/aggregation/>`__. This means they
173
- can be concatenated with other operations, making it extremely
174
- convenient for developers because they don’t need to learn a different
210
+ - **Perform a Vector Search Query:** You can run :ref:`Vector Search queries
211
+ <return-vector-search-results>` with MongoDB's :ref:`aggregation pipeline
212
+ <aggregation>`, allowing you to concatenate multiple operations in your
213
+ workflow. This approach eliminates the need to learn another programming
175
214
language or change context.
176
215
177
- - Using LangChain as the framework that glues together MongoDB Atlas
178
- Vector Search and the LLM, allowing for an easy and fast RAG
179
- implementation .
216
+ - **Develop a Fast RAG Implementation:** You can develop a fast RAG
217
+ implementation with a :ref:`LangChain <langchain>` framework that combines
218
+ MongoDB Atlas Vector Search and LLMs .
180
219
181
220
Authors
182
221
-------
0 commit comments