Jobs_Applier_AI_Agent
Jobs_Applier_AI_Agent copied to clipboard
[BUG]: Failed to generate resume - Gemini API Key being used as an OpenAI API Key "'LoggerChatModel' object has no attribute 'logger'"
Describe the bug
Fails to generate a resume because it tries to use my Gemini API key as an OpenAI API call and gets a 401 response
Steps to reproduce
- Using branch
main
- Configure as normal, using a valid Gemini API key and model
- Run
python main.py
- Observe the behavior when the program is using LinkedIn to apply for jobs
- Observe that calls to the Gemini LLM are successful, until attempting to generate a custom resume
- Observe that the program fails in the package langchain_openai function
self.client.create()
where it assumes you are using an OpenAi API key and model and not a Gemini model
Expected behavior
A custom resume PDF would be generated and used for the LinkedIn job application
Actual behavior
The resume creation failed and the program continued to work, but it applied with my existing resume already uploaded to LinkedIn
Branch
main
Python version
3.11.0(64b)
LLM Used
Google Gemini
Model used
gemini-1.5-flash-002
Additional context
Log of error:
2024-10-12 19:05:51.199 | ERROR | src.aihawk_easy_applier:_create_and_upload_resume:470 - Failed to generate resume: 'LoggerChatModel' object has no attribute 'logger'
2024-10-12 19:05:51.201 | ERROR | src.aihawk_easy_applier:_create_and_upload_resume:472 - Traceback: Traceback (most recent call last):
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\lib_resume_builder_AIHawk\gpt_resume_job_description.py", line 119, in __call__
reply = self.llm(messages)
^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\_api\deprecation.py", line 180, in warning_emitting_wrapper
return wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\language_models\chat_models.py", line 1016, in __call__
generation = self.generate(
^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\language_models\chat_models.py", line 634, in generate
raise e
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\language_models\chat_models.py", line 624, in generate
self._generate_with_cache(
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\language_models\chat_models.py", line 846, in _generate_with_cache
result = self._generate(
^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_openai\chat_models\base.py", line 589, in _generate
response = self.client.create(**payload)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\openai\_utils\_utils.py", line 277, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\openai\resources\chat\completions.py", line 646, in create
return self._post(
^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\openai\_base_client.py", line 1266, in post
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\openai\_base_client.py", line 942, in request
return self._request(
^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\openai\_base_client.py", line 1046, in _request
raise self._make_status_error_from_response(err.response) from None
openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: ***************************************. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\src\aihawk_easy_applier.py", line 442, in _create_and_upload_resume
resume_pdf_base64 = self.resume_generator_manager.pdf_base64(job_description_text=job.description)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\lib_resume_builder_AIHawk\manager_facade.py", line 78, in pdf_base64
self.resume_generator.create_resume_job_description_text(style_path, job_description_text, temp_html_path)
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\lib_resume_builder_AIHawk\resume_generator.py", line 37, in create_resume_job_description_text
gpt_answerer.set_job_description_from_text(job_description_text)
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\lib_resume_builder_AIHawk\gpt_resume_job_description.py", line 247, in set_job_description_from_text
output = chain.invoke({"text": job_description_text})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\runnables\base.py", line 2878, in invoke
input = context.run(step.invoke, input, config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\runnables\base.py", line 4474, in invoke
return self._call_with_config(
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\runnables\base.py", line 1785, in _call_with_config
context.run(
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\runnables\config.py", line 398, in call_func_with_variable_args
return func(input, **kwargs) # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\runnables\base.py", line 4330, in _invoke
output = call_func_with_variable_args(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\langchain_core\runnables\config.py", line 398, in call_func_with_variable_args
return func(input, **kwargs) # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\dev\Auto_Jobs_Applier_AIHawk\.venv\Lib\site-packages\lib_resume_builder_AIHawk\gpt_resume_job_description.py", line 133, in __call__
self.logger.error(f"Unexpected error occurred: {str(e)}, retrying in {retry_delay} seconds... (Attempt {attempt + 1}/{max_retries})")
^^^^^^^^^^^
AttributeError: 'LoggerChatModel' object has no attribute 'logger'
2024-10-12 19:05:51.204 | ERROR | src.aihawk_easy_applier:fill_up:337 - Failed to find form elements: 'LoggerChatModel' object has no attribute 'logger'