From 1c4a00ebac4ee2591dd94327a345ba7d41c5058c Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 6 Jun 2024 11:40:31 +1200 Subject: [PATCH 01/15] Create 2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Added entry for DatasStax OpenSearch blog announcement. Signed-off-by: Nate McCall --- ...rtnering-with-datastax-on-generative-ai.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md new file mode 100644 index 0000000000..c3c6bbba85 --- /dev/null +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -0,0 +1,48 @@ +--- +layout: post +title: "Announcing an OpenSearch and DataStax partnership on Generative AI" +authors: + - zznate +date: 2024-06-06 +categories: + - community + - partners +meta_keywords: +meta_description: +excerpt: +has_math: false +has_science_table: false +--- + +DataStax and the OpenSearch Project team are announcing a series of integration efforts to support Generative AI developers. Retrieval Augmented Generation (RAG) is a key design pattern in Generative AI. RAG Applications work by assembling context from a variety of sources, which is then processed by an LLM to provide an intelligent and relevant response. Serving these applications requires a mix of data retrieval and storage capabilities and we, OpenSearch and DataStax, are committed to working together to serve the broad needs of Generative AI developers. + +To power the explosive growth within the Generative AI space, we need to keep innovating on the tooling available to developers. These tools require access to a variety of enterprise data and we want to be there to provide that access in whatever common format is required. Being able to retrieve data in the most flexible ways possible is a necessary catalyst for getting RAG and GenAI knowledge applications to production. + +Amazon sponsors OpenSearch to ensure the continuing existence of an open source search engine that users could use, modify, and extend however they wish. The OpenSearch community is full of active contributors, maintainers, and partners. For Generative AI specifically, OpenSearch brings: + +* **Ease of use**: OpenSearch provides easy-to-use indexing and search capabilities and has built in features for text analysis, tokenization, and relevance scoring +* **Optimized for text retrieval**: OpenSearch makes it easy to find and rank documents based on keyword queries +* **Versatility**: OpenSearch can handle a wide variety of data types and formats +* **AI/ML integration**: OpenSearch supports hybrid vector/text search with score normalization, and sparse vector search + +DataStax is a leading contributor to a range of open source projects, including [Langflow](https://langflow.org/), [Apache Cassandra](https://cassandra.apache.org/_/index.html), and [JVector](https://github.com/jbellis/jvector), which provides vector search through DiskANN and advanced GenAI techniques like COLBert. Generative AI developers seek this database and vector combination to provide: + +* **Context assembly**: Langflow delivers a UI to discover ecosystem components and compose the workflows that back Generative AI applications +* **Similarity search**: JVector offers high-performance vector similarity search and can handle embedding-based queries which require low latency and high relevance +* **Scalability**: Cassandra offers scalable persistence for structured and semi-structured data + +The combination of these technologies enable semantic and keyword searches as well as hybrid query processing. Context is assembled using: +* Keyword queries which are directed to OpenSearch to retrieve relevant documents +* Semantic queries use JVector and Cassandra to find the most relevant data points based on vector similarity +* Database queries which provide known personalization, profile, and transactional data + +### **Moving Forward** +DataStax will maintain a JVector integration for OpenSearch, and offer OpenSearch as part of their self-managed offering platform, HCDP (Hyper Converged Data Platform) and as integration to their cloud service, Astra. + +Enterprises have spent years investing in search infrastructure. With the inclusion of OpenSearch, DataStax can give developers the most flexible information retrieval possible with applications already familiar to many enterprises. OpenSearch bridges the gap between single document Q&A and open domain Q&A: essentially providing the ability to reason across multiple, diverse documents and texts by tying keyword searching in OpenSearch alongside dense vector search of JVector in Astra and HCDP. + +For Generative AI, relevance wins and through this partnership we will ensure that your enterprise data estate can act as context for RAG and GenAI workflows to provide as much data to the context as possible. For more information, see the [HCDP announcement here](https://www.datastax.com/fr/blog/introducing-vector-search-for-self-managed-modern-architecture). + + + + From 2c038b041d91a354493efaa1accc40d23aceee43 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 6 Jun 2024 11:45:40 +1200 Subject: [PATCH 02/15] Create zznate.md for blog post Signed-off-by: Nate McCall --- _community_members/zznate.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 _community_members/zznate.md diff --git a/_community_members/zznate.md b/_community_members/zznate.md new file mode 100644 index 0000000000..5d29a79b26 --- /dev/null +++ b/_community_members/zznate.md @@ -0,0 +1,24 @@ +--- +name: Nate McCall +short_name: zznate +photo: '/assets/media/community/members/zznate.jpg' +title: 'OpenSearch Community Member: Nate McCall' +primary_title: Nate McCall +breadcrumbs: + icon: community + items: + - title: Community + url: /community/index.html + - title: Members + url: /community/members/index.html + - title: 'Nate McCall's Profile' + url: '/community/members/zznate.html' +twitter: 'zznate' +github: zznate +job_title_and_company: 'Product Research and Development at DataStax' +personas: + - author +permalink: '/community/members/zznate.html' +redirect_from: '/authors/zznate/' +--- +Nate is currently in product research and development at DataStax. He is a Vice President emeritus at The Apache Software Foundation and is a committer and PMC member on Apache Cassandra. In the off hours he can be found building high-end custom roller skates for customers all over the world at his shop Seaside Skates in Paraparaumu, Aotearoa New Zealand. From 974205be1b7fe33337e72efaeec0ca89b217c62a Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 6 Jun 2024 11:50:25 +1200 Subject: [PATCH 03/15] Added member profile pic Signed-off-by: Nate McCall --- assets/media/community/members/zznate.jpg | Bin 0 -> 101725 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/media/community/members/zznate.jpg diff --git a/assets/media/community/members/zznate.jpg b/assets/media/community/members/zznate.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e02ba243983b89be86c70fd680d1a74d43fba9aa GIT binary patch literal 101725 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%0D%aVjIKc_UPv^v?^7@Nyc=%&VNV-rf?$iRKx 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 literal 0 HcmV?d00001 From 11ce54b93c437251db8c2f42eb9450ec53f9e341 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Fri, 7 Jun 2024 13:54:12 +1200 Subject: [PATCH 04/15] Update 2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Changes from review Signed-off-by: Nate McCall --- ...06-opensearch-partnering-with-datastax-on-generative-ai.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index c3c6bbba85..6b96034867 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -18,12 +18,12 @@ DataStax and the OpenSearch Project team are announcing a series of integration To power the explosive growth within the Generative AI space, we need to keep innovating on the tooling available to developers. These tools require access to a variety of enterprise data and we want to be there to provide that access in whatever common format is required. Being able to retrieve data in the most flexible ways possible is a necessary catalyst for getting RAG and GenAI knowledge applications to production. -Amazon sponsors OpenSearch to ensure the continuing existence of an open source search engine that users could use, modify, and extend however they wish. The OpenSearch community is full of active contributors, maintainers, and partners. For Generative AI specifically, OpenSearch brings: +Amazon sponsors the OpenSearch project to ensure the continuing existence of an open source search engine that users can use, modify, and extend however they wish. In addition to AWS, the OpenSearch community is full of active contributors, maintainers, and partners. For Generative AI specifically, OpenSearch brings: * **Ease of use**: OpenSearch provides easy-to-use indexing and search capabilities and has built in features for text analysis, tokenization, and relevance scoring * **Optimized for text retrieval**: OpenSearch makes it easy to find and rank documents based on keyword queries * **Versatility**: OpenSearch can handle a wide variety of data types and formats -* **AI/ML integration**: OpenSearch supports hybrid vector/text search with score normalization, and sparse vector search +* **AI/ML integration**: OpenSearch supports semantic search with vector embeddings, multi-modal search, hybrid search with score normalization, and sparse vector search DataStax is a leading contributor to a range of open source projects, including [Langflow](https://langflow.org/), [Apache Cassandra](https://cassandra.apache.org/_/index.html), and [JVector](https://github.com/jbellis/jvector), which provides vector search through DiskANN and advanced GenAI techniques like COLBert. Generative AI developers seek this database and vector combination to provide: From 26e11c3d966a725641a77b080cfd9784a45ffc41 Mon Sep 17 00:00:00 2001 From: Dhrubo Saha Date: Wed, 12 Jun 2024 09:19:52 -0700 Subject: [PATCH 05/15] triage meeting of ml-commons for 2024-06-18 Signed-off-by: Dhrubo Saha --- .../2024-0618-dev-triage-ml-commons.markdown | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 _events/2024-0618-dev-triage-ml-commons.markdown diff --git a/_events/2024-0618-dev-triage-ml-commons.markdown b/_events/2024-0618-dev-triage-ml-commons.markdown new file mode 100644 index 0000000000..e1f493e3a5 --- /dev/null +++ b/_events/2024-0618-dev-triage-ml-commons.markdown @@ -0,0 +1,83 @@ +--- +calendar_date: '2024-06-18' +eventdate: 2024-06-18 10:30:00 -0700 +primary_title: Development Backlog & Triage Meeting - ml-commons - 2024-06-18 +title: Development Backlog & Triage Meeting - ml-commons - 2024-06-18 +online: true +signup: + url: https://www.meetup.com/opensearch/events/301599479 + title: Join on Meetup + +--- + +Join the OpenSearch ml-commons team for their next backlog & triage planning meeting. + +(hosts: [Yaliang Wu](https://github.com/ylwu-amzn), [Dhrubo Saha](https://github.com/dhrubo-os), [Jing Zhang](https://github.com/jngz-es), & [Xun Zhang](https://github.com/Zhangxunmt)) + +--- + +**Join Zoom Meeting** +```json +https://us02web.zoom.us/j/82164218920 + +Meeting ID: 821 6421 8920 +Passcode: 259735 + +--- + +One tap mobile ++12532050468,,82164218920# US ++12532158782,,82164218920# US (Tacoma) + +--- +Dial by your location +• +1 253 205 0468 US +• +1 253 215 8782 US (Tacoma) +• +1 346 248 7799 US (Houston) +• +1 669 444 9171 US +• +1 669 900 9128 US (San Jose) +• +1 719 359 4580 US +• +1 646 558 8656 US (New York) +• +1 646 931 3860 US +• +1 689 278 1000 US +• +1 301 715 8592 US (Washington DC) +• +1 305 224 1968 US +• +1 309 205 3325 US +• +1 312 626 6799 US (Chicago) +• +1 360 209 5623 US +• +1 386 347 5053 US +• +1 507 473 4847 US +• +1 564 217 2000 US +• 877 853 5247 US Toll-free +• 888 788 0099 US Toll-free + +Meeting ID: 821 6421 8920 + +Find your local number: https://us02web.zoom.us/u/kcboT3QOI + +``` + +--- + +**Agenda:** + +**Triage issues** *(add the triaged label once reviewed/ready. They can be also labelled as sprint backlog if we are looking to queueing them up next, or good first issue / help wanted when appropriate.)* + +* [Backend ml-commons](https://github.com/opensearch-project/ml-commons/issues) +* [Dashboards ml-commons](https://github.com/opensearch-project/ml-commons-dashboards/issues) + +**Sprint backlog** *(Examine if it still reflects the work that we are committing to doing and is it in the right priority order)* + +* [Backend ml-commons](https://github.com/opensearch-project/ml-commons/issues) +* [Dashboards ml-commons](https://github.com/opensearch-project/ml-commons-dashboards/issues) + +**Backlog** *(anything we should move to sprint backlog? anything we should tag asking for help from the community?)* + +* [Backend ml-commons](https://github.com/opensearch-project/ml-commons/issues) +* [Dashboards ml-commons](https://github.com/opensearch-project/ml-commons-dashboards/issues) + + +***Please see Meetup link for URL and required passcode.*** + + +*By joining the Development Backlog & Triage Meeting, you grant OpenSearch, and our affiliates the right to record, film, photograph, and capture your voice and image during the Development Backlog & Triage Meeting (the “Recordings”). You grant to us an irrevocable, nonexclusive, perpetual, worldwide, royalty-free right and license to use, reproduce, modify, distribute, and translate, for any purpose, all or any part of the Recordings and Your Materials. For example, we may distribute Recordings or snippets of Recordings via our social media outlets.* From 8af7975bc9f14af774fa792a9ed4495059cae886 Mon Sep 17 00:00:00 2001 From: Nate B <96254688+nateynateynate@users.noreply.github.com> Date: Wed, 12 Jun 2024 15:37:28 -0700 Subject: [PATCH 06/15] Extending all references to end of OSSCONNA2024 CFP to be June 28, 2024 at 11:59pm EST. Signed-off-by: Nate B <96254688+nateynateynate@users.noreply.github.com> --- ...-01-opensearchcon-north-america-2024-registration-and-cfp.md | 2 +- events/opensearchcon/2024/north-america/cfp.md | 2 +- events/opensearchcon/2024/north-america/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2024-06-01-opensearchcon-north-america-2024-registration-and-cfp.md b/_posts/2024-06-01-opensearchcon-north-america-2024-registration-and-cfp.md index ba7d55093e..642e574ae8 100644 --- a/_posts/2024-06-01-opensearchcon-north-america-2024-registration-and-cfp.md +++ b/_posts/2024-06-01-opensearchcon-north-america-2024-registration-and-cfp.md @@ -38,7 +38,7 @@ feature_image: /assets/media/opensearchcon/2024/OSC2024_NASF_Social-Graphic1_120 We’re anticipating hundreds of people and dozens of OpenSearch partners this year, which will make for a fun and exciting show. [Special room rates](https://book.passkey.com/e/50823627) are available for those who wish to stay at the event hotel. OpenSearchCon passes are limited, so [register today](https://opensearchcon2023.splashthat.com/) in order to claim your spot at this year’s conference. -The [Call for Presentations](https://opensearch.org/events/opensearchcon/2024/north-america/cfp.html) is open until the end of the day on June 14. If you have a story you’d like to share, submit your talk now-time is of the essence! +The [Call for Presentations](https://opensearch.org/events/opensearchcon/2024/north-america/cfp.html) is open until the end of the day on June 28. If you have a story you’d like to share, submit your talk now-time is of the essence! Builders will be presenting dozens of sessions across four conference tracks to help you learn more about building applications at scale as an open-source contributor. The four conference tracks are: diff --git a/events/opensearchcon/2024/north-america/cfp.md b/events/opensearchcon/2024/north-america/cfp.md index 1793958600..fbe35d38cc 100644 --- a/events/opensearchcon/2024/north-america/cfp.md +++ b/events/opensearchcon/2024/north-america/cfp.md @@ -70,7 +70,7 @@ This information will help the reviewers to get a good impression of your sessio ## When does it close -CfP ends June 14, 2024 at 11:59 p.m. EST +CfP ends June 28, 2024 at 11:59pm EST ## Unconference diff --git a/events/opensearchcon/2024/north-america/index.md b/events/opensearchcon/2024/north-america/index.md index 32c5dfdde3..9825ab7126 100644 --- a/events/opensearchcon/2024/north-america/index.md +++ b/events/opensearchcon/2024/north-america/index.md @@ -65,7 +65,7 @@ Join us September 24 through September 26, 2024 at the [Hilton Union Square in -What makes the community want to attend OpenSearchCon? Beyond the opportunity to network with peers and commune with passionate open sourcers, OpenSearchCon is where you come to hear compelling stories, learn differentiated use cases, and gain educational insights shared by our community. If you have a story to tell or an idea you’d like to present to the community, our Call for Presentations (CfP) for OpenSearchCon North America is now open—go [here](/events/opensearchcon/2024/north-america/cfp.html) and submit by June 7, 2024 at 11:59 p.m. EST to submit your abstract. +What makes the community want to attend OpenSearchCon? Beyond the opportunity to network with peers and commune with passionate open sourcers, OpenSearchCon is where you come to hear compelling stories, learn differentiated use cases, and gain educational insights shared by our community. If you have a story to tell or an idea you’d like to present to the community, our Call for Presentations (CfP) for OpenSearchCon North America is now open—go [here](/events/opensearchcon/2024/north-america/cfp.html) and submit by June 28, 2024 at 11:59pm EST to submit your abstract.
From ff54cd2a2c549a6f59097d83c881e1e1ccdae17d Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:39:08 +1200 Subject: [PATCH 07/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index 6b96034867..835650ee69 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -41,7 +41,7 @@ DataStax will maintain a JVector integration for OpenSearch, and offer OpenSearc Enterprises have spent years investing in search infrastructure. With the inclusion of OpenSearch, DataStax can give developers the most flexible information retrieval possible with applications already familiar to many enterprises. OpenSearch bridges the gap between single document Q&A and open domain Q&A: essentially providing the ability to reason across multiple, diverse documents and texts by tying keyword searching in OpenSearch alongside dense vector search of JVector in Astra and HCDP. -For Generative AI, relevance wins and through this partnership we will ensure that your enterprise data estate can act as context for RAG and GenAI workflows to provide as much data to the context as possible. For more information, see the [HCDP announcement here](https://www.datastax.com/fr/blog/introducing-vector-search-for-self-managed-modern-architecture). +For generative AI, relevance wins, and through this partnership we will ensure that your enterprise data estate can act as context for RAG and generative AI workflows to provide as much data to the context as possible. For more information, see the [HCDP announcement](https://www.datastax.com/fr/blog/introducing-vector-search-for-self-managed-modern-architecture). From e05c4ee532c1c5a35671010f914f47d42c977759 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:39:23 +1200 Subject: [PATCH 08/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index 835650ee69..2a6ad4ccf9 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -1,6 +1,6 @@ --- layout: post -title: "Announcing an OpenSearch and DataStax partnership on Generative AI" +title: "Announcing an OpenSearch and DataStax generative AI partnership" authors: - zznate date: 2024-06-06 From 8bb24276e6b0f12add666466d41b1e302aa8666e Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:39:38 +1200 Subject: [PATCH 09/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index 2a6ad4ccf9..8018c2603d 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -16,7 +16,7 @@ has_science_table: false DataStax and the OpenSearch Project team are announcing a series of integration efforts to support Generative AI developers. Retrieval Augmented Generation (RAG) is a key design pattern in Generative AI. RAG Applications work by assembling context from a variety of sources, which is then processed by an LLM to provide an intelligent and relevant response. Serving these applications requires a mix of data retrieval and storage capabilities and we, OpenSearch and DataStax, are committed to working together to serve the broad needs of Generative AI developers. -To power the explosive growth within the Generative AI space, we need to keep innovating on the tooling available to developers. These tools require access to a variety of enterprise data and we want to be there to provide that access in whatever common format is required. Being able to retrieve data in the most flexible ways possible is a necessary catalyst for getting RAG and GenAI knowledge applications to production. +To power the explosive growth within the generative AI space, we need to keep innovating on the tooling available to developers. These tools require access to a variety of enterprise data, and we want to be there to provide that access in whatever common format is required. Being able to retrieve data in the most flexible ways possible is a necessary catalyst for getting RAG and generative AI knowledge applications to production. Amazon sponsors the OpenSearch project to ensure the continuing existence of an open source search engine that users can use, modify, and extend however they wish. In addition to AWS, the OpenSearch community is full of active contributors, maintainers, and partners. For Generative AI specifically, OpenSearch brings: From 67c8e04de595bb0030cc22f2a7c44ce382d2a728 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:39:53 +1200 Subject: [PATCH 10/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index 8018c2603d..e83ecde06a 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -14,7 +14,7 @@ has_math: false has_science_table: false --- -DataStax and the OpenSearch Project team are announcing a series of integration efforts to support Generative AI developers. Retrieval Augmented Generation (RAG) is a key design pattern in Generative AI. RAG Applications work by assembling context from a variety of sources, which is then processed by an LLM to provide an intelligent and relevant response. Serving these applications requires a mix of data retrieval and storage capabilities and we, OpenSearch and DataStax, are committed to working together to serve the broad needs of Generative AI developers. +DataStax and the OpenSearch Project are announcing a series of integration efforts to support generative AI developers. Retrieval-augmented generation (RAG) is a key design pattern in generative AI. RAG applications work by assembling context from a variety of sources, which is then processed by a large language model (LLM) to provide an intelligent and relevant response. Serving these applications requires a mix of data retrieval and storage capabilities, and we, OpenSearch and DataStax, are committed to working together to serve the broad needs of generative AI developers. To power the explosive growth within the generative AI space, we need to keep innovating on the tooling available to developers. These tools require access to a variety of enterprise data, and we want to be there to provide that access in whatever common format is required. Being able to retrieve data in the most flexible ways possible is a necessary catalyst for getting RAG and generative AI knowledge applications to production. From 991d217c3222de5864dc491a60609212bd3da034 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:40:06 +1200 Subject: [PATCH 11/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index e83ecde06a..e9aad98808 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -18,7 +18,7 @@ DataStax and the OpenSearch Project are announcing a series of integration effor To power the explosive growth within the generative AI space, we need to keep innovating on the tooling available to developers. These tools require access to a variety of enterprise data, and we want to be there to provide that access in whatever common format is required. Being able to retrieve data in the most flexible ways possible is a necessary catalyst for getting RAG and generative AI knowledge applications to production. -Amazon sponsors the OpenSearch project to ensure the continuing existence of an open source search engine that users can use, modify, and extend however they wish. In addition to AWS, the OpenSearch community is full of active contributors, maintainers, and partners. For Generative AI specifically, OpenSearch brings: +Amazon sponsors the OpenSearch Project to ensure the continuing existence of an open-source search engine that users can use, modify, and extend however they wish. In addition to AWS, the OpenSearch community is full of active contributors, maintainers, and partners. For generative AI specifically, OpenSearch offers the following benefits: * **Ease of use**: OpenSearch provides easy-to-use indexing and search capabilities and has built in features for text analysis, tokenization, and relevance scoring * **Optimized for text retrieval**: OpenSearch makes it easy to find and rank documents based on keyword queries From 9ca70a06b1218cc284356b4172c11e8d9a5bbcb8 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:40:19 +1200 Subject: [PATCH 12/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index e9aad98808..feeed0c9de 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -20,7 +20,7 @@ To power the explosive growth within the generative AI space, we need to keep in Amazon sponsors the OpenSearch Project to ensure the continuing existence of an open-source search engine that users can use, modify, and extend however they wish. In addition to AWS, the OpenSearch community is full of active contributors, maintainers, and partners. For generative AI specifically, OpenSearch offers the following benefits: -* **Ease of use**: OpenSearch provides easy-to-use indexing and search capabilities and has built in features for text analysis, tokenization, and relevance scoring +* **Ease of use**: OpenSearch provides easy-to-use indexing and search capabilities and has built-in features for text analysis, tokenization, and relevance scoring. * **Optimized for text retrieval**: OpenSearch makes it easy to find and rank documents based on keyword queries * **Versatility**: OpenSearch can handle a wide variety of data types and formats * **AI/ML integration**: OpenSearch supports semantic search with vector embeddings, multi-modal search, hybrid search with score normalization, and sparse vector search From f7ef14615b80e5642c1754b1e3f94225327b8a9d Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:40:28 +1200 Subject: [PATCH 13/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index feeed0c9de..2cb7196408 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -37,7 +37,7 @@ The combination of these technologies enable semantic and keyword searches as we * Database queries which provide known personalization, profile, and transactional data ### **Moving Forward** -DataStax will maintain a JVector integration for OpenSearch, and offer OpenSearch as part of their self-managed offering platform, HCDP (Hyper Converged Data Platform) and as integration to their cloud service, Astra. +DataStax will maintain a JVector integration for OpenSearch and offer OpenSearch as part of its self-managed offering platform, HCDP (Hyper Converged Data Platform), and as an integration for its cloud service, Astra. Enterprises have spent years investing in search infrastructure. With the inclusion of OpenSearch, DataStax can give developers the most flexible information retrieval possible with applications already familiar to many enterprises. OpenSearch bridges the gap between single document Q&A and open domain Q&A: essentially providing the ability to reason across multiple, diverse documents and texts by tying keyword searching in OpenSearch alongside dense vector search of JVector in Astra and HCDP. From 4ec33b5122e67f1f12b075dd4785c729607c0a20 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:41:44 +1200 Subject: [PATCH 14/15] Update _posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md Co-authored-by: Nathan Bower Signed-off-by: Nate McCall --- ...6-06-opensearch-partnering-with-datastax-on-generative-ai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index 2cb7196408..391e26cf72 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -39,7 +39,7 @@ The combination of these technologies enable semantic and keyword searches as we ### **Moving Forward** DataStax will maintain a JVector integration for OpenSearch and offer OpenSearch as part of its self-managed offering platform, HCDP (Hyper Converged Data Platform), and as an integration for its cloud service, Astra. -Enterprises have spent years investing in search infrastructure. With the inclusion of OpenSearch, DataStax can give developers the most flexible information retrieval possible with applications already familiar to many enterprises. OpenSearch bridges the gap between single document Q&A and open domain Q&A: essentially providing the ability to reason across multiple, diverse documents and texts by tying keyword searching in OpenSearch alongside dense vector search of JVector in Astra and HCDP. +Enterprises have spent years investing in search infrastructure. With the inclusion of OpenSearch, DataStax can provide developers the most flexible information retrieval possible using applications already familiar to many enterprises. OpenSearch bridges the gap between single-document Q&A and open-domain Q&A, essentially providing the ability to reason across multiple diverse documents and texts by combining keyword search in OpenSearch with the dense vector search of JVector in Astra and HCDP. For generative AI, relevance wins, and through this partnership we will ensure that your enterprise data estate can act as context for RAG and generative AI workflows to provide as much data to the context as possible. For more information, see the [HCDP announcement](https://www.datastax.com/fr/blog/introducing-vector-search-for-self-managed-modern-architecture). From 6d7d8760986375d098bd358746cb0537afff4162 Mon Sep 17 00:00:00 2001 From: Nate McCall Date: Thu, 13 Jun 2024 12:46:54 +1200 Subject: [PATCH 15/15] Update 2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md meta keywords and description. Small copy edit from feedback. Signed-off-by: Nate McCall --- ...pensearch-partnering-with-datastax-on-generative-ai.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md index 391e26cf72..fc03dbb08e 100644 --- a/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md +++ b/_posts/2024-06-06-opensearch-partnering-with-datastax-on-generative-ai.md @@ -3,12 +3,12 @@ layout: post title: "Announcing an OpenSearch and DataStax generative AI partnership" authors: - zznate -date: 2024-06-06 +date: 2024-06-13 categories: - community - partners -meta_keywords: -meta_description: +meta_keywords: Generative AI, retrieval augmented generation , DataStax HCDP, OpenSearch integrations +meta_description: Learn about the collaboration between open source startup DataStax and the OpenSearch Project on integration efforts to support Generative AI developers. excerpt: has_math: false has_science_table: false @@ -41,7 +41,7 @@ DataStax will maintain a JVector integration for OpenSearch and offer OpenSearch Enterprises have spent years investing in search infrastructure. With the inclusion of OpenSearch, DataStax can provide developers the most flexible information retrieval possible using applications already familiar to many enterprises. OpenSearch bridges the gap between single-document Q&A and open-domain Q&A, essentially providing the ability to reason across multiple diverse documents and texts by combining keyword search in OpenSearch with the dense vector search of JVector in Astra and HCDP. -For generative AI, relevance wins, and through this partnership we will ensure that your enterprise data estate can act as context for RAG and generative AI workflows to provide as much data to the context as possible. For more information, see the [HCDP announcement](https://www.datastax.com/fr/blog/introducing-vector-search-for-self-managed-modern-architecture). +For generative AI, relevance is critical, and through this partnership we will ensure that your enterprise data estate can act as context for RAG and generative AI workflows to provide as much data to the context as possible. For more information, see the [HCDP announcement](https://www.datastax.com/fr/blog/introducing-vector-search-for-self-managed-modern-architecture).