dify icon indicating copy to clipboard operation
dify copied to clipboard

When the knowledge base uses Ollama embedding to generate vectors, it causes Ollama to crash.

Open crazythinking opened this issue 11 months ago • 4 comments

Self Checks

  • [x] This is only for bug report, if you would like to ask a question, please head to Discussions.
  • [x] I have searched for existing issues search for existing issues, including closed ones.
  • [x] I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • [x] Please do not modify this template :) and fill in all the required fields.

Dify version

1.0.0

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

When the knowledge base uses Ollama embedding to generate vectors, it causes Ollama to crash. operator as follow img:

Image

✔️ Expected Behavior

No response

❌ Actual Behavior

error logs as follows: `

docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.392324735s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.502842951s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |   1.41124396s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |   1.43269332s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.421329705s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.410274884s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.412063739s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.410747272s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.411868744s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-plugin_daemon-1  | [GIN] 2025/03/13 - 01:48:51 | 200 |  1.422839868s |    192.168.48.9 | POST     "/plugin/9e3d2f24-b1a2-4d4a-93ac-92ab508f4517/dispatch/text_embedding/invoke"
docker-worker-1         | 2025-03-13 01:48:51.463 ERROR [ThreadPoolExecutor-37_0] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.464 ERROR [ThreadPoolExecutor-37_5] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.465 ERROR [ThreadPoolExecutor-37_3] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.466 ERROR [ThreadPoolExecutor-37_7] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.467 ERROR [ThreadPoolExecutor-37_6] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.468 ERROR [ThreadPoolExecutor-37_8] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.469 ERROR [ThreadPoolExecutor-37_2] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.470 ERROR [ThreadPoolExecutor-37_9] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.471 ERROR [ThreadPoolExecutor-37_1] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.474 ERROR [ThreadPoolExecutor-37_4] [cached_embedding.py:98] - Failed to embed documents: %s
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.474 ERROR [Dummy-32] [indexing_runner.py:96] - consume document failed
docker-worker-1         | Traceback (most recent call last):
docker-worker-1         |   File "/app/api/core/indexing_runner.py", line 80, in run
docker-worker-1         |     self._load(
docker-worker-1         |   File "/app/api/core/indexing_runner.py", line 570, in _load
docker-worker-1         |     tokens += future.result()
docker-worker-1         |               ^^^^^^^^^^^^^^^
docker-worker-1         |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 456, in result
docker-worker-1         |     return self.__get_result()
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
docker-worker-1         |     raise self._exception
docker-worker-1         |   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
docker-worker-1         |     result = self.fn(*self.args, **self.kwargs)
docker-worker-1         |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/indexing_runner.py", line 625, in _process_chunk
docker-worker-1         |     index_processor.load(dataset, chunk_documents, with_keywords=False)
docker-worker-1         |   File "/app/api/core/rag/index_processor/processor/paragraph_index_processor.py", line 78, in load
docker-worker-1         |     vector.create(documents)
docker-worker-1         |   File "/app/api/core/rag/datasource/vdb/vector_factory.py", line 156, in create
docker-worker-1         |     embeddings = self._embeddings.embed_documents([document.page_content for document in texts])
docker-worker-1         |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 99, in embed_documents
docker-worker-1         |     raise ex
docker-worker-1         |   File "/app/api/core/rag/embedding/cached_embedding.py", line 61, in embed_documents
docker-worker-1         |     embedding_result = self._model_instance.invoke_text_embedding(
docker-worker-1         |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_manager.py", line 221, in invoke_text_embedding
docker-worker-1         |     self._round_robin_invoke(
docker-worker-1         |   File "/app/api/core/model_manager.py", line 370, in _round_robin_invoke
docker-worker-1         |     return function(*args, **kwargs)
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 53, in invoke
docker-worker-1         |     raise self._transform_invoke_error(e)
docker-worker-1         |   File "/app/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 42, in invoke
docker-worker-1         |     return plugin_model_manager.invoke_text_embedding(
docker-worker-1         |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/model.py", line 273, in invoke_text_embedding
docker-worker-1         |     for resp in response:
docker-worker-1         |                 ^^^^^^^^
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 189, in _request_with_plugin_daemon_response_stream
docker-worker-1         |     self._handle_plugin_daemon_error(error.error_type, error.message)
docker-worker-1         |   File "/app/api/core/plugin/manager/base.py", line 217, in _handle_plugin_daemon_error
docker-worker-1         |     raise InvokeServerUnavailableError(description=args.get("description"))
docker-worker-1         | core.model_runtime.errors.invoke.InvokeServerUnavailableError: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
docker-worker-1         | 2025-03-13 01:48:51.481 INFO [Dummy-32] [document_indexing_task.py:76] - Processed dataset: 25c00224-e521-480d-bd7d-ce10cf27d426 latency: 3.663817903958261
docker-worker-1         | 2025-03-13 01:48:51.501 INFO [Dummy-32] [trace.py:128] - Task tasks.document_indexing_task.document_indexing_task[116ac803-96a6-49ed-8db2-b838919218be] succeeded in 3.6831789190182462s: None

` the log of ollama please see crash log : ollamalog.txt

crazythinking avatar Mar 13 '25 01:03 crazythinking

Please open an issue in this repo as well https://github.com/ollama/ollama

crazywoola avatar Mar 13 '25 01:03 crazywoola

Hey, @crazythinking! I'm here to help you with bug reports, questions, and becoming a contributor. Let me know how I can assist you.

The issue with Ollama embedding causing crashes in a self-hosted Docker environment is likely due to the service being inaccessible from the Docker container. This is often because the service is bound to localhost, which refers to the container itself rather than the host machine or other containers. To resolve this, you should expose the Ollama service to the network by setting the OLLAMA_HOST environment variable to 0.0.0.0 and replacing localhost with host.docker.internal in the service URL:

  1. Set the environment variable on macOS using launchctl:

    launchctl setenv OLLAMA_HOST "0.0.0.0"
    
  2. Use the following service URL:

    http://host.docker.internal:11434
    

For Linux, you should edit the systemd service to set the environment variable:

  1. Edit the systemd service with systemctl edit ollama.service and add the following under [Service]:

    [Service]
    Environment="OLLAMA_HOST=0.0.0.0"
    
  2. Save, exit, and then reload and restart the service:

    systemctl daemon-reload
    systemctl restart ollama
    

For Windows, ensure you set the environment variable through the system settings and restart the Ollama application [1][2].

To continue talking to Dosu, mention @dosu.


Help Dosu learn! Give it feedback: Great Response | Irrelevant Answer | Incorrect Sources | Too Verbose | Hallucination | Bug Report | Other

dosubot[bot] avatar Mar 13 '25 01:03 dosubot[bot]

The relevant part of the error message is: [models] Server Unavailable Error, ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')). This suggests that Dify cannot reach your embedding model's server. Unfortunately, we can't assist with issues related to your Ollama server.

Please ensure that your embedding model works with other software. If it does, provide the exact steps you used to set up Ollama so we can replicate your environment. This will help us determine if there's a bug on Dify's side. Once you're certain the issue only occurs with Dify, we can investigate further to identify any potential problems.

perzeuss avatar Mar 13 '25 20:03 perzeuss

The occurrence of the problem is not that the Ollama server cannot be accessed. Instead, after Dify initiates an embedding request and causes Ollama to crash, Dify returns an abnormal remote connection. However, when using "Q&A segmentation", since it is a chat request initiated, similar problems will not be triggered. Also, when I actively call the embedding request of the Ollama server through curl, it works normally.

crazythinking avatar Mar 14 '25 05:03 crazythinking

Hi, @crazythinking. I'm Dosu, and I'm helping the Dify team manage their backlog. I'm marking this issue as stale.

Issue Summary:

  • You reported an issue with Ollama embedding causing server crashes in a self-hosted Docker environment.
  • I suggested the issue might be due to the service being bound to localhost.
  • "Perzeuss" noted that Dify might not be reaching the embedding model's server.
  • You clarified the crash occurs specifically during Dify's embedding requests, not with other methods.

Next Steps:

  • Please confirm if this issue is still relevant with the latest version of Dify. If so, you can keep the discussion open by commenting here.
  • If there is no further activity, this issue will be automatically closed in 15 days.

Thank you for your understanding and contribution!

dosubot[bot] avatar Apr 14 '25 16:04 dosubot[bot]