Short answer: for a property-management SaaS that must turn support tickets into structured, cited answers, use a portable model contract for embeddings and chat completions, keep retrieval in the application, and add reranking only after an evaluation shows that first-pass semantic search is losing relevant passages.

The least complex useful version is small: chunk approved support documents, generate embeddings for those chunks and the incoming question, retrieve the nearest matches, and ask a chat model to answer only from those passages. The application, not the model, owns the citation IDs and the final schema. That boundary matters more than an elaborate orchestration framework because a triage result can route a tenant's urgent maintenance report, expose account data to an agent, or become part of an audit trail.

I would choose a stable gateway contract once a team expects to change the model or vendor behind any of those steps. Direct provider calls remain the better choice when one provider is an intentional compliance dependency and portability has no operational value.

What should a SaaS semantic search RAG pipeline require from embeddings and chat completions?

Start with the output contract. A property-support triage record needs, at minimum, a category, a confidence value, an escalation decision, and citations whose identifiers can be resolved back to immutable document versions. The model may propose those values, but the backend must validate the structure, reject unknown categories, and confirm that every cited identifier came from the retrieved set. A fluent answer with a fabricated citation is a failed transaction.