Skip to content

docker compose fails due to depency conflict between openai and httpx #5

@cpumarfrohberg

Description

@cpumarfrohberg

docker compose up --build raises TypeError Client.__init__() got an unexpected keyword argument 'proxies' (type=type_error) whilst spinning up langchain_neo4j_rag_app-chatbot_api-1-container.

Container langchain_neo4j_rag_app-hospital_neo4j_etl-1  Created
Container langchain_neo4j_rag_app-cypher_example_portal-1  Created
Container langchain_neo4j_rag_app-chatbot_api-1  Created
Container langchain_neo4j_rag_app-chatbot_frontend-1  Created
Attaching to chatbot_api-1, chatbot_frontend-1, cypher_example_portal-1, hospital_neo4j_etl-1
hospital_neo4j_etl-1     | Running ETL to move hospital data from csvs to Neo4j...
chatbot_api-1            | Starting hospital RAG FastAPI service...
cypher_example_portal-1  | Starting example cypher self-service portal...
hospital_neo4j_etl-1     | 2024-12-28 20:54:19 [INFO]: Setting uniqueness constraints on nodes
chatbot_frontend-1       | Starting hospital chatbot frontend...
cypher_example_portal-1  | 
cypher_example_portal-1  | Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.
cypher_example_portal-1  | 
chatbot_frontend-1       | 
chatbot_frontend-1       | Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.
chatbot_frontend-1       | 
chatbot_frontend-1       | 
chatbot_frontend-1       |   You can now view your Streamlit app in your browser.
chatbot_frontend-1       | 
chatbot_frontend-1       |   Network URL: http://<Private_Docker_Network_IP>:8501
chatbot_frontend-1       |   External URL: http://<Public_IP>:8501
chatbot_frontend-1       | 
cypher_example_portal-1  | 
cypher_example_portal-1  |   You can now view your Streamlit app in your browser.
cypher_example_portal-1  | 
cypher_example_portal-1  |   Network URL: http://<Private_Docker_Network_IP>:8501
cypher_example_portal-1  |   External URL: http://<Public_IP>:8502
cypher_example_portal-1  | 
chatbot_api-1            | /app/src/chains/hospital_review_chain.py:2: LangChainDeprecationWarning: Importing Neo4jVector from langchain.vectorstores is deprecated. Please replace deprecated imports:
chatbot_api-1            | 
chatbot_api-1            | >> from langchain.vectorstores import Neo4jVector
chatbot_api-1            | 
chatbot_api-1            | with new imports of:
chatbot_api-1            | 
chatbot_api-1            | >> from langchain_community.vectorstores import Neo4jVector
chatbot_api-1            | You can use the langchain cli to **automatically** upgrade many imports. Please see documentation here <https://python.langchain.com/v0.2/docs/versions/v0_2/>
chatbot_api-1            |   from langchain.vectorstores.neo4j_vector import Neo4jVector
chatbot_api-1            | Traceback (most recent call last):
chatbot_api-1            |   File "/usr/local/bin/uvicorn", line 8, in <module>
chatbot_api-1            |     sys.exit(main())
chatbot_api-1            |              ^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in __call__
chatbot_api-1            |     return self.main(*args, **kwargs)
chatbot_api-1            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main
chatbot_api-1            |     rv = self.invoke(ctx)
chatbot_api-1            |          ^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
chatbot_api-1            |     return ctx.invoke(self.callback, **ctx.params)
chatbot_api-1            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke
chatbot_api-1            |     return __callback(*args, **kwargs)
chatbot_api-1            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 416, in main
chatbot_api-1            |     run(
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 587, in run
chatbot_api-1            |     server.run()
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 61, in run
chatbot_api-1            |     return asyncio.run(self.serve(sockets=sockets))
chatbot_api-1            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
chatbot_api-1            |     return runner.run(main)
chatbot_api-1            |            ^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
chatbot_api-1            |     return self._loop.run_until_complete(task)
chatbot_api-1            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete
chatbot_api-1            |     return future.result()
chatbot_api-1            |            ^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 68, in serve
chatbot_api-1            |     config.load()
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/uvicorn/config.py", line 467, in load
chatbot_api-1            |     self.loaded_app = import_from_string(self.app)
chatbot_api-1            |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/uvicorn/importer.py", line 21, in import_from_string
chatbot_api-1            |     module = importlib.import_module(module_str)
chatbot_api-1            |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
chatbot_api-1            |     return _bootstrap._gcd_import(name[level:], package, level)
chatbot_api-1            |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
chatbot_api-1            |   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
chatbot_api-1            |   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
chatbot_api-1            |   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
chatbot_api-1            |   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
chatbot_api-1            |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
chatbot_api-1            |   File "/app/src/main.py", line 2, in <module>
chatbot_api-1            |     from src.agents.hospital_rag_agent import hospital_rag_agent_executor
chatbot_api-1            |   File "/app/src/agents/hospital_rag_agent.py", line 10, in <module>
chatbot_api-1            |     from src.chains.hospital_review_chain import reviews_vector_chain
chatbot_api-1            |   File "/app/src/chains/hospital_review_chain.py", line 16, in <module>
chatbot_api-1            |     embedding=OpenAIEmbeddings(),
chatbot_api-1            |               ^^^^^^^^^^^^^^^^^^
chatbot_api-1            |   File "/usr/local/lib/python3.11/site-packages/pydantic/v1/main.py", line 341, in __init__
chatbot_api-1            |     raise validation_error
chatbot_api-1            | pydantic.v1.error_wrappers.ValidationError: 1 validation error for OpenAIEmbeddings
chatbot_api-1            | __root__
chatbot_api-1            |   Client.__init__() got an unexpected keyword argument 'proxies' (type=type_error)
^MESC[Kchatbot_api-1 exited with code 1
Apple M1
Sequioia 15.1.1
Python 3.11.5
openai==1.7.2
httpx==0.28.1

Incompatibility with httpx version and versions of openai - see, as a reference: https://community.openai.com/t/client-openai-returns-error-client-init-got-an-unexpected-keyword-argument-proxies/1035249

Neither up- nor downgrading named libs results in succesful runs.

Thanks in advance for any idea you may have!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions