Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion snooty.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ cifs = ":abbr:`CIFS (Common Internet File System)`"
cps = ":abbr:`CPS (Cloud Provider Snapshots)`"
cmk = ":abbr:`CMK (customer master key)`"
compass = "MongoDB Compass"
copilot = "MongoDB GitHub Copilot Participant"
copilot = "MongoDB Extension for Github Copilot"
data-lakes = "Data Lakes"
data-lake = "Data Lake"
datadog = "`Datadog <https://www.datadoghq.com/>`__"
Expand Down
78 changes: 78 additions & 0 deletions source/copilot-docs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
.. _vsce-copilot-docs:

==============
/docs Command
==============

.. default-domain:: mongodb

.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: singlecol

The ``/docs`` command provides MongoDB-specific information,
supplemented by links to MongoDB Documentation. The |copilot| uses
Retrival-Augmented Generation (RAG) to generate responses based on the
latest version of MongoDB Documentation.

Examples
--------

The rest of this page illustrates example use cases for the ``/docs``
command:

Instructional Questions
~~~~~~~~~~~~~~~~~~~~~~~

You can use the ``/docs`` command to ask how to perform specific
operations. The following prompt asks for information on creating an
index:

.. code-block:: none
:copyable: false

@MongoDB /docs How do I create an index?

The |copilot| first provides the following MongoDB documentation:

- `Create an Index <https://www.mongodb.com/docs/manual/core/indexes/create-index/>`__
- `createIndexes <https://mongodb.com/docs/manual/reference/command/createIndexes/>`__
- `db.collection.createIndex() <https://mongodb.com/docs/manual/reference/method/db.collection.createIndex/>`__
- `Partial Indexes <https://www.mongodb.com/docs/manual/core/index-partial/>`_
- `db.collection.createIndexes() <https://www.mongodb.com/docs/manual/reference/method/db.collection.createIndexes/>`_

The generated response also contains information about creating an index
and code examples:

.. figure:: /images/copilot-docs.png
:figwidth: 700px
:alt: Screenshot of copilot providing information on creating an index

Strategic Questions
~~~~~~~~~~~~~~~~~~~

You can also use the ``/docs`` command to ask for operation
recommendations. The following prompt asks the |copilot| for a
recommendation on the best way to perform semantic search:

.. code-block:: none
:copyable: false

@MongoDB /docs what is the best way to perform semantic search on my
data?

The generated response recommends using Atlas Vector Search and provides
the following links to MongoDB documentation:

- `Atlas Vector Search Overview <https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-overview/>`_
- `How to Do Semantic Search in MongoDB Using Atlas Vector Search <https://www.mongodb.com/developer/products/atlas/semantic-search-mongodb-atlas-vector-search/>`_
- `How to Perform Semantic Search Against Data in Your Atlas Cluster <https://www.mongodb.com/docs/atlas/atlas-vector-search/tutorials/vector-search-tutorial/>`__

The response also includes steps to get started with Atlas Vector
Search, with a code example:

.. figure:: /images/copilot-docs2.png
:figwidth: 700px
:alt: Screenshot of copilot providing information on using vector search
16 changes: 8 additions & 8 deletions source/copilot-query.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Consider the ``users`` collection in the `Mflix Sample Database
<https://www.mongodb.com/docs/atlas/sample-data/sample-mflix/#sample_mflix.users>`__.
Each document in the collection has the following structure:

.. code-block:: javascript
.. code-block:: none
:copyable: false

{
Expand All @@ -48,7 +48,7 @@ collection, you can ask the GitHub Copilot chat to generate a query that
finds the document in the ``users`` collection that has the ``name``
value of ``Kayden Washington``.

.. code-block:: javascript
.. code-block:: none
:copyable: false

@MongoDB /query In the sample_mflix database, find a document in the
Expand All @@ -57,7 +57,7 @@ value of ``Kayden Washington``.
The GitHub Copilot Chat uses the |copilot| to
generate the following query using knowledge of your database schema:

.. code-block:: javascript
.. code-block:: none

use(`sample_mflix`);
db.getCollection('users').findOne({ name: 'Kayden Washington' });
Expand All @@ -77,7 +77,7 @@ the ``users`` collection in the `Mflix Sample Database
<https://www.mongodb.com/docs/atlas/sample-data/sample-mflix/#sample_mflix.users>`__.
Each document in the collection has the following structure:

.. code-block:: javascript
.. code-block:: none
:copyable: false

{
Expand All @@ -92,7 +92,7 @@ Each document in the collection has the following structure:
Once you connect to the deployment that contains the ``users``
collection, you can ask the GitHub Copilot chat to generate an aggregation pipeline.

.. code-block:: javascript
.. code-block:: none
:copyable: false

@MongoDB /query Generate an aggregation pipeline on the users
Expand All @@ -101,7 +101,7 @@ collection, you can ask the GitHub Copilot chat to generate an aggregation pipel

The |copilot| generates the following aggregation pipeline:

.. code-block:: javascript
.. code-block:: none

use('sample_mflix');
db.getCollection('users').aggregate([
Expand All @@ -118,7 +118,7 @@ directly or open the pipeline in a playground.

You can also iteratively build on your aggregation pipeline:

.. code-block:: javascript
.. code-block:: none
:copyable: false

@MongoDB /query Add a stage to my pipeline that adds a username field
Expand All @@ -127,7 +127,7 @@ You can also iteratively build on your aggregation pipeline:

The |copilot| returns the following aggregation pipeline:

.. code-block:: javascript
.. code-block:: none

use('sample_mflix');
db.getCollection('users').aggregate([
Expand Down
17 changes: 12 additions & 5 deletions source/copilot.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@

|vsce-full| includes the |copilot| to assist in using `GitHub Copilot
<https://github.com/features/copilot>`__ with your MongoDB deployments.
Through GitHub Copilot's chat feature, users with |vsce| can interact
with their MongoDB clusters and generate code with MongoDB
domain-specific knowledge on top of GitHub Copilot's LLM. The |copilot|
can also answer questions about your database collection schema and
provide links to specific MongoDB documentation.
Through GitHub Copilot's chat feature, users with |vsce| can learn about
MongoDB, interact with their MongoDB clusters, and generate code with
MongoDB domain-specific knowledge on top of GitHub Copilot's LLM. The
|copilot| can also answer questions about your database collection

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One general comment @ltran-mdb2 – could we switch the wording from MongoDB Github Copilot Participant to MongoDB Extension for Github Copilot? I just confirmed with the team at VS Code that participant isn't the proper branding (more of an implementation detail) and they want us to go with "MongoDB Extension" instead. Sorry for the change in wording!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

schema and provide links to specific MongoDB documentation.

The |copilot| includes MongoDB-specific
commands to assist in interacting with your deployment.
Expand All @@ -32,10 +32,17 @@ Commands
The ``/query`` command assists in generating queries from a natural
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit above this, in the paragraph before, we have written:

Through GitHub Copilot's chat feature, users with |vsce| can interact
with their MongoDB clusters and generate code with MongoDB
domain-specific knowledge on top of GitHub Copilot's LLM.

Should we add something about the MongoDB documentation chatbot there as well?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the sake of simplicity, I would recommend only mentioning the documentation chatbot on the /docs page

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did add a mention of learning about MongoDB in this section (referring to the /docs command)

language against a connected MongoDB cluster.

:ref:`/docs <vsce-copilot-docs>`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The ``/docs`` command provides links to MongoDB documentation to
supplement generated information.

.. toctree::
:titlesonly:

/query </copilot-query>
/docs </copilot-docs>
AI & Data Usage </ai-data-usage>


Binary file added source/images/copilot-docs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/copilot-docs2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading