Skip to content

Commit 3753352

Browse files
authored
Merge pull request #2 from redhat-solution-patterns/bkoz-dev
updated
2 parents ce1a42e + fb8f1f4 commit 3753352

File tree

3 files changed

+41
-11
lines changed

3 files changed

+41
-11
lines changed

documentation/modules/ROOT/pages/02-architecture.adoc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,13 @@ image::rag-architecture.jpg[width=100%]
7575

7676
=== Architecture
7777

78-
=== Ingest Engine
78+
==== Ingest Engine
79+
80+
The ingest engine consists of a caching proxy and syncronizer services. The caching proxy is a Camel service that
81+
caches the stock information from the Alpha Vantage API and the syncronizer service is a Camel service that
82+
synchronizes the data with the Weaviate vector database. The ingest engine is deployed on Openshift using a standard
83+
source-to-image workflow. Details can be found in the https://github.com/joshdreagan/av-caching-proxy.git[caching proxy]
84+
and https://github.com/joshdreagan/av-overview-sync.git[syncronizer] repositories.
7985

8086
==== Weaviate vector database
8187
The Weaviate vector database is installed using the helm installer which allows for enterprise features to be enabled including

documentation/modules/ROOT/pages/04-workshop.adoc

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,38 @@ consuming when more than one company must be analyzed not to mentioned that the
118118
and could change several times day. This is where AI can help. In this workshop, we will make use of a vector
119119
database and an LLM to give the analyst a head start on the task at hand.
120120

121-
==== Review the dataflow diagram to explain the workflow.
122-
TODO
123121

124-
==== Review the architecture diagram to explain the Openshift services.
125-
TODO
122+
==== Openshift services.
126123

127-
==== Run the RAG application.
128-
TODO
124+
===== Weaviate
125+
At the center of the architecture is the Weaviate vector database. It it is deployed as an OpenShift
126+
statefulset to provide resilency and performance. The Weaviate vector database is exposed as a RESTful API via
127+
the internal service network to allow neighboring services such as the syncronizer and intelligent query clients
128+
to interact with it.
129129

130-
* Try different search terms and see how the results change.
131-
* Vary the limits and see the different number of returned results.
132-
* Try different LLM prompts.
130+
===== Ingest Engine
131+
132+
The ingest engine consists of a caching proxy and syncronizer. Once these services are started, the Weaviate vector database is
133+
initialized with a collection of 7118 stock symbol objects from a https://github.com/joshdreagan/av-overview-sync/blob/master/src/main/resources/data/company-overview.json[local file cache].
134+
As symbols are ingested, they are converted to vectors via the vectorizer model and upserted into Weaviate as embeddings.
135+
Once this cold start sequence is complete, the syncronizer will periodically refresh a number of stock symbols. This
136+
list of symbols of interest is may be configured at run time. Notice that the entire ingest engine
137+
is highly configurable via https://github.com/joshdreagan/av-overview-sync/blob/master/src/main/jkube/configmap.yml.template#L7[Openshift configmaps].
138+
139+
===== Ollama Model Server
140+
The Ollama model server hosts a vectorizer and a large language model. To provide optimal performance and latency
141+
it is accelerated by GPUs.
142+
143+
===== Developer IDE
144+
Code assistance, debugging and enhanced developer experience is made possible by Openshift DevSpaces.
145+
146+
==== Running the RAG application.
147+
To run the itelligent application visit the `rag` route in a web browser. Start off near the top of the web page UI
148+
by performing a semantic search using terms like "computers" or "commodities" and see the results. Also feel free
149+
to try a term of your own.
150+
The number of results can be changed using the horizontal slider. Weaviate will return the closest matches but only
151+
the company names will appear in the UI.
152+
153+
Now choose a prompt template near the bottom half of the UI. This is where the magic happens. The Weaviate
154+
SDK will fill-in the prompt template with the results of the semantic search and perform a generative search using the
155+
power of the LLM. Again, experiment with your own prompts and have fun!

documentation/modules/ROOT/pages/developer-resources.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
= Developer Resources
88

99
== Deployment
10-
* https://github.com/redhat-na-ssa/demo-ai-weaviate[The git repo of the source code]
10+
* https://github.com/redhat-na-ssa/demo-ai-weaviate[The git repo of the source code] is a great starting
11+
point to get this example installed and deployed on Openshift
1112

1213
== Further reading
1314
* https://www.redhat.com/en/blog/building-powerful-applications-weaviate-and-red-hat-openshift-retrieval-augmented-generation-workflow[A blog post related to running vector databases on Red Hat Openshift]

0 commit comments

Comments
 (0)