-
Notifications
You must be signed in to change notification settings - Fork 74
(EAI-993): deprecate framework #752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
2e286c3
refactor GenerateRespose
0be9fe2
Clean up imports
2556bc2
consolidate generate user prompt to the legacy file
feee66a
update test config imports
f6fe862
Fix broken tests
0fc58bd
get started
ea40c6d
nominally working generate res w/ search
c3e69e3
small refactors
0345453
aint pretty but fully functional
a4144db
hacky if more functional
04076d2
more hack
8372bd3
tools
24d1cf7
functional if not pretty
40fa9d1
Add processing
31bd0a8
working tool calling
653aa59
making progress
9d68d50
keepin on
57e65a2
Clean config
aefa9ca
working e2e
c33f64e
update model version
c446756
Merge remote-tracking branch 'upstream/retrieval_tool_call' into EAI-990
728416f
Remove no longer used stuff
479ccb8
decouple search results for references and whats shown to model
cc8dd45
fix scripts build errs
e768dd6
fix broken tests
6be3e7b
deprecation
b6f9c7e
build out docs following last week convo
6f66f9e
clean up spec + contact
eb31415
Merge remote-tracking branch 'upstream/retrieval_tool_call' into EAI-993
84bdd7a
fix merge funk
5581398
docs updates
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Contact | ||
|
||
|
||
- MongoDB employees can reach out to the Education AI team on Slack at `#ask-education-ai` | ||
- External users can create an issue on the [mongodb/chatbot GitHub repo](https://github.com/mongodb/chatbot/issues/new) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Data Sources | ||
|
||
The MongoDB Knowledge Service uses [retrieval augmented generation](https://www.mongodb.com/resources/basics/artificial-intelligence/retrieval-augmented-generation) to answer user queries. | ||
|
||
All the data sources are public on the web. | ||
|
||
|
||
## Sources | ||
|
||
The Knowledge Service ingests the following data sources: | ||
|
||
- MongoDB Technical Documentation (https://mongodb.com/docs) | ||
- MongoDB Developer Center blog (https://mongodb.com/developer) | ||
- MongoDB University transcripts and landing pages (https://learn.mongodb.com) | ||
- Select marketing and sales pages from https://mongodb.com | ||
- Select external data sources: | ||
- Mongoose.js docs (https://mongoosejs.com) | ||
- Prisma MongoDB connector docs (https://www.prisma.io/docs/orm/overview/databases/mongodb) | ||
- Terraform MongoDB Provider docs (https://registry.terraform.io/providers/mongodb/mongodbatlas/latest) | ||
- WiredTiger docs (https://source.wiredtiger.com/) | ||
- Practical MongoDB Aggregations book (https://www.practical-mongodb-aggregations.com/) | ||
|
||
|
||
## Source Code | ||
|
||
You can see the source code for the data source ingestion here: https://github.com/mongodb/chatbot/tree/main/packages/ingest-mongodb-public |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Datasets | ||
|
||
The Education AI team maintains various datasets for use with AI systems. All datasets can be found in the [MongoDB Education AI HuggingFace](https://huggingface.co/mongodb-eai). | ||
|
||
## Content | ||
|
||
Content datasets can be useful for building RAG systems and training models. | ||
|
||
| Name | Type | Description | Visibility | Use Cases | Links | | ||
| :---- | :---- | :---- | :---- | :---- | :---- | | ||
| Public documentation | Long-form content | Markdown version of docs and developer center content. | Public | RAG, model training | https://huggingface.co/datasets/mongodb-eai/docs | | ||
| Code example dataset | Prompt-completion | Code examples extracted from the MongoDB docs and developer center with prompts that could be used to generate the code. | Public | Model fine-tuning | https://huggingface.co/datasets/mongodb-eai/code-example-prompts | | ||
|
||
## Benchmarks | ||
|
||
| Name | Type | Description | Visibility | | | ||
| :---- | :---- | :---- | :---- | :---- | | ||
| Natural language-to-Node.js Mongosh | Code generation | Assess how well LLMs generate `mongosh` code given a natural language prompt and information about a database. | External | https://huggingface.co/datasets/mongodb-eai/natural-language-to-mongosh | | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# MongoDB Chatbot Framework (deprecated) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you update the README, make sure to copy here too |
||
|
||
The team building the MongoDB Knowledge Service previous developed the MongoDB Chatbot Framework. This consisted of the npm packages: | ||
|
||
- `mongodb-chatbot-server` | ||
- `mongodb-chatbot-ui` (still used, refer to [UI](./ui.md)) | ||
- `mongodb-rag-core` | ||
- `mongodb-rag-ingest` | ||
|
||
The MongoDB Chatbot Framework in now deprecated. We will no longer be maintaining it. | ||
|
||
To learn more about the framework, refer to the the blog post [Build a Production-Ready, Intelligent Chatbot With the MongoDB Chatbot Framework](https://dev.to/mongodb/build-a-production-ready-intelligent-chatbot-with-the-mongodb-chatbot-framework-4dd). | ||
|
||
## Why Deprecate the MongoDB Chatbot Framework? | ||
|
||
Since we first launched the framework a year and a half ago, there's been a lot of progress in the TypeScript ecosystem for AI frameworks. We have decided that these frameworks remove the need for the MongoDB Chatbot Framework. Additionally, supporting the framework in addition to the Knowledge Service has been a maintenance burden on our small team. | ||
|
||
In particular, we've been very impressed by the [Vercel AI SDK](https://ai-sdk.dev/docs/introduction). It has a great developer experience, is well maintained, and a robust feature set. We've moved most of our LLM call logic to the AI SDK. You can refer to our [mongodb/chatbot repository](https://github.com/mongodb/chatbot) to see how we're using it. For a tutorial on building with MongoDB Atlas and the AI SDK, refer to the blog post [Building a Chat Application That Doesn't Forget!](https://dev.to/mongodb/building-a-chat-application-with-mongodb-memory-provider-for-vercel-ai-sdk-56ap) by MongoDB's own Jesse Hall. | ||
|
||
For building more agentic applications in TypeScript, [Mastra](https://mastra.ai/en/docs) (itself built on the AI SDK), [LangGraph.js](https://langchain-ai.github.io/langgraphjs/), and the [OpenAI Agents SDK](https://openai.github.io/openai-agents-js/) all seem to be solid options. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,77 +1,16 @@ | ||
--- | ||
title: Home | ||
description: Build full-stack intelligent chatbot applications using MongoDB and Atlas Vector Search. | ||
description: MongoDB Knowledge Service | ||
--- | ||
|
||
# MongoDB Chatbot Framework | ||
# MongoDB Knowledge Service | ||
|
||
:::warning[👷♂️ Work In Progress 👷♂️] | ||
The MongoDB Knowledge Service lets you learn about MongoDB using generative AI. | ||
|
||
The MongoDB Chatbot Framework is under active development | ||
and may undergo breaking changes. | ||
## Server | ||
|
||
We aim to keep the documentation up to date with the latest version. | ||
To call the MongoDB Knowledge Service API, refer to the [OpenAPI specification](/server/openapi/). | ||
|
||
::: | ||
## UI Library | ||
|
||
Build full-stack intelligent chatbot applications using MongoDB | ||
and [Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-overview/). | ||
|
||
The MongoDB Chatbot Framework is a set of libraries that you can use to build a | ||
production-ready chatbot application. The framework provides first-class support | ||
for retrieval augmented generation (RAG), and is extensible to support other | ||
patterns for building intelligent chatbots. | ||
|
||
The framework can take your chatbot application from prototype to production. | ||
|
||
You can quickly get an AI chatbot enhanced with your data up and running using | ||
the framework's built-in data ingest process, chatbot server, and web UI. As you | ||
refine your application and scale to more users, you can modify the chatbot's | ||
behavior to meet your needs. | ||
|
||
The framework is flexible and customizable. It supports multiple AI models and | ||
complex prompting strategies. | ||
|
||
## How It Works | ||
|
||
The MongoDB Chatbot Framework has the following core components: | ||
|
||
- [MongoDB Atlas](./mongodb.md): Database for the application that stores content and conversation. | ||
Indexes content using Atlas Vector Search. | ||
- [Ingest CLI](./ingest/configure.md): Configurable CLI application that you can use to ingest content into a MongoDB collection for use with Atlas Vector Search. | ||
- [Chatbot Server](./server/configure.md): Express.js server routes that you can use to build a chatbot application. | ||
- [Chatbot UI](./ui.md): React.js UI components that you can use to build a chatbot application. | ||
|
||
## Quick Start | ||
|
||
To get started using the MongoDB Chatbot Framework, refer to the [Quick Start](./quick-start.md) guide. | ||
|
||
## Design Principles | ||
|
||
The MongoDB Chatbot Framework is designed around the following principles: | ||
|
||
- Composability: You can use components of the chatbot framework independently of each other. | ||
For example, we have some users who are using only our ingestion CLI to ingest content into MongoDB Atlas, but use other tools to build their chatbot and UI. | ||
- Pluggability: You can plug in your own implementations of components. | ||
For example, you can plug in your own implementations of the `DataSource` interface | ||
to ingest content from different data sources. | ||
- Inversion of Control: The framework makes decisions about boilerplate aspects | ||
of intelligent chatbot systems so that you can focus on building logic unique to your application. | ||
|
||
## MongoDB Docs Chatbot | ||
|
||
This framework is used to build the MongoDB Docs Chatbot, a RAG chatbot that answers questions about the MongoDB documentation. You can try it out on [mongodb.com/docs](https://www.mongodb.com/docs/). | ||
|
||
Here's a reference architecture for how the MongoDB Chatbot Framework system works for the MongoDB Docs Chatbot. | ||
|
||
Data ingestion: | ||
|
||
 | ||
|
||
Chat Server: | ||
|
||
 | ||
|
||
### How We Built It | ||
|
||
- To learn more about how we built the chatbot, check out the MongoDB Developer Center blog post [Taking RAG to Production with the MongoDB Documentation AI Chatbot](https://www.mongodb.com/developer/products/atlas/taking-rag-to-production-documentation-ai-chatbot/). | ||
You can call the MongoDB Knowledge Service API from a web application using the `mongodb-chatbot-ui` npm package. The UI library provides a React component that you can use to build a chat interface. Learn more in the [UI documentation](./ui.md). |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add a little blurb as to why?