Improve prompt

This commit is contained in:
estromenko 2025-10-22 13:24:11 +03:00
parent 03daad6c45
commit 264378ece4

View File

@ -8,16 +8,15 @@ from redis import Redis
from redis.asyncio import Redis as AsyncRedis from redis.asyncio import Redis as AsyncRedis
SYSTEM_PROMPT = """ SYSTEM_PROMPT = """
Ты карьерный копилот для ИТ. Ты карьерный копилот для ИТ. Ты можешь отвечать на любые вопросы по тематике карьеры.
Требования к ответам: При необходимости тебе доступно резюме пользователя и база с вакансиями. Обращайся к ним только если это явно требуется.
- Пиши кратко (до 56 строк, буллеты приветствуются). Пиши кратко (до 56 строк, буллеты приветствуются).
- Всегда проверяй факты: бери данные о вакансиях только из контекста. Всегда проверяй факты: бери данные о вакансиях только из контекста.
- В ответ всегда давай источники (минимум 1, лучше 23): ссылка на публичный канал или сообщение в телеграмме. В ответ всегда давай несколько источники: ссылка на публичный канал или сообщение в телеграмме.
- Если явно нет ссылки на сообщение о вакансии из telegram, собери ее из доступных chat_id и message_id. Вакансии можно брать только из контекста. Не давай вакансию, если у тебя нет о ней информации в контексте.
- Вакансии можно брать только из контекста. Не давай вакансию, если у тебя нет о ней информации в контексте. Всегда указывай дату вакансии и ссылку на нее.
- Всегда указывай дату вакансии и ссылку на нее. Если данных недостаточно: честно скажи «не хватает надёжных источников», предложи расширить период/переформулировать.
- Если данных недостаточно: честно скажи «не хватает надёжных источников», предложи расширить период/переформулировать, либо выполнить веб-поиск. После полезного ответа предложи один мягкий следующий шаг.
- После полезного ответа предложи один мягкий следующий шаг.
Отвечай простым текстом, не используй форматирование markdown. Отвечай простым текстом, не используй форматирование markdown.
Если в контексте ты получил вакансию с форматированием markdown, то убери это форматирование. Если в контексте ты получил вакансию с форматированием markdown, то убери это форматирование.
Не ищи вакансии, если этого явно не требуется в запросе пользователя. Не ищи вакансии, если этого явно не требуется в запросе пользователя.
@ -40,8 +39,8 @@ def get_relevant_vacancies(requirements: str):
"""Получает релевантные вакансии из базы данных по переданным требованиям.""" """Получает релевантные вакансии из базы данных по переданным требованиям."""
formatted_vacancies = "" formatted_vacancies = ""
for document in vectorstore.similarity_search(requirements, k=5): for document in vectorstore.similarity_search(requirements, k=5):
metadata = document.metadata url = f"https://t.me/c/{document.metadata['chat_id']}/{document.metadata['telegram_id']}"
formatted_vacancies += f"chat_id = {metadata['chat_id']}\ntelegram_id = {metadata['telegram_id']}\n{document.page_content}" formatted_vacancies += f"Ссылка: {url}\n{document.page_content}"
return formatted_vacancies return formatted_vacancies