add support for AWS bedrock Cohere embeddings.
Description
add support for AWS bedrock Cohere embeddings.
Fixes # (issue)
Type of Change
Please delete options that are not relevant.
- [x] New feature (non-breaking change which adds functionality)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
- [ ] TODO
Suggested Checklist:
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] My changes generate no new warnings
- [x] I ran `dev/reformat backend to appease the lint gods
- [x]
optionalI have tested it in my test docker env.
Please run ./dev/reformat in root dir to make sure there are no lint errors.
Hi there, thanks so much for the PR - I've tested the embedding and got the following error message:
[2024-04-12 17:03:51,589: ERROR/MainProcess] consume document failed
Traceback (most recent call last):
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 31, in invoke
return self._invoke(model, credentials, texts, user)
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/model_runtime/model_providers/bedrock/text_embedding/text_embedding.py", line 76, in _invoke
raise ValueError(f"Got unknown model prefix {model_prefix} when handling block response")
ValueError: Got unknown model prefix cohere when handling block response
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/indexing_runner.py", line 73, in run
self._load(
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/indexing_runner.py", line 677, in _load
tokens += future.result()
File "/Users/guchenhe/.pyenv/versions/3.10.10/lib/python3.10/concurrent/futures/_base.py", line 458, in result
return self.__get_result()
File "/Users/guchenhe/.pyenv/versions/3.10.10/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
raise self._exception
File "/Users/guchenhe/.pyenv/versions/3.10.10/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/indexing_runner.py", line 732, in _process_chunk
index_processor.load(dataset, chunk_documents, with_keywords=False)
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/rag/index_processor/processor/paragraph_index_processor.py", line 60, in load
vector.create(documents)
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/rag/datasource/vdb/vector_factory.py", line 121, in create
embeddings = self._embeddings.embed_documents([document.page_content for document in texts])
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/embedding/cached_embedding.py", line 82, in embed_documents
raise ex
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/embedding/cached_embedding.py", line 51, in embed_documents
embedding_result = self._model_instance.invoke_text_embedding(
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/model_manager.py", line 95, in invoke_text_embedding
return self.model_type_instance.invoke(
File "/Users/guchenhe/Desktop/werk/projects/dify/api/core/model_runtime/model_providers/__base/text_embedding_model.py", line 33, in invoke
raise self._transform_invoke_error(e)
core.model_runtime.errors.invoke.InvokeError: [bedrock] Error: Got unknown model prefix cohere when handling block response
with cohere.embed-english-v3 embedding selected from bedrock. Would you take a look into this?
Closed it due to missed 2 files. I will add a new PR in a branch.