设置好 OpenAi API key 后,开始对话报错:TypeError: Cannot read properties of undefined(reading 'replace') #47

Closed
opened 2026-02-21 17:25:45 -05:00 by yindo · 5 comments
Owner

Originally created by @guanman on GitHub (May 17, 2023).

image
问题如题,请问这是哪里配置的有问题吗?

Originally created by @guanman on GitHub (May 17, 2023). ![image](https://github.com/langgenius/dify/assets/41034077/e8c6eafc-2529-489a-82a0-b4b543ef1a72) 问题如题,请问这是哪里配置的有问题吗?
yindo closed this issue 2026-02-21 17:25:45 -05:00
Author
Owner

@iamjoel commented on GitHub (May 17, 2023):

应该是接口报错了,把报错的接口的调用(curl 格式)发一下出来?

@iamjoel commented on GitHub (May 17, 2023): 应该是接口报错了,把报错的接口的调用(curl 格式)发一下出来?
Author
Owner

@guanman commented on GitHub (May 17, 2023):

点发送后没有发现请求的那个接口报错,但是看控制台日志报了以下的错误

api_1 | ERROR:root:Unknown Error in completion
api_1 | Traceback (most recent call last):
api_1 | File "/app/api/libs/rsa.py", line 45, in decrypt
api_1 | private_key = storage.load(filepath)
api_1 | File "/app/api/extensions/ext_storage.py", line 65, in load
api_1 | raise FileNotFoundError("File not found")
api_1 | FileNotFoundError: File not found
api_1 |
api_1 | During handling of the above exception, another exception occurred:
api_1 |
api_1 | Traceback (most recent call last):
api_1 | File "/app/api/services/completion_service.py", line 197, in generate_worker
api_1 | Completion.generate(
api_1 | File "/app/api/core/completion.py", line 34, in generate
api_1 | cls.validate_query_tokens(app.tenant_id, app_model_config, query)
api_1 | File "/app/api/core/completion.py", line 252, in validate_query_tokens
api_1 | llm = LLMBuilder.to_llm_from_model(
api_1 | File "/app/api/core/llm/llm_builder.py", line 64, in to_llm_from_model
api_1 | return cls.to_llm(
api_1 | File "/app/api/core/llm/llm_builder.py", line 43, in to_llm
api_1 | model_credentials = cls.get_model_credentials(tenant_id, model_name)
api_1 | File "/app/api/core/llm/llm_builder.py", line 103, in get_model_credentials
api_1 | return provider_service.get_credentials(model_name)
api_1 | File "/app/api/core/llm/provider/llm_provider_service.py", line 32, in get_credentials
api_1 | return self.provider.get_credentials(model_id)
api_1 | File "/app/api/core/llm/provider/openai_provider.py", line 28, in get_credentials
api_1 | 'openai_api_key': self.get_provider_api_key(model_id=model_id)
api_1 | File "/app/api/core/llm/provider/base.py", line 39, in get_provider_api_key
api_1 | return self.get_decrypted_token(provider.encrypted_config)
api_1 | File "/app/api/core/llm/provider/base.py", line 100, in get_decrypted_token
api_1 | return self.decrypt_token(token)
api_1 | File "/app/api/core/llm/provider/base.py", line 108, in decrypt_token
api_1 | return rsa.decrypt(base64.b64decode(token), self.tenant_id)
api_1 | File "/app/api/libs/rsa.py", line 47, in decrypt
api_1 | raise PrivkeyNotFoundError("Private key not found, tenant_id: {tenant_id}".format(tenant_id=tenant_id))
api_1 | libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: e5b07873-2bfd-4b1a-93f5-deec2ce1c591
api_1 | ERROR:root:internal server error.
api_1 | Traceback (most recent call last):
api_1 | File "/app/api/controllers/console/app/completion.py", line 158, in generate
api_1 | for chunk in response:
api_1 | File "/app/api/services/completion_service.py", line 404, in generate
api_1 | cls.handle_error(result)
nginx_1 | 192.168.1.39 - - [18/May/2023:02:07:56 +0000] "POST /console/api/apps/e33e9f42-e320-4110-89b4-40f4f51509ec/chat-messages HTTP/1.1" 200 236 "http://xxx.xxx.xxx/app/e33e9f42-e320-4110-89b4-40f4f51509ec/configuration" "LogStatistic" "-"
api_1 | File "/app/api/services/completion_service.py", line 506, in handle_error
api_1 | raise Exception(description)
api_1 | Exception: Private key not found, tenant_id: e5b07873-2bfd-4b1a-93f5-deec2ce1c591
api_1 | ERROR:app:Exception on /console/api/apps/e33e9f42-e320-4110-89b4-40f4f51509ec/chat-messages [POST]
api_1 | Traceback (most recent call last):
api_1 | File "/app/api/controllers/console/app/completion.py", line 158, in generate
api_1 | for chunk in response:
api_1 | File "/app/api/services/completion_service.py", line 404, in generate
api_1 | cls.handle_error(result)
api_1 | File "/app/api/services/completion_service.py", line 506, in handle_error
api_1 | raise Exception(description)
api_1 | Exception: Private key not found, tenant_id: e5b07873-2bfd-4b1a-93f5-deec2ce1c591

@guanman commented on GitHub (May 17, 2023): 点发送后没有发现请求的那个接口报错,但是看控制台日志报了以下的错误 api_1 | ERROR:root:Unknown Error in completion api_1 | Traceback (most recent call last): api_1 | File "/app/api/libs/rsa.py", line 45, in decrypt api_1 | private_key = storage.load(filepath) api_1 | File "/app/api/extensions/ext_storage.py", line 65, in load api_1 | raise FileNotFoundError("File not found") api_1 | FileNotFoundError: File not found api_1 | api_1 | During handling of the above exception, another exception occurred: api_1 | api_1 | Traceback (most recent call last): api_1 | File "/app/api/services/completion_service.py", line 197, in generate_worker api_1 | Completion.generate( api_1 | File "/app/api/core/completion.py", line 34, in generate api_1 | cls.validate_query_tokens(app.tenant_id, app_model_config, query) api_1 | File "/app/api/core/completion.py", line 252, in validate_query_tokens api_1 | llm = LLMBuilder.to_llm_from_model( api_1 | File "/app/api/core/llm/llm_builder.py", line 64, in to_llm_from_model api_1 | return cls.to_llm( api_1 | File "/app/api/core/llm/llm_builder.py", line 43, in to_llm api_1 | model_credentials = cls.get_model_credentials(tenant_id, model_name) api_1 | File "/app/api/core/llm/llm_builder.py", line 103, in get_model_credentials api_1 | return provider_service.get_credentials(model_name) api_1 | File "/app/api/core/llm/provider/llm_provider_service.py", line 32, in get_credentials api_1 | return self.provider.get_credentials(model_id) api_1 | File "/app/api/core/llm/provider/openai_provider.py", line 28, in get_credentials api_1 | 'openai_api_key': self.get_provider_api_key(model_id=model_id) api_1 | File "/app/api/core/llm/provider/base.py", line 39, in get_provider_api_key api_1 | return self.get_decrypted_token(provider.encrypted_config) api_1 | File "/app/api/core/llm/provider/base.py", line 100, in get_decrypted_token api_1 | return self.decrypt_token(token) api_1 | File "/app/api/core/llm/provider/base.py", line 108, in decrypt_token api_1 | return rsa.decrypt(base64.b64decode(token), self.tenant_id) api_1 | File "/app/api/libs/rsa.py", line 47, in decrypt api_1 | raise PrivkeyNotFoundError("Private key not found, tenant_id: {tenant_id}".format(tenant_id=tenant_id)) api_1 | libs.rsa.PrivkeyNotFoundError: Private key not found, tenant_id: e5b07873-2bfd-4b1a-93f5-deec2ce1c591 api_1 | ERROR:root:internal server error. api_1 | Traceback (most recent call last): api_1 | File "/app/api/controllers/console/app/completion.py", line 158, in generate api_1 | for chunk in response: api_1 | File "/app/api/services/completion_service.py", line 404, in generate api_1 | cls.handle_error(result) nginx_1 | 192.168.1.39 - - [18/May/2023:02:07:56 +0000] "POST /console/api/apps/e33e9f42-e320-4110-89b4-40f4f51509ec/chat-messages HTTP/1.1" 200 236 "http://xxx.xxx.xxx/app/e33e9f42-e320-4110-89b4-40f4f51509ec/configuration" "LogStatistic" "-" api_1 | File "/app/api/services/completion_service.py", line 506, in handle_error api_1 | raise Exception(description) api_1 | Exception: Private key not found, tenant_id: e5b07873-2bfd-4b1a-93f5-deec2ce1c591 api_1 | ERROR:app:Exception on /console/api/apps/e33e9f42-e320-4110-89b4-40f4f51509ec/chat-messages [POST] api_1 | Traceback (most recent call last): api_1 | File "/app/api/controllers/console/app/completion.py", line 158, in generate api_1 | for chunk in response: api_1 | File "/app/api/services/completion_service.py", line 404, in generate api_1 | cls.handle_error(result) api_1 | File "/app/api/services/completion_service.py", line 506, in handle_error api_1 | raise Exception(description) api_1 | Exception: Private key not found, tenant_id: e5b07873-2bfd-4b1a-93f5-deec2ce1c591
Author
Owner

@takatost commented on GitHub (May 18, 2023):

看起来是持久化目录被清了,这个私钥文件是用来解密 OpenAI API-Key 的,目前数据需要全部清掉重新部署,重新初始化才行。
应该是可以加个 command 命令来修复这一问题

@takatost commented on GitHub (May 18, 2023): 看起来是持久化目录被清了,这个私钥文件是用来解密 OpenAI API-Key 的,目前数据需要全部清掉重新部署,重新初始化才行。 应该是可以加个 command 命令来修复这一问题
Author
Owner

@chanjetsdp commented on GitHub (May 25, 2023):

看起来是持久化目录被清了,这个私钥文件是用来解密 OpenAI API-Key 的,目前数据需要全部清掉重新部署,重新初始化才行。 应该是可以加个 command 命令来修复这一问题

怎么解决呀?

@chanjetsdp commented on GitHub (May 25, 2023): > 看起来是持久化目录被清了,这个私钥文件是用来解密 OpenAI API-Key 的,目前数据需要全部清掉重新部署,重新初始化才行。 应该是可以加个 command 命令来修复这一问题 怎么解决呀?
Author
Owner

@iamsk commented on GitHub (May 27, 2023):

可以有个开关关闭私钥文件加解密吗?

@iamsk commented on GitHub (May 27, 2023): 可以有个开关关闭私钥文件加解密吗?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#47