ImportError: Unable to import langchain-google-genai
virologist opened this issue · 3 comments
virologist commented
Describe the bug
error and log are below
To Reproduce
Steps to reproduce the behavior:
4. See error
gpt-researcher-1 | ⚠️ Error in reading JSON, attempting to repair JSON
gpt-researcher-1 | Error using json_repair: the JSON object must be str, bytes or bytearray, not NoneType
gpt-researcher-1 | ERROR: Exception in ASGI application
gpt-researcher-1 | Traceback (most recent call last):
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/actions/agent_creator.py", line 27, in choose_agent
gpt-researcher-1 | response = await create_chat_completion(
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/utils/llm.py", line 54, in create_chat_completion
gpt-researcher-1 | provider = get_llm(llm_provider, model=model, temperature=temperature,
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/utils/llm.py", line 19, in get_llm
gpt-researcher-1 | return GenericLLMProvider.from_provider(llm_provider, **kwargs)
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/llm_provider/generic/base.py", line 60, in from_provider
gpt-researcher-1 | _check_pkg("langchain_google_genai")
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/llm_provider/generic/base.py", line 155, in _check_pkg
gpt-researcher-1 | raise ImportError(
gpt-researcher-1 | ImportError: Unable to import langchain-google-genai. Please install with `pip install -U langchain-google-genai`
gpt-researcher-1 |
gpt-researcher-1 | During handling of the above exception, another exception occurred:
gpt-researcher-1 |
gpt-researcher-1 | Traceback (most recent call last):
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 242, in run_asgi
gpt-researcher-1 | result = await self.app(self.scope, self.asgi_receive, self.asgi_send) # type: ignore[func-returns-value]
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
gpt-researcher-1 | return await self.app(scope, receive, send)
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
gpt-researcher-1 | await super().__call__(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 113, in __call__
gpt-researcher-1 | await self.middleware_stack(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 152, in __call__
gpt-researcher-1 | await self.app(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 77, in __call__
gpt-researcher-1 | await self.app(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
gpt-researcher-1 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
gpt-researcher-1 | raise exc
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
gpt-researcher-1 | await app(scope, receive, sender)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
gpt-researcher-1 | await self.middleware_stack(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
gpt-researcher-1 | await route.handle(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 362, in handle
gpt-researcher-1 | await self.app(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 95, in app
gpt-researcher-1 | await wrap_app_handling_exceptions(app, session)(scope, receive, send)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
gpt-researcher-1 | raise exc
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
gpt-researcher-1 | await app(scope, receive, sender)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 93, in app
gpt-researcher-1 | await func(session)
gpt-researcher-1 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 383, in app
gpt-researcher-1 | await dependant.call(**solved_result.values)
gpt-researcher-1 | File "/usr/src/app/backend/server/server.py", line 136, in websocket_endpoint
gpt-researcher-1 | await handle_websocket_communication(websocket, manager)
gpt-researcher-1 | File "/usr/src/app/backend/server/server_utils.py", line 117, in handle_websocket_communication
gpt-researcher-1 | await handle_start_command(websocket, data, manager)
gpt-researcher-1 | File "/usr/src/app/backend/server/server_utils.py", line 28, in handle_start_command
gpt-researcher-1 | report = await manager.start_streaming(
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/backend/server/websocket_manager.py", line 61, in start_streaming
gpt-researcher-1 | report = await run_agent(task, report_type, report_source, source_urls, tone, websocket, headers)
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/backend/server/websocket_manager.py", line 95, in run_agent
gpt-researcher-1 | report = await researcher.run()
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/backend/report_type/basic_report/basic_report.py", line 41, in run
gpt-researcher-1 | await researcher.conduct_research()
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/agent.py", line 88, in conduct_research
gpt-researcher-1 | self.agent, self.role = await choose_agent(
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/actions/agent_creator.py", line 44, in choose_agent
gpt-researcher-1 | return await handle_json_error(response)
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/actions/agent_creator.py", line 55, in handle_json_error
gpt-researcher-1 | json_string = extract_json_with_regex(response)
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/src/app/gpt_researcher/actions/agent_creator.py", line 71, in extract_json_with_regex
gpt-researcher-1 | json_match = re.search(r"{.*?}", response, re.DOTALL)
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | File "/usr/local/lib/python3.11/re/__init__.py", line 176, in search
gpt-researcher-1 | return _compile(pattern, flags).search(string)
gpt-researcher-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gpt-researcher-1 | TypeError: expected string or bytes-like object, got 'NoneType'
gpt-researcher-1 | INFO: connection closed
Expected behavior
should run properly
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
**- OS: Mac M1 latest
- Browser: chrome latest**
kesamet commented
Hi @virologist, please install with pip install -U langchain-google-genai
virologist commented
Thanks for your response.
I still get this error below. This error is looks like related to the compatibility of the Pydantic V2 version.
/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_config.py:341: UserWarning: Valid config keys have changed in V2:
* 'allow_population_by_field_name' has been renamed to 'populate_by_name'
warnings.warn(message, UserWarning)
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/Users/nn/miniconda3/lib/python3.12/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 244, in run_asgi
result = await self.app(self.scope, self.asgi_receive, self.asgi_send) # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/applications.py", line 123, in __call__
await self.middleware_stack(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/middleware/errors.py", line 151, in __call__
await self.app(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/middleware/cors.py", line 77, in __call__
await self.app(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/routing.py", line 754, in __call__
await self.middleware_stack(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/routing.py", line 774, in app
await route.handle(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/routing.py", line 371, in handle
await self.app(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/routing.py", line 96, in app
await wrap_app_handling_exceptions(app, session)(scope, receive, send)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
raise exc
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/starlette/routing.py", line 94, in app
await func(session)
File "/Users/nn/miniconda3/lib/python3.12/site-packages/fastapi/routing.py", line 367, in app
await dependant.call(**values)
File "/Users/nn/Library/gpt-researcher/backend/server/server.py", line 136, in websocket_endpoint
await handle_websocket_communication(websocket, manager)
File "/Users/nn/Library/gpt-researcher/backend/server/server_utils.py", line 117, in handle_websocket_communication
await handle_start_command(websocket, data, manager)
File "/Users/nn/Library/gpt-researcher/backend/server/server_utils.py", line 28, in handle_start_command
report = await manager.start_streaming(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/Library/gpt-researcher/backend/server/websocket_manager.py", line 61, in start_streaming
report = await run_agent(task, report_type, report_source, source_urls, tone, websocket, headers)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/Library/gpt-researcher/backend/server/websocket_manager.py", line 95, in run_agent
report = await researcher.run()
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/Library/gpt-researcher/backend/report_type/basic_report/basic_report.py", line 30, in run
researcher = GPTResearcher(
^^^^^^^^^^^^^^
File "/Users/nn/Library/gpt-researcher/gpt_researcher/agent.py", line 76, in __init__
self.memory = Memory(
^^^^^^^
File "/Users/nn/Library/gpt-researcher/gpt_researcher/memory/embeddings.py", line 40, in __init__
from langchain_openai import OpenAIEmbeddings
File "/Users/nn/miniconda3/lib/python3.12/site-packages/langchain_openai/__init__.py", line 1, in <module>
from langchain_openai.chat_models import AzureChatOpenAI, ChatOpenAI
File "/Users/nn/miniconda3/lib/python3.12/site-packages/langchain_openai/chat_models/__init__.py", line 1, in <module>
from langchain_openai.chat_models.azure import AzureChatOpenAI
File "/Users/nn/miniconda3/lib/python3.12/site-packages/langchain_openai/chat_models/azure.py", line 41, in <module>
from langchain_openai.chat_models.base import BaseChatOpenAI
File "/Users/nn/miniconda3/lib/python3.12/site-packages/langchain_openai/chat_models/base.py", line 353, in <module>
class BaseChatOpenAI(BaseChatModel):
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 224, in __new__
complete_model_class(
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py", line 577, in complete_model_class
schema = cls.__get_pydantic_core_schema__(cls, handler)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/main.py", line 671, in __get_pydantic_core_schema__
return handler(source)
^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 83, in __call__
schema = self._handler(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 655, in generate_schema
schema = self._generate_schema_inner(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 924, in _generate_schema_inner
return self._model_schema(obj)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 739, in _model_schema
{k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1115, in _generate_md_field_schema
common_field = self._common_field_schema(name, field_info, decorators)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1308, in _common_field_schema
schema = self._apply_annotations(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 2107, in _apply_annotations
schema = get_inner_schema(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py", line 83, in __call__
schema = self._handler(source_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 2088, in inner_handler
schema = self._generate_schema_inner(obj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 929, in _generate_schema_inner
return self.match_type(obj)
^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1029, in match_type
return self._match_generic_type(obj, origin)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1058, in _match_generic_type
return self._union_schema(obj)
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 1378, in _union_schema
choices.append(self.generate_schema(arg))
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 657, in generate_schema
metadata_js_function = _extract_get_pydantic_json_schema(obj, schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/nn/miniconda3/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py", line 2447, in _extract_get_pydantic_json_schema
raise PydanticUserError(
pydantic.errors.PydanticUserError: The `__modify_schema__` method is not supported in Pydantic v2. Use `__get_pydantic_json_schema__` instead in class `SecretStr`.
For further information visit https://errors.pydantic.dev/2.9/u/custom-json-schema
kesamet commented
I guess you are using OpenAI embedding? You probably need to update langchain-openai to the latest version