Skip to content

Provider: OpenAI ​

"model": { "provider": "openai" }, with any knowledge (knowledge.retrieval; HelpPuff's own by default). See Models and providers.

This page describes the whole "backend": { "type": "openai" }, still used for what does not split: a stored prompt (promptId), a vector store HelpPuff fills for you, or another base URL. A vector store you fill yourself works with any model: "knowledge": { "retrieval": { "type": "openai-vector-store", "vectorStoreId": "vs_…" } }.

Answers with OpenAI's Responses API. Knowledge comes from an OpenAI vector store (File Search), or from HelpPuff's own knowledge base.

Set up ​

bash
npx @knowtific/helppuff init --url acme.com --backend openai --api-key "$OPENAI_API_KEY"
# or later:
helppuff secret set OPENAI_API_KEY
json
"backend": {
  "type": "openai",
  "model": "gpt-5-mini",
  "apiKey": { "env": "OPENAI_API_KEY" }
}
OptionDefault
modelgpt-5-miniAny Responses model
apiKey{ "env": "OPENAI_API_KEY" }By environment variable name
retrieval—"helppuff": answer from HelpPuff's knowledge base (crawled on your Cloudflare account) instead of a vector store
vectorStoreId—Filled in by helppuff knowledge sync
promptId—A stored prompt in the OpenAI dashboard; used instead of prompt.md
baseUrlOpenAI'sAnother Responses-compatible endpoint, e.g. Azure OpenAI

Knowledge: two ways ​

OpenAI File Search (the default for this backend). helppuff knowledge sync crawls your site (up to knowledge.website.maxPages, default 50) and uploads it, with knowledge.files, to a vector store it creates; the id is written to vectorStoreId. Run it again to refresh.

HelpPuff's knowledge base ("retrieval": "helppuff"). Your site is crawled into Vectorize and D1 on your Cloudflare account, exactly as with the default backend, with the same dashboard tools (choose pages, files, facts, test a question). OpenAI only writes the answer: the passages are added to its instructions, and the sources come back as links. This is usually the better choice: retrieval stays free and on your account, and switching models later changes nothing else.

bash
helppuff config set backend.retrieval helppuff && helppuff deploy

The prompt ​

prompt.md is sent as the instructions, versioned like every other backend. Or keep the prompt in OpenAI's dashboard as a stored prompt and set promptId. It is then edited and versioned there, and prompt.md is not used.

Notes ​

  • Multi-turn conversations use previous_response_id (OpenAI keeps the history, with store: true); the session holds only the id.
  • Rich messages (chips, cards, links) are function calls the model makes; they are rendered, never executed.
  • Replies stream.

MIT licensed. Runs in your own Cloudflare account.