Candidate пакет
Модули
candidate.llm_match module
Файл с логикой соотношения вакансий и кандидатов.
Functions:
|
Обрабатывает данные кандидата и вакансии, возвращая рекомендации по трудоустройству. |
|
Валидирует формат входных данных кандидата и вакансий. |
- candidate.llm_match.process_json(data: Dict, vacancies: Dict) Dict[исходный код]
Обрабатывает данные кандидата и вакансии, возвращая рекомендации по трудоустройству.
Функция выполняет комплексный анализ соответствия кандидата вакансиям: 1. Генерирует промпты для оценки по каждой вакансии 2. Рассчитывает процент соответствия на основе недостающих компетенций 3. Формирует финальные рекомендации по наиболее подходящей вакансии
- Параметры:
data (Dict) –
Данные кандидата в формате: {
»skills»: [список навыков], «experience»: [список элементов опыта]
}
vacancies (Dict) –
Словарь вакансий в формате: {
- »vacancy_id»: {
«название»: «Название вакансии», «компетенции»: {
- »категория»: [
- {
«название»: «Название навыка», «уровень»: 1-3
}
]
}
}
}
- Результат:
- Результат анализа в формате:
- {
«vacancy»: «Название лучшей вакансии», «percentage»: int, «explaining»: «Текст оценки», «recommendations»: [список рекомендаций]
} или {«error»: …} в случае ошибки
- Тип результата:
Dict
Примеры
>>> candidate_data = {"skills": ["Python"], "experience": ["Разработка"]} >>> job_vacancies = {"1": {"название": "Программист", "компетенции": {...}}} >>> process_json(candidate_data, job_vacancies) { "vacancy": "Программист", "percentage": 85, "explaining": "Соответствует основным требованиям...", "recommendations": "Следует изучить..." }
Заметки
Использует глобальный клиент LLM для генерации оценок
- Логика расчета процента соответствия:
-2% за навык уровня «низкий»
-5% за навык уровня «средний»
-10% за навык уровня «высокий»
Парсинг ответа проводится согласно VacancySchema
В случае ошибки декодирования JSON возвращает словарь с ошибкой
- candidate.llm_match.validate_input_data(data: Dict, vacancies: Dict) tuple[исходный код]
Валидирует формат входных данных кандидата и вакансий.
- Параметры:
data – Данные кандидата
vacancies – Словарь вакансий
- Результат:
(bool, str) - Результат проверки и сообщение об ошибке
- Тип результата:
tuple
candidate.logging_config module
Файл для настройки ведения журнала с цветным выводом.
Classes:
|
Кастомный форматтер для добавления цветов в логи с помощью ANSI-кодов. |
Functions:
|
Настраивает корневой логгер с обработчиком цветного вывода. |
|
Конвертирует HEX-код цвета в ANSI escape-последовательность. |
- class candidate.logging_config.ColoredFormatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None)[исходный код]
Базовые классы:
FormatterКастомный форматтер для добавления цветов в логи с помощью ANSI-кодов. Цвета определяются на основе уровня логирования в соответствии с LOG_COLORS.
Methods:
format(record)Форматирует запись лога с добавлением цветовых кодов.
- format(record: LogRecord) str[исходный код]
Форматирует запись лога с добавлением цветовых кодов.
- Параметры:
record (LogRecord) – Запись лога для форматирования
- Результат:
Отформатированное сообщение с цветовыми кодами
- Тип результата:
str
- candidate.logging_config.configure_logging(level: int = 20) None[исходный код]
Настраивает корневой логгер с обработчиком цветного вывода.
- Параметры:
level (int) – Уровень логирования (logging.INFO или logging.DEBUG). По умолчанию: logging.INFO.
- Исключение:
ValueError – Если указан недопустимый уровень логирования
- Примечание:
Поддерживаются только уровни logging.INFO и logging.DEBUG
- candidate.logging_config.hex_to_ansi(hex_color: str) str[исходный код]
Конвертирует HEX-код цвета в ANSI escape-последовательность.
- Параметры:
hex_color (str) – HEX-код цвета в формате „#RRGGBB“
- Результат:
ANSI escape-последовательность для цвета или пустая строка при ошибке
- Тип результата:
str
candidate.module_nlp module
candidate.server module
candidate.utils module
Файл для вспомогательных функций и констант
Classes:
|
Pydantic-схема для структурированного ответа от модели Ollama.: title: VacancySchema |
Functions:
|
Функция-оболочка для отправки Ollama запроса в виде чата, с системным промптом и форматированием в формате JSON-схемы. |
- class candidate.utils.VacancySchema(*, vacancy: str, percentage: int, explaining: str, recommendations: str)[исходный код]
Базовые классы:
BaseModelPydantic-схема для структурированного ответа от модели Ollama.: title: VacancySchema
Attributes:
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- explaining: str
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- percentage: int
- recommendations: str
- vacancy: str
- candidate.utils.ollama_chat(client: Client, model_name: str, prompt: str, system: str | None = None, schema: dict | None = None, max_tokens: int = 4096, temperature: float = 0.4, stream: bool = False) str | Iterator[ChatResponse][исходный код]
Функция-оболочка для отправки Ollama запроса в виде чата, с системным промптом и форматированием в формате JSON-схемы.
- Параметры:
client (ollama.Client) – Клиент ollama.
model_name (str) – название модели в Ollama.
prompt (str) – Основный промпт.
system (str | None) – Системный промпт
schema (dict | None) – Опциональная Json-схема для форматирования ответа.
max_tokens (int) – Максимальное количество токенов
temperature (float) – Температура для генерации текста.
stream (bool) – Следует ли возвращать итератор, который выдает потоковые ответы.
- Результат:
Содержимое ответа модели (или строка JSON, если указана схема).
- Тип результата:
str