Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Unable to start backend-core #2583

Closed
remmen-io opened this issue May 10, 2024 · 8 comments
Closed

[Bug]: Unable to start backend-core #2583

remmen-io opened this issue May 10, 2024 · 8 comments
Labels
area: backend Related to backend functionality or under the /backend directory bug Something isn't working

Comments

@remmen-io
Copy link

What happened?

I've reinstalled quivr from scratch, started the db, setup .env, but I'm unable to get the backend-core running.
I get a pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key" error.

Relevant log output

backend-core

backend-core  | Process SpawnProcess-6:
backend-core  | Traceback (most recent call last):
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
backend-core  |     self.run()
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
backend-core  |     self._target(*self._args, **self._kwargs)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 78, in subprocess_started
backend-core  |     target(sockets=sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
backend-core  |     return asyncio.run(self.serve(sockets=sockets))
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
backend-core  |     return runner.run(main)
backend-core  |            ^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
backend-core  |     return self._loop.run_until_complete(task)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
backend-core  |     await self._serve(sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
backend-core  |     config.load()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 433, in load
backend-core  |     self.loaded_app = import_from_string(self.app)
backend-core  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
backend-core  |     module = importlib.import_module(module_str)
backend-core  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
backend-core  |     return _bootstrap._gcd_import(name[level:], package, level)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
backend-core  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
backend-core  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
backend-core  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
backend-core  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
backend-core  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
backend-core  |   File "/code/main.py", line 19, in <module>
backend-core  |     from modules.assistant.controller import assistant_router
backend-core  |   File "/code/modules/assistant/controller/__init__.py", line 1, in <module>
backend-core  |     from .assistant_routes import assistant_router
backend-core  |   File "/code/modules/assistant/controller/assistant_routes.py", line 8, in <module>
backend-core  |     from modules.assistant.ito.difference import DifferenceAssistant
backend-core  |   File "/code/modules/assistant/ito/difference.py", line 24, in <module>
backend-core  |     from modules.assistant.ito.ito import ITO
backend-core  |   File "/code/modules/assistant/ito/ito.py", line 14, in <module>
backend-core  |     from modules.chat.controller.chat.utils import update_user_usage
backend-core  |   File "/code/modules/chat/controller/__init__.py", line 1, in <module>
backend-core  |     from .chat_routes import chat_router
backend-core  |   File "/code/modules/chat/controller/chat_routes.py", line 12, in <module>
backend-core  |     from modules.chat.controller.chat.brainful_chat import BrainfulChat
backend-core  |   File "/code/modules/chat/controller/chat/brainful_chat.py", line 5, in <module>
backend-core  |     from modules.brain.integrations.GPT4.Brain import GPT4Brain
backend-core  |   File "/code/modules/brain/integrations/GPT4/Brain.py", line 18, in <module>
backend-core  |     from modules.tools import (
backend-core  |   File "/code/modules/tools/__init__.py", line 2, in <module>
backend-core  |     from .web_search import WebSearchTool
backend-core  |   File "/code/modules/tools/web_search.py", line 22, in <module>
backend-core  |     class WebSearchTool(BaseTool):
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/main.py", line 221, in __new__
backend-core  |     inferred = ModelField.infer(
backend-core  |                ^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 504, in infer
backend-core  |     return cls(
backend-core  |            ^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 434, in __init__
backend-core  |     self.prepare()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 544, in prepare
backend-core  |     self._set_default_and_type()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
backend-core  |     raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
backend-core  | pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key"
backend-core  | Process SpawnProcess-4:
backend-core  | Process SpawnProcess-3:
backend-core  | Process SpawnProcess-1:
backend-core  | Traceback (most recent call last):
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
backend-core  |     self.run()
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
backend-core  |     self._target(*self._args, **self._kwargs)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 78, in subprocess_started
backend-core  |     target(sockets=sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
backend-core  |     return asyncio.run(self.serve(sockets=sockets))
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
backend-core  |     return runner.run(main)
backend-core  |            ^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
backend-core  |     return self._loop.run_until_complete(task)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
backend-core  |     await self._serve(sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
backend-core  |     config.load()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 433, in load
backend-core  |     self.loaded_app = import_from_string(self.app)
backend-core  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
backend-core  |     module = importlib.import_module(module_str)
backend-core  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
backend-core  |     return _bootstrap._gcd_import(name[level:], package, level)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
backend-core  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
backend-core  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
backend-core  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
backend-core  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
backend-core  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
backend-core  |   File "/code/main.py", line 19, in <module>
backend-core  |     from modules.assistant.controller import assistant_router
backend-core  |   File "/code/modules/assistant/controller/__init__.py", line 1, in <module>
backend-core  |     from .assistant_routes import assistant_router
backend-core  |   File "/code/modules/assistant/controller/assistant_routes.py", line 8, in <module>
backend-core  |     from modules.assistant.ito.difference import DifferenceAssistant
backend-core  |   File "/code/modules/assistant/ito/difference.py", line 24, in <module>
backend-core  |     from modules.assistant.ito.ito import ITO
backend-core  |   File "/code/modules/assistant/ito/ito.py", line 14, in <module>
backend-core  |     from modules.chat.controller.chat.utils import update_user_usage
backend-core  |   File "/code/modules/chat/controller/__init__.py", line 1, in <module>
backend-core  |     from .chat_routes import chat_router
backend-core  |   File "/code/modules/chat/controller/chat_routes.py", line 12, in <module>
backend-core  |     from modules.chat.controller.chat.brainful_chat import BrainfulChat
backend-core  |   File "/code/modules/chat/controller/chat/brainful_chat.py", line 5, in <module>
backend-core  |     from modules.brain.integrations.GPT4.Brain import GPT4Brain
backend-core  |   File "/code/modules/brain/integrations/GPT4/Brain.py", line 18, in <module>
backend-core  |     from modules.tools import (
backend-core  |   File "/code/modules/tools/__init__.py", line 2, in <module>
backend-core  |     from .web_search import WebSearchTool
backend-core  |   File "/code/modules/tools/web_search.py", line 22, in <module>
backend-core  |     class WebSearchTool(BaseTool):
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/main.py", line 221, in __new__
backend-core  |     inferred = ModelField.infer(
backend-core  |                ^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 504, in infer
backend-core  |     return cls(
backend-core  |            ^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 434, in __init__
backend-core  |     self.prepare()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 544, in prepare
backend-core  |     self._set_default_and_type()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
backend-core  |     raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
backend-core  | pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key"
backend-core  | Traceback (most recent call last):
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
backend-core  |     self.run()
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
backend-core  |     self._target(*self._args, **self._kwargs)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 78, in subprocess_started
backend-core  |     target(sockets=sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
backend-core  |     return asyncio.run(self.serve(sockets=sockets))
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
backend-core  |     return runner.run(main)
backend-core  |            ^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
backend-core  |     return self._loop.run_until_complete(task)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
backend-core  |     await self._serve(sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
backend-core  |     config.load()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 433, in load
backend-core  |     self.loaded_app = import_from_string(self.app)
backend-core  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
backend-core  |     module = importlib.import_module(module_str)
backend-core  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
backend-core  |     return _bootstrap._gcd_import(name[level:], package, level)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
backend-core  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
backend-core  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
backend-core  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
backend-core  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
backend-core  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
backend-core  |   File "/code/main.py", line 19, in <module>
backend-core  |     from modules.assistant.controller import assistant_router
backend-core  |   File "/code/modules/assistant/controller/__init__.py", line 1, in <module>
backend-core  |     from .assistant_routes import assistant_router
backend-core  |   File "/code/modules/assistant/controller/assistant_routes.py", line 8, in <module>
backend-core  |     from modules.assistant.ito.difference import DifferenceAssistant
backend-core  |   File "/code/modules/assistant/ito/difference.py", line 24, in <module>
backend-core  |     from modules.assistant.ito.ito import ITO
backend-core  |   File "/code/modules/assistant/ito/ito.py", line 14, in <module>
backend-core  |     from modules.chat.controller.chat.utils import update_user_usage
backend-core  |   File "/code/modules/chat/controller/__init__.py", line 1, in <module>
backend-core  |     from .chat_routes import chat_router
backend-core  |   File "/code/modules/chat/controller/chat_routes.py", line 12, in <module>
backend-core  |     from modules.chat.controller.chat.brainful_chat import BrainfulChat
backend-core  |   File "/code/modules/chat/controller/chat/brainful_chat.py", line 5, in <module>
backend-core  |     from modules.brain.integrations.GPT4.Brain import GPT4Brain
backend-core  |   File "/code/modules/brain/integrations/GPT4/Brain.py", line 18, in <module>
backend-core  |     from modules.tools import (
backend-core  |   File "/code/modules/tools/__init__.py", line 2, in <module>
backend-core  |     from .web_search import WebSearchTool
backend-core  |   File "/code/modules/tools/web_search.py", line 22, in <module>
backend-core  |     class WebSearchTool(BaseTool):
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/main.py", line 221, in __new__
backend-core  |     inferred = ModelField.infer(
backend-core  |                ^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 504, in infer
backend-core  |     return cls(
backend-core  |            ^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 434, in __init__
backend-core  |     self.prepare()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 544, in prepare
backend-core  |     self._set_default_and_type()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
backend-core  |     raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
backend-core  | pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key"
backend-core  | Traceback (most recent call last):
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
backend-core  |     self.run()
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
backend-core  |     self._target(*self._args, **self._kwargs)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 78, in subprocess_started
backend-core  |     target(sockets=sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
backend-core  |     return asyncio.run(self.serve(sockets=sockets))
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
backend-core  |     return runner.run(main)
backend-core  |            ^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
backend-core  |     return self._loop.run_until_complete(task)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
backend-core  |     await self._serve(sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
backend-core  |     config.load()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 433, in load
backend-core  |     self.loaded_app = import_from_string(self.app)
backend-core  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
backend-core  |     module = importlib.import_module(module_str)
backend-core  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
backend-core  |     return _bootstrap._gcd_import(name[level:], package, level)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
backend-core  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
backend-core  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
backend-core  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
backend-core  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
backend-core  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
backend-core  |   File "/code/main.py", line 19, in <module>
backend-core  |     from modules.assistant.controller import assistant_router
backend-core  |   File "/code/modules/assistant/controller/__init__.py", line 1, in <module>
backend-core  |     from .assistant_routes import assistant_router
backend-core  |   File "/code/modules/assistant/controller/assistant_routes.py", line 8, in <module>
backend-core  |     from modules.assistant.ito.difference import DifferenceAssistant
backend-core  |   File "/code/modules/assistant/ito/difference.py", line 24, in <module>
backend-core  |     from modules.assistant.ito.ito import ITO
backend-core  |   File "/code/modules/assistant/ito/ito.py", line 14, in <module>
backend-core  |     from modules.chat.controller.chat.utils import update_user_usage
backend-core  |   File "/code/modules/chat/controller/__init__.py", line 1, in <module>
backend-core  |     from .chat_routes import chat_router
backend-core  |   File "/code/modules/chat/controller/chat_routes.py", line 12, in <module>
backend-core  |     from modules.chat.controller.chat.brainful_chat import BrainfulChat
backend-core  |   File "/code/modules/chat/controller/chat/brainful_chat.py", line 5, in <module>
backend-core  |     from modules.brain.integrations.GPT4.Brain import GPT4Brain
backend-core  |   File "/code/modules/brain/integrations/GPT4/Brain.py", line 18, in <module>
backend-core  |     from modules.tools import (
backend-core  |   File "/code/modules/tools/__init__.py", line 2, in <module>
backend-core  |     from .web_search import WebSearchTool
backend-core  |   File "/code/modules/tools/web_search.py", line 22, in <module>
backend-core  |     class WebSearchTool(BaseTool):
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/main.py", line 221, in __new__
backend-core  |     inferred = ModelField.infer(
backend-core  |                ^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 504, in infer
backend-core  |     return cls(
backend-core  |            ^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 434, in __init__
backend-core  |     self.prepare()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 544, in prepare
backend-core  |     self._set_default_and_type()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
backend-core  |     raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
backend-core  | pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key"
backend-core  | Process SpawnProcess-2:
backend-core  | Traceback (most recent call last):
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
backend-core  |     self.run()
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
backend-core  |     self._target(*self._args, **self._kwargs)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 78, in subprocess_started
backend-core  |     target(sockets=sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
backend-core  |     return asyncio.run(self.serve(sockets=sockets))
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
backend-core  |     return runner.run(main)
backend-core  |            ^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
backend-core  |     return self._loop.run_until_complete(task)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
backend-core  |     await self._serve(sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
backend-core  |     config.load()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 433, in load
backend-core  |     self.loaded_app = import_from_string(self.app)
backend-core  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
backend-core  |     module = importlib.import_module(module_str)
backend-core  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
backend-core  |     return _bootstrap._gcd_import(name[level:], package, level)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
backend-core  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
backend-core  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
backend-core  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
backend-core  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
backend-core  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
backend-core  |   File "/code/main.py", line 19, in <module>
backend-core  |     from modules.assistant.controller import assistant_router
backend-core  |   File "/code/modules/assistant/controller/__init__.py", line 1, in <module>
backend-core  |     from .assistant_routes import assistant_router
backend-core  |   File "/code/modules/assistant/controller/assistant_routes.py", line 8, in <module>
backend-core  |     from modules.assistant.ito.difference import DifferenceAssistant
backend-core  |   File "/code/modules/assistant/ito/difference.py", line 24, in <module>
backend-core  |     from modules.assistant.ito.ito import ITO
backend-core  |   File "/code/modules/assistant/ito/ito.py", line 14, in <module>
backend-core  |     from modules.chat.controller.chat.utils import update_user_usage
backend-core  |   File "/code/modules/chat/controller/__init__.py", line 1, in <module>
backend-core  |     from .chat_routes import chat_router
backend-core  |   File "/code/modules/chat/controller/chat_routes.py", line 12, in <module>
backend-core  |     from modules.chat.controller.chat.brainful_chat import BrainfulChat
backend-core  |   File "/code/modules/chat/controller/chat/brainful_chat.py", line 5, in <module>
backend-core  |     from modules.brain.integrations.GPT4.Brain import GPT4Brain
backend-core  |   File "/code/modules/brain/integrations/GPT4/Brain.py", line 18, in <module>
backend-core  |     from modules.tools import (
backend-core  |   File "/code/modules/tools/__init__.py", line 2, in <module>
backend-core  |     from .web_search import WebSearchTool
backend-core  |   File "/code/modules/tools/web_search.py", line 22, in <module>
backend-core  |     class WebSearchTool(BaseTool):
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/main.py", line 221, in __new__
backend-core  |     inferred = ModelField.infer(
backend-core  |                ^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 504, in infer
backend-core  |     return cls(
backend-core  |            ^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 434, in __init__
backend-core  |     self.prepare()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 544, in prepare
backend-core  |     self._set_default_and_type()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
backend-core  |     raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
backend-core  | pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key"
backend-core  | Process SpawnProcess-5:
backend-core  | Traceback (most recent call last):
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
backend-core  |     self.run()
backend-core  |   File "/usr/local/lib/python3.11/multiprocessing/process.py", line 108, in run
backend-core  |     self._target(*self._args, **self._kwargs)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 78, in subprocess_started
backend-core  |     target(sockets=sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
backend-core  |     return asyncio.run(self.serve(sockets=sockets))
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
backend-core  |     return runner.run(main)
backend-core  |            ^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
backend-core  |     return self._loop.run_until_complete(task)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
backend-core  |     await self._serve(sockets)
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
backend-core  |     config.load()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 433, in load
backend-core  |     self.loaded_app = import_from_string(self.app)
backend-core  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
backend-core  |     module = importlib.import_module(module_str)
backend-core  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
backend-core  |     return _bootstrap._gcd_import(name[level:], package, level)
backend-core  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
backend-core  |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
backend-core  |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
backend-core  |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
backend-core  |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
backend-core  |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
backend-core  |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
backend-core  |   File "/code/main.py", line 19, in <module>
backend-core  |     from modules.assistant.controller import assistant_router
backend-core  |   File "/code/modules/assistant/controller/__init__.py", line 1, in <module>
backend-core  |     from .assistant_routes import assistant_router
backend-core  |   File "/code/modules/assistant/controller/assistant_routes.py", line 8, in <module>
backend-core  |     from modules.assistant.ito.difference import DifferenceAssistant
backend-core  |   File "/code/modules/assistant/ito/difference.py", line 24, in <module>
backend-core  |     from modules.assistant.ito.ito import ITO
backend-core  |   File "/code/modules/assistant/ito/ito.py", line 14, in <module>
backend-core  |     from modules.chat.controller.chat.utils import update_user_usage
backend-core  |   File "/code/modules/chat/controller/__init__.py", line 1, in <module>
backend-core  |     from .chat_routes import chat_router
backend-core  |   File "/code/modules/chat/controller/chat_routes.py", line 12, in <module>
backend-core  |     from modules.chat.controller.chat.brainful_chat import BrainfulChat
backend-core  |   File "/code/modules/chat/controller/chat/brainful_chat.py", line 5, in <module>
backend-core  |     from modules.brain.integrations.GPT4.Brain import GPT4Brain
backend-core  |   File "/code/modules/brain/integrations/GPT4/Brain.py", line 18, in <module>
backend-core  |     from modules.tools import (
backend-core  |   File "/code/modules/tools/__init__.py", line 2, in <module>
backend-core  |     from .web_search import WebSearchTool
backend-core  |   File "/code/modules/tools/web_search.py", line 22, in <module>
backend-core  |     class WebSearchTool(BaseTool):
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/main.py", line 221, in __new__
backend-core  |     inferred = ModelField.infer(
backend-core  |                ^^^^^^^^^^^^^^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 504, in infer
backend-core  |     return cls(
backend-core  |            ^^^^
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 434, in __init__
backend-core  |     self.prepare()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 544, in prepare
backend-core  |     self._set_default_and_type()
backend-core  |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/fields.py", line 576, in _set_default_and_type
backend-core  |     raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"')
backend-core  | pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key"


### Twitter / LinkedIn details

_No response_
@remmen-io remmen-io added the bug Something isn't working label May 10, 2024
Copy link

dosubot bot commented May 10, 2024

The error you're encountering, pydantic.v1.errors.ConfigError: unable to infer type for attribute "api_key", indicates an issue with Pydantic's ability to determine the type of the api_key attribute. This can often be due to the environment variable for api_key not being correctly loaded or accessible at the point where an instance of the relevant Pydantic model is being created. Here are steps to troubleshoot and potentially resolve this issue:

  1. Ensure Environment Variables Are Loaded First: Verify that the code loading the .env file is executed before any Pydantic models are instantiated. This is crucial for making sure that all environment variables are available when needed.

  2. Explicitly Define Type and Source for api_key: In your Pydantic model, explicitly define the type of api_key and, if it's coming from an environment variable, use Pydantic's Field to specify its environment variable name, like so:

    from pydantic import BaseModel, Field
    
    class ApiKey(BaseModel):
        api_key: str = Field(..., env='API_KEY_ENV_VARIABLE')

    This approach clarifies the expected type and source of api_key.

  3. Check the Environment Variable Directly: Before the Pydantic model instantiation, add a debug statement to print out the environment variable value to ensure it's being correctly set and recognized by your application.

  4. Manually Test Model Initialization: Try manually initializing your Pydantic model with a hardcoded api_key value to see if the error still occurs. If it doesn't, the issue likely lies in how the environment variable is being passed or loaded.

  5. Review Pydantic and Project Documentation: Double-check the Pydantic documentation for any nuances related to environment variable loading or type inference that might be affecting your setup. Additionally, consult the project's documentation or forums for any known issues or specific guidance related to api_key handling.

By following these steps, you should be able to identify and correct the issue with the api_key attribute in your Pydantic model.

Details

Sources


About Dosu
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

To continue the conversation, mention @dosu.

@dosubot dosubot bot added the area: backend Related to backend functionality or under the /backend directory label May 10, 2024
@StanGirard
Copy link
Collaborator

@remmen-io can you git pull ;)

@tuninger
Copy link

I'm having the same problem, is there a definitive solution so far?

@enesj
Copy link

enesj commented May 11, 2024

Same, MacBook Pro M1

@StanGirard
Copy link
Collaborator

Can you uncomment the BRAVE_SEARCH api key in the env file ?

@enesj
Copy link

enesj commented May 11, 2024

Looks as it works now :)

@enesj
Copy link

enesj commented May 11, 2024

BRAVE SEARCH API KEY

BRAVE_SEARCH_API_KEY=CHANGE_ME

@remmen-io
Copy link
Author

Uncommenting BRAVE_SEARCH_API_KEY also worked here. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: backend Related to backend functionality or under the /backend directory bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants