Резюме поиск с помощью естественных запросов. Демо -применение с использованием OpenAI RAG API и модели OpenSource VLM для проведения резюме сравнительного анализа.
Это поможет партнерам по талантам и инженерным менеджерам получить конкретную информацию из резюме.
Целью интеллекта резюме будет поддерживать запрос естественного языка на наборе резюме. Его можно использовать для сравнительного анализа резюме. Допустим, у нас есть 4 или 5 резюме потенциальных инженеров -программистов, некоторые из них, которые он должен позволить вам стрелять
В этом эксперименте вам нужны резюме.
Вместо того, чтобы искать данные из Интернета, я использовал Chagpt API для генерации резюме.
Я использовал вызов функции OpenAI и структурированный выходной выход для получения вывода JSON.
Как только у вас есть JSON, вы можете преобразовать его в документ PDF Resume.
OPENAI_KEY=<substitute your key>
# Install python packages locally.
pip install -r requirements.txt
python ui_gen_resume.py Этот пример можно запустить на локальной машине/ноутбуке Windows. Он не имеет особого требования с точки зрения графического процессора, вам необходимо выбрать 2 резюме из приложения пользовательского интерфейса, введите в поле «Запрос».
и нажмите «Отправить».
Пользователю необходимо включить ключ Openai в файле .env, который присутствует в корне папки.
Пример файла .ENV
OPENAI_KEY= <openai key>
vector_store_resume=resume_compare
MODEL=gpt-4o-2024-11-20
# individual file is put into vector store if value is FALSE
CONCAT_PDF=False
# instruction for assistant is chosen based on this. Possible values ( individual_pdf|concat_pdf)
INSTRUCTION_ID=individual_pdf
# Path where generated pdf resumes are stored.
RESUME_PATH=.\resumes
python ui_resume_compare_multi.py
Здесь я использую подходы Rag
Rag - с Openai Openai имеет помощника API, который имеет возможность хранения векторного представления документа и поиска по тому же. Обратитесь здесь к поиску файлов документации. Как использовать API поиска файлов, я сослался на превосходный блог и суть Саймона Уилсона, который он сделал пример кода
Rag - с OpenSource Colpali Это подход к использованию VLM. Я планирую использовать Byaldi, который внутренне использует Colpali, ссылается на Notebook, в котором есть пример кодового чата с PDF, используя Byaldi, я еще не реализовал это.
Это простой подход. Я использую API OpenAI, чтобы создать векторный магазин и добавлять все документы PDF в Vector Store. Опубликуйте, который создает помощника и прикрепите векторный магазин к помощнику
Поиск файлов OpenAI, похоже, не работает в более ранних экспериментах, для запросов, которые касаются нескольких документов. Первоначальное решение, по -видимому, заключается в объединении файлов и загрузку в Vector Store. Однако это было неверное понимание того, как представить инструкции для моделирования
Чтобы улучшить ответ, он рекламирует, что инструкции или системную подсказку должны быть скорректированы, чтобы получить правильные результаты. Вот мой, и я умоляю модель выполнять правильный поиск.
You are dilligent assistant specializing in analyzing resume for technology industry . Your goal is to find the a individual resume closely matched per the requirement from user
1. ** location of resume ** - Vector store has resume of individual candidates . Name of the vector store is resume_compare .
2 ** format of resume ** - Vector store has resume of individual candidates in pdf format. Name of the pdf would be firstname followed by underscore last name . E.g Rajesh_Kumar.pdf
3 ** vector store** - Vector store resume_compare belongs to the user/owner, whose is calling the api
4 ** role descriptions** - For job role description such as engineering manager , devops engineer , software engineer , use your knowledge based gained from pre-training.
5 ** Resume Search Strategy** - Search across ALL documents in vector store .Consider partial matches across multiple documents .Use multiple search queries for different aspects (skills, experience, etc.)
6 ** Search Depth ** - Perform multiple searches with varied keywords. Use both exact and semantic matching.
7 ** Result Aggregation ** - Combine result from multiple searches . Cross-reference finding across documents.
8 ** key qualitifications ** - For finding key qualifications or experiences for role/work , use your knowledge base and pre-training.
9 ** resume search** - For Candidates's resume and their capability ,skills , experience for a role/work , you must use file_search tool and attached vector store. Resume will always be present in vector store.
10 ** resume presence** - Resume will always present in vector store attached to assistant . Do not prompt to ask user on resume.
11 ** Dillgence ** - Please search dilligently . you seem to miss the fact that resume files are present in vectore store resume_compare.
12 ** Technical Skills** - In the resume take a deep look at work experience section .Focus on relevant programming languages, frameworks, tools, and certifications (e.g., Python, Java, AWS, Docker). Highlight these clearly.
13. ** Job Match** - Compare the resume with provided job descriptions. Focus on matching key technologies ,business and opetational knowledge and job experience, and note areas where the candidate doesn’t meet the requirements.
14. ** Projects & Experience** - Prioritize large-scale projects or leadership roles in tech teams. Identify open-source contributions or significant technical achievements.