## Multi-Instance Chat Completions `client.AISearch.Namespaces.ChatCompletions(ctx, name, params) (*NamespaceChatCompletionsResponse, error)` **post** `/accounts/{account_id}/ai-search/namespaces/{name}/chat/completions` Performs a chat completion request against multiple AI Search instances in parallel, merging retrieved content as context for generating a response. ### Parameters - `name string` - `params NamespaceChatCompletionsParams` - `AccountID param.Field[string]` Path param - `AISearchOptions param.Field[NamespaceChatCompletionsParamsAISearchOptions]` Body param - `InstanceIDs []string` - `Cache NamespaceChatCompletionsParamsAISearchOptionsCache` - `CacheThreshold NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThreshold` - `const NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThresholdSuperStrictMatch NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "super_strict_match"` - `const NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThresholdCloseEnough NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "close_enough"` - `const NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThresholdFlexibleFriend NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "flexible_friend"` - `const NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThresholdAnythingGoes NamespaceChatCompletionsParamsAISearchOptionsCacheCacheThreshold = "anything_goes"` - `Enabled bool` - `QueryRewrite NamespaceChatCompletionsParamsAISearchOptionsQueryRewrite` - `Enabled bool` - `Model NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_3_70bInstructFp8Fast NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfZaiOrgGlm4_7Flash NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/zai-org/glm-4.7-flash"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_1_8bInstructFast NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama3_1_8bInstructFp8 NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMetaLlama4Scout17b16eInstruct NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfQwenQwen3_30bA3bFp8 NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfDeepseekAIDeepseekR1DistillQwen32b NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMoonshotaiKimiK2Instruct NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/moonshotai/kimi-k2-instruct"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfGoogleGemma3_12bIt NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/google/gemma-3-12b-it"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfGoogleGemma4_26bA4bIt NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/google/gemma-4-26b-a4b-it"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCfMoonshotaiKimiK2_5 NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "@cf/moonshotai/kimi-k2.5"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaude3_7Sonnet NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-3-7-sonnet"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaudeSonnet4 NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-sonnet-4"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaudeOpus4 NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-opus-4"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelAnthropicClaude3_5Haiku NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "anthropic/claude-3-5-haiku"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasQwen3_235bA22bInstruct NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasQwen3_235bA22bThinking NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasLlama3_3_70b NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-3.3-70b"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasLlama4Maverick17b128eInstruct NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasLlama4Scout17b16eInstruct NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelCerebrasGptOSs120b NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "cerebras/gpt-oss-120b"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelGoogleAIStudioGemini2_5Flash NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "google-ai-studio/gemini-2.5-flash"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelGoogleAIStudioGemini2_5Pro NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "google-ai-studio/gemini-2.5-pro"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelGrokGrok4 NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "grok/grok-4"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelGroqLlama3_3_70bVersatile NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "groq/llama-3.3-70b-versatile"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelGroqLlama3_1_8bInstant NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "groq/llama-3.1-8b-instant"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelOpenAIGpt5 NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelOpenAIGpt5Mini NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5-mini"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelOpenAIGpt5Nano NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = "openai/gpt-5-nano"` - `const NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModelEmpty NamespaceChatCompletionsParamsAISearchOptionsQueryRewriteModel = ""` - `RewritePrompt string` - `Reranking NamespaceChatCompletionsParamsAISearchOptionsReranking` - `Enabled bool` - `MatchThreshold float64` - `Model NamespaceChatCompletionsParamsAISearchOptionsRerankingModel` - `const NamespaceChatCompletionsParamsAISearchOptionsRerankingModelCfBaaiBgeRerankerBase NamespaceChatCompletionsParamsAISearchOptionsRerankingModel = "@cf/baai/bge-reranker-base"` - `const NamespaceChatCompletionsParamsAISearchOptionsRerankingModelEmpty NamespaceChatCompletionsParamsAISearchOptionsRerankingModel = ""` - `Retrieval NamespaceChatCompletionsParamsAISearchOptionsRetrieval` - `BoostBy []NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostBy` Metadata fields to boost search results by. Overrides the instance-level boost_by config. Direction defaults to 'asc' for numeric/datetime fields, 'exists' for text/boolean fields. Fields must match 'timestamp' or a defined custom_metadata field. - `Field string` Metadata field name to boost by. Use 'timestamp' for document freshness, or any custom_metadata field. Numeric and datetime fields support asc/desc directions; text/boolean fields support exists/not_exists. - `Direction NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection` Boost direction. 'desc' = higher values rank higher (e.g. newer timestamps). 'asc' = lower values rank higher. 'exists' = boost chunks that have the field. 'not_exists' = boost chunks that lack the field. Optional ��� defaults to 'asc' for numeric/datetime fields, 'exists' for text/boolean fields. - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionAsc NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "asc"` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionDesc NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "desc"` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionExists NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "exists"` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirectionNotExists NamespaceChatCompletionsParamsAISearchOptionsRetrievalBoostByDirection = "not_exists"` - `ContextExpansion int64` - `Filters map[string, unknown]` - `FusionMethod NamespaceChatCompletionsParamsAISearchOptionsRetrievalFusionMethod` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalFusionMethodMax NamespaceChatCompletionsParamsAISearchOptionsRetrievalFusionMethod = "max"` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalFusionMethodRrf NamespaceChatCompletionsParamsAISearchOptionsRetrievalFusionMethod = "rrf"` - `KeywordMatchMode NamespaceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchMode` Controls which documents are candidates for BM25 scoring. 'and' restricts candidates to documents containing all query terms; 'or' includes any document containing at least one term, ranked by BM25 relevance. Defaults to 'and'. - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchModeAnd NamespaceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchMode = "and"` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchModeOr NamespaceChatCompletionsParamsAISearchOptionsRetrievalKeywordMatchMode = "or"` - `MatchThreshold float64` - `MaxNumResults int64` - `RetrievalType NamespaceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalRetrievalTypeVector NamespaceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType = "vector"` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalRetrievalTypeKeyword NamespaceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType = "keyword"` - `const NamespaceChatCompletionsParamsAISearchOptionsRetrievalRetrievalTypeHybrid NamespaceChatCompletionsParamsAISearchOptionsRetrievalRetrievalType = "hybrid"` - `ReturnOnFailure bool` - `Messages param.Field[[]NamespaceChatCompletionsParamsMessage]` Body param - `Content string` - `Role NamespaceChatCompletionsParamsMessagesRole` - `const NamespaceChatCompletionsParamsMessagesRoleSystem NamespaceChatCompletionsParamsMessagesRole = "system"` - `const NamespaceChatCompletionsParamsMessagesRoleDeveloper NamespaceChatCompletionsParamsMessagesRole = "developer"` - `const NamespaceChatCompletionsParamsMessagesRoleUser NamespaceChatCompletionsParamsMessagesRole = "user"` - `const NamespaceChatCompletionsParamsMessagesRoleAssistant NamespaceChatCompletionsParamsMessagesRole = "assistant"` - `const NamespaceChatCompletionsParamsMessagesRoleTool NamespaceChatCompletionsParamsMessagesRole = "tool"` - `Model param.Field[NamespaceChatCompletionsParamsModel]` Body param - `const NamespaceChatCompletionsParamsModelCfMetaLlama3_3_70bInstructFp8Fast NamespaceChatCompletionsParamsModel = "@cf/meta/llama-3.3-70b-instruct-fp8-fast"` - `const NamespaceChatCompletionsParamsModelCfZaiOrgGlm4_7Flash NamespaceChatCompletionsParamsModel = "@cf/zai-org/glm-4.7-flash"` - `const NamespaceChatCompletionsParamsModelCfMetaLlama3_1_8bInstructFast NamespaceChatCompletionsParamsModel = "@cf/meta/llama-3.1-8b-instruct-fast"` - `const NamespaceChatCompletionsParamsModelCfMetaLlama3_1_8bInstructFp8 NamespaceChatCompletionsParamsModel = "@cf/meta/llama-3.1-8b-instruct-fp8"` - `const NamespaceChatCompletionsParamsModelCfMetaLlama4Scout17b16eInstruct NamespaceChatCompletionsParamsModel = "@cf/meta/llama-4-scout-17b-16e-instruct"` - `const NamespaceChatCompletionsParamsModelCfQwenQwen3_30bA3bFp8 NamespaceChatCompletionsParamsModel = "@cf/qwen/qwen3-30b-a3b-fp8"` - `const NamespaceChatCompletionsParamsModelCfDeepseekAIDeepseekR1DistillQwen32b NamespaceChatCompletionsParamsModel = "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b"` - `const NamespaceChatCompletionsParamsModelCfMoonshotaiKimiK2Instruct NamespaceChatCompletionsParamsModel = "@cf/moonshotai/kimi-k2-instruct"` - `const NamespaceChatCompletionsParamsModelCfGoogleGemma3_12bIt NamespaceChatCompletionsParamsModel = "@cf/google/gemma-3-12b-it"` - `const NamespaceChatCompletionsParamsModelCfGoogleGemma4_26bA4bIt NamespaceChatCompletionsParamsModel = "@cf/google/gemma-4-26b-a4b-it"` - `const NamespaceChatCompletionsParamsModelCfMoonshotaiKimiK2_5 NamespaceChatCompletionsParamsModel = "@cf/moonshotai/kimi-k2.5"` - `const NamespaceChatCompletionsParamsModelAnthropicClaude3_7Sonnet NamespaceChatCompletionsParamsModel = "anthropic/claude-3-7-sonnet"` - `const NamespaceChatCompletionsParamsModelAnthropicClaudeSonnet4 NamespaceChatCompletionsParamsModel = "anthropic/claude-sonnet-4"` - `const NamespaceChatCompletionsParamsModelAnthropicClaudeOpus4 NamespaceChatCompletionsParamsModel = "anthropic/claude-opus-4"` - `const NamespaceChatCompletionsParamsModelAnthropicClaude3_5Haiku NamespaceChatCompletionsParamsModel = "anthropic/claude-3-5-haiku"` - `const NamespaceChatCompletionsParamsModelCerebrasQwen3_235bA22bInstruct NamespaceChatCompletionsParamsModel = "cerebras/qwen-3-235b-a22b-instruct"` - `const NamespaceChatCompletionsParamsModelCerebrasQwen3_235bA22bThinking NamespaceChatCompletionsParamsModel = "cerebras/qwen-3-235b-a22b-thinking"` - `const NamespaceChatCompletionsParamsModelCerebrasLlama3_3_70b NamespaceChatCompletionsParamsModel = "cerebras/llama-3.3-70b"` - `const NamespaceChatCompletionsParamsModelCerebrasLlama4Maverick17b128eInstruct NamespaceChatCompletionsParamsModel = "cerebras/llama-4-maverick-17b-128e-instruct"` - `const NamespaceChatCompletionsParamsModelCerebrasLlama4Scout17b16eInstruct NamespaceChatCompletionsParamsModel = "cerebras/llama-4-scout-17b-16e-instruct"` - `const NamespaceChatCompletionsParamsModelCerebrasGptOSs120b NamespaceChatCompletionsParamsModel = "cerebras/gpt-oss-120b"` - `const NamespaceChatCompletionsParamsModelGoogleAIStudioGemini2_5Flash NamespaceChatCompletionsParamsModel = "google-ai-studio/gemini-2.5-flash"` - `const NamespaceChatCompletionsParamsModelGoogleAIStudioGemini2_5Pro NamespaceChatCompletionsParamsModel = "google-ai-studio/gemini-2.5-pro"` - `const NamespaceChatCompletionsParamsModelGrokGrok4 NamespaceChatCompletionsParamsModel = "grok/grok-4"` - `const NamespaceChatCompletionsParamsModelGroqLlama3_3_70bVersatile NamespaceChatCompletionsParamsModel = "groq/llama-3.3-70b-versatile"` - `const NamespaceChatCompletionsParamsModelGroqLlama3_1_8bInstant NamespaceChatCompletionsParamsModel = "groq/llama-3.1-8b-instant"` - `const NamespaceChatCompletionsParamsModelOpenAIGpt5 NamespaceChatCompletionsParamsModel = "openai/gpt-5"` - `const NamespaceChatCompletionsParamsModelOpenAIGpt5Mini NamespaceChatCompletionsParamsModel = "openai/gpt-5-mini"` - `const NamespaceChatCompletionsParamsModelOpenAIGpt5Nano NamespaceChatCompletionsParamsModel = "openai/gpt-5-nano"` - `const NamespaceChatCompletionsParamsModelEmpty NamespaceChatCompletionsParamsModel = ""` - `Stream param.Field[bool]` Body param ### Returns - `type NamespaceChatCompletionsResponse struct{…}` - `Choices []NamespaceChatCompletionsResponseChoice` - `Message NamespaceChatCompletionsResponseChoicesMessage` - `Content string` - `Role NamespaceChatCompletionsResponseChoicesMessageRole` - `const NamespaceChatCompletionsResponseChoicesMessageRoleSystem NamespaceChatCompletionsResponseChoicesMessageRole = "system"` - `const NamespaceChatCompletionsResponseChoicesMessageRoleDeveloper NamespaceChatCompletionsResponseChoicesMessageRole = "developer"` - `const NamespaceChatCompletionsResponseChoicesMessageRoleUser NamespaceChatCompletionsResponseChoicesMessageRole = "user"` - `const NamespaceChatCompletionsResponseChoicesMessageRoleAssistant NamespaceChatCompletionsResponseChoicesMessageRole = "assistant"` - `const NamespaceChatCompletionsResponseChoicesMessageRoleTool NamespaceChatCompletionsResponseChoicesMessageRole = "tool"` - `Index int64` - `Chunks []NamespaceChatCompletionsResponseChunk` - `ID string` - `InstanceID string` - `Score float64` - `Text string` - `Type string` - `Item NamespaceChatCompletionsResponseChunksItem` - `Key string` - `Metadata map[string, unknown]` - `Timestamp float64` - `ScoringDetails NamespaceChatCompletionsResponseChunksScoringDetails` - `FusionMethod NamespaceChatCompletionsResponseChunksScoringDetailsFusionMethod` - `const NamespaceChatCompletionsResponseChunksScoringDetailsFusionMethodRrf NamespaceChatCompletionsResponseChunksScoringDetailsFusionMethod = "rrf"` - `const NamespaceChatCompletionsResponseChunksScoringDetailsFusionMethodMax NamespaceChatCompletionsResponseChunksScoringDetailsFusionMethod = "max"` - `KeywordRank float64` - `KeywordScore float64` - `RerankingScore float64` - `VectorRank float64` - `VectorScore float64` - `ID string` - `Errors []NamespaceChatCompletionsResponseError` - `InstanceID string` - `Message string` - `Model string` - `Object string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai_search" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AISearch.Namespaces.ChatCompletions( context.TODO(), "my-namespace", ai_search.NamespaceChatCompletionsParams{ AccountID: cloudflare.F("c3dc5f0b34a14ff8e1b3ec04895e1b22"), AISearchOptions: cloudflare.F(ai_search.NamespaceChatCompletionsParamsAISearchOptions{ InstanceIDs: cloudflare.F([]string{"my-ai-search"}), }), Messages: cloudflare.F([]ai_search.NamespaceChatCompletionsParamsMessage{ai_search.NamespaceChatCompletionsParamsMessage{ Content: cloudflare.F("content"), Role: cloudflare.F(ai_search.NamespaceChatCompletionsParamsMessagesRoleSystem), }}), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.ID) } ``` #### Response ```json { "choices": [ { "message": { "content": "content", "role": "system" }, "index": 0 } ], "chunks": [ { "id": "id", "instance_id": "instance_id", "score": 0, "text": "text", "type": "type", "item": { "key": "key", "metadata": { "foo": "bar" }, "timestamp": 0 }, "scoring_details": { "fusion_method": "rrf", "keyword_rank": 0, "keyword_score": 0, "reranking_score": 0, "vector_rank": 0, "vector_score": 0 } } ], "id": "id", "errors": [ { "instance_id": "instance_id", "message": "message" } ], "model": "model", "object": "object" } ```