= AI on Ulabase :nav-title: Overview :description: What the AI group of a service gives you: your own provider keys, vectors computed as you write, semantic search over your collections with or without an index, and agents that use your data over MCP. :keywords: AI backend, vector search, embeddings, semantic search, RAG, MCP, AI agent, MongoDB vector index, $vectorScan :group: AI :order: 10 A service on Ulabase can compute a vector for every document it stores, search by meaning, reorder the results with a reranking model, and let an AI agent use all of it over MCP. The models are the ones you choose, called with your own keys; the vectors stay in MongoDB, next to the data they describe. Nothing leaves your service except the calls to your provider. The **AI** group of the sidebar reads in the order you meet its pages: the key, the vectors, the files, the agent, the product. [cols="1,3"] |=== | Page | What it is for | xref:ai-keys.adoc[AI Keys] | The providers the service embeds and reranks with, each with your key and its default models. Everything else in this group runs on what you set here. | xref:auto-embeddings.adoc[Auto Embeddings] | A rule per collection: every document written gets a vector for one of its fields, computed by your provider. Under the rule, what is still missing for a semantic search, each with the button that opens the page owning it. | xref:auto-chunking.adoc[Auto Chunking] | Rules on a file bucket: every file uploaded that matches one is split into text chunks, in a collection that embeds them and that you search like any other. | xref:mcp.adoc[MCP] | Let an agent such as Claude use your collections, aggregations, change streams and GraphQL apps, within the permissions you defined. | bySophia.ai | A product of its own, built end to end on Ulabase: your documents answering questions in conversation, with the sources cited. Sold and billed apart; the page in the console says what it is, https://bysophia.ai[bysophia.ai] is where it starts. |=== == From a field to a semantic search A key set under **AI Keys** makes the service able to embed text. A rule under **Auto Embeddings** tells a collection which field to embed: every document written from then on gets its vector. An aggregation with `$vectorize` and `$vectorScan` turns a question into a vector and returns the closest documents, with no index at all; a `rerank` block hands the best of them to the reranking model. Published on MCP, that aggregation is a search an agent can run. When the collection grows, a vector index under **Indexes** and `$vectorSearch` in place of `$vectorScan` make the search fast. Three steps, then: a key, a rule, a search. **Auto Embeddings** walks you through them on `catalog`, the collection of the ecommerce starter, so what MCP publishes, what the search finds and what the shop sells are the same products. Each step is a click, and the same calls are shown by hand in curl, HTTPie, JavaScript and Python. == What it costs The provider bills the calls to your account: one embedding per document written and per question asked, one reranking per search that asks for it. Ulabase adds nothing on top. Searches run on your service, within your plan; `$vectorScan` reads the vectors it compares, so an index pays off as the collection grows. == Where it applies The AI features run on **Free** and **Shared** services. A **Dedicated** service brings its own MongoDB Atlas, and vector search there is Atlas's own: ask us and we set it up with you.