Skip to content

Commit b745741

Browse files
authored
(EAI-473) Ingest OM/CM Docs (#492)
1 parent b66ff57 commit b745741

File tree

3 files changed

+344
-254
lines changed

3 files changed

+344
-254
lines changed

packages/chatbot-server-mongodb-public/evalCases/conversations.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,3 +1315,78 @@
13151315
- atlas_cli
13161316
- hallucination
13171317
- user_feedback
1318+
# Ops Manager / Cloud Manager FAQ
1319+
- name: should understand OM/CM alerts
1320+
messages:
1321+
- content: Is there a way to generate an Ops Manager alert for replica sets with an even number of nodes?
1322+
role: user
1323+
expectation: >
1324+
The ASSISTANT should say that Ops Manager does not provide a built-in alert condition specifically for detecting replica sets with an even number of voting members. However, the user can create a custom alert condition to monitor the number of voting members in a replica set.
1325+
tags:
1326+
- ops-manager
1327+
- cloud-manager
1328+
- alerts
1329+
- name: should understand OM/CM user account settings
1330+
messages:
1331+
- content: Can I reset my password in ops manager?
1332+
role: user
1333+
expectation: >
1334+
The ASSISTANT should suggest editing the password in the profile section of the user's account settings.
1335+
tags:
1336+
- ops-manager
1337+
- cloud-manager
1338+
- name: should understand OM/CM organization & project user management
1339+
messages:
1340+
- content: How do I add a user to my organization or project in ops manager?
1341+
role: user
1342+
expectation: >
1343+
The ASSISTANT should mention user invitations, emails, and required
1344+
permissions. It should note that the inviter must have the Project Owner
1345+
role for project invitations or the Organization Owner role for organization
1346+
invitations.
1347+
tags:
1348+
- ops-manager
1349+
- cloud-manager
1350+
- name: should understand OM/CM one-time passcodes
1351+
messages:
1352+
- content: Can I configure multiple Google Authenticator apps to use the same account in ops manager?
1353+
role: user
1354+
expectation: >
1355+
The ASSISTANT should say that the user can configure multiple Google Authenticator apps to use the same account by selecting the /Can't scan the barcode\?/i option during the procedure to Configure Two-Factor Authentication.
1356+
tags:
1357+
- ops-manager
1358+
- cloud-manager
1359+
- name: should understand OM/CM project administration
1360+
messages:
1361+
- content: How do I delete my Ops Manager project?
1362+
role: user
1363+
- content: |
1364+
A user with the Project Owner access for the projects can close a project.
1365+
1366+
You can delete a project from the project's Settings page. For details, see Delete One Project.
1367+
1368+
The operation cannot be undone.
1369+
role: assistant
1370+
expectation: >
1371+
The ASSISTANT should say that a user with the Project Owner role can delete a project from the Projects list in the Ops Manager UI.
1372+
tags:
1373+
- ops-manager
1374+
- cloud-manager
1375+
- name: should understand OM/CM agents and plans
1376+
messages:
1377+
- content: How does Ops Manager manage MongoDB deployments?
1378+
role: user
1379+
expectation: >
1380+
The ASSISTANT should describe how Ops Manager uses automation agents that follow plans to manage MongoDB deployments.
1381+
tags:
1382+
- ops-manager
1383+
- cloud-manager
1384+
- name: should understand OM/CM maintenance processes
1385+
messages:
1386+
- content: How does Ops Manager perform maintenance on cluster nodes?
1387+
role: user
1388+
expectation: >
1389+
The ASSISTANT should say that Ops Manager uses rolling restarts to perform maintenance on cluster nodes.
1390+
tags:
1391+
- ops-manager
1392+
- cloud-manager

packages/chatbot-server-mongodb-public/src/conversations.eval.ts

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -119,42 +119,45 @@ Eval("mongodb-chatbot-conversations", {
119119
const faqCases = getConversationsEvalCasesFromYaml(
120120
fs.readFileSync(path.resolve(basePath, "faq_conversations.yml"), "utf8")
121121
);
122-
return [...miscCases, ...faqCases].map((evalCase) => {
123-
const prevConversationMessages = evalCase.messages.slice(0, -1).map(
124-
(m) =>
125-
({
126-
content: m.content,
127-
role: m.role,
128-
id: new ObjectId(),
129-
createdAt: new Date(),
130-
} satisfies Message)
131-
);
132-
prevConversationMessages.unshift({
133-
...systemPrompt,
134-
id: new ObjectId(),
135-
createdAt: new Date(),
136-
} satisfies Message);
137-
const latestMessageText = evalCase.messages.at(-1)?.content;
138-
assert(latestMessageText, "No latest message text found");
139-
return {
140-
name: evalCase.name,
141-
tags: evalCase.tags as MongoDbTag[],
142-
input: {
143-
latestMessageText,
144-
previousConversation: {
145-
messages: prevConversationMessages,
146-
_id: new ObjectId(),
147-
createdAt: new Date(),
122+
return [...miscCases, ...faqCases]
123+
.filter((evalCase) => evalCase.tags?.includes("ops-manager"))
124+
.map((evalCase) => {
125+
const prevConversationMessages = evalCase.messages.slice(0, -1).map(
126+
(m) =>
127+
({
128+
content: m.content,
129+
role: m.role,
130+
id: new ObjectId(),
131+
createdAt: new Date(),
132+
} satisfies Message)
133+
);
134+
prevConversationMessages.unshift({
135+
...systemPrompt,
136+
id: new ObjectId(),
137+
createdAt: new Date(),
138+
} satisfies Message);
139+
const latestMessageText = evalCase.messages.at(-1)?.content;
140+
assert(latestMessageText, "No latest message text found");
141+
return {
142+
name: evalCase.name,
143+
tags: evalCase.tags as MongoDbTag[],
144+
input: {
145+
latestMessageText,
146+
previousConversation: {
147+
messages: prevConversationMessages,
148+
_id: new ObjectId(),
149+
createdAt: new Date(),
150+
},
148151
},
149-
},
150-
expected: null,
151-
metadata: null,
152-
} satisfies ConversationEvalCase;
153-
});
152+
expected: null,
153+
metadata: null,
154+
} satisfies ConversationEvalCase;
155+
});
154156
},
155-
experimentName: "mongodb-chatbot-latest",
157+
experimentName: "mongodb-chatbot-omcm-latest",
156158
metadata: {
157-
description: "Evaluates how well the MongoDB AI Chatbot RAG pipeline works",
159+
description:
160+
"Evaluates how well the MongoDB AI Chatbot RAG pipeline works for Ops/Cloud Manager questions",
158161
},
159162
maxConcurrency: 2,
160163
async task(input): Promise<ConversationTaskOutput> {

0 commit comments

Comments
 (0)