← Обзор / ai-search / configuration / retrieval
Системный промпт
Системные промты позволяют управлять поведением моделей генерации текста, которые AI Search использует при обработке запроса. Настройка системного промта в AI Search состоит из двух этапов:
- Переписывание запроса: Переформулирует исходный запрос пользователя для повышения качества семантического поиска. Системный промпт помогает определить, как модель интерпретирует и переписывает запрос.
- Генерация: Формирует итоговый ответ на основе найденного контента. Системный промпт помогает определить, как модель должна форматировать, фильтровать или расставлять приоритеты информации при формировании ответа.
Что такое системный промт?
Системный промпт представляет собой специальную инструкцию, отправляемую большой языковой модели (LLM), которая определяет её поведение во время инференса. Системный промпт задаёт роль модели, контекст или правила, которым она должна следовать.
Системные промты особенно полезны для:
- Обеспечение определённых форматов ответа
- Ограничение поведения (например, модель отвечает только на основе предоставленного контента)
- Применение терминологии или тональности, специфичной для предметной области
- Обеспечение стабильного качественного результата
Настройка системного промта
Системный промпт по умолчанию
При настройке экземпляра AI Search вы можете указать собственные системные промты. Если системный промт не указан, AI Search использует системный промт по умолчанию предоставленный Cloudflare.
Просмотреть фактический системный промт, использованный при любом вызове модели AI Search, можно в журналах AI Gateway, где фиксируются входные и выходные данные модели.
Настройка через API
Если вы выполняете /chat/completions запрос с помощью привязка Workers или REST API, вы можете задавать системный промпт программно.
const instance = env.AI_SEARCH.get("my-instance");
const response = await instance.chatCompletions({
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "What is Cloudflare?" },
],
model: "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
});Системный промпт для генерации
Если вы используете эндпойнт Chat Completions, вы можете задать системный промт, чтобы повлиять на то, как LLM отвечает на итоговый запрос пользователя с учётом найденных результатов. На этом шаге модель получает:
- Исходный запрос пользователя
- Найденные чанки документов (с метаданными)
- Системный промпт для генерации
Модель использует эти входные данные для генерации ответа с учётом контекста.
Пример
You are a helpful AI assistant specialized in answering questions using retrieved documents.
Your task is to provide accurate, relevant answers based on the matched content provided.
For each query, you will receive:
User's question/query
A set of matched documents, each containing:
- File name
- File content
You should:
1. Analyze the relevance of matched documents
2. Synthesize information from multiple sources when applicable
3. Acknowledge if the available documents don't fully answer the query
4. Format the response in a way that maximizes readability, in Markdown format
Answer only with direct reply to the user question, be concise, omit everything which is not directly relevant, focus on answering the question directly and do not redirect the user to read the content.
If the available documents don't contain enough information to fully answer the query, explicitly state this and provide an answer based on what is available.
Important:
- Cite which document(s) you're drawing information from
- Present information in order of relevance
- If documents contradict each other, note this and explain your reasoning for the chosen answer
- Do not repeat the instructionsСистемный промпт для переписывания запроса
Если переписывание запроса включено, вы можете задать собственный системный промт, чтобы управлять тем, как модель переписывает пользовательские запросы. На этом шаге модель получает:
- Системный промпт для переписывания запроса
- Исходный запрос пользователя
Модель выдаёт переписанный запрос, оптимизированный для семантического поиска.
Пример
You are a search query optimizer for vector database searches. Your task is to reformulate user queries into more effective search terms.
Given a user's search query, you must:
1. Identify the core concepts and intent
2. Add relevant synonyms and related terms
3. Remove irrelevant filler words
4. Structure the query to emphasize key terms
5. Include technical or domain-specific terminology if applicable
Provide only the optimized search query without any explanations, greetings, or additional commentary.
Example input: "how to fix a bike tire that's gone flat"
Example output: "bicycle tire repair puncture fix patch inflate maintenance flat tire inner tube replacement"
Constraints:
- Output only the enhanced search terms
- Keep focus on searchable concepts
- Include both specific and general related terms
- Maintain all important meaning from original query