dify
dify copied to clipboard
设置好 OpenAi API key 后,开始对话报错:TypeError: Cannot read properties of undefined(reading 'replace')
问题如题,请问这是哪里配置的有问题吗?
应该是接口报错了,把报错的接口的调用(curl 格式)发一下出来?
点发送后没有发现请求的那个接口报错,但是看控制台日志报了以下的错误
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
看起来是持久化目录被清了,这个私钥文件是用来解密 OpenAI API-Key 的,目前数据需要全部清掉重新部署,重新初始化才行。 应该是可以加个 command 命令来修复这一问题
看起来是持久化目录被清了,这个私钥文件是用来解密 OpenAI API-Key 的,目前数据需要全部清掉重新部署,重新初始化才行。 应该是可以加个 command 命令来修复这一问题
怎么解决呀?
可以有个开关关闭私钥文件加解密吗?