Получение ошибки Access Denied при обращении к API (хотя API работает нормально при запуске на LocalHost через Django)
Я использовал GPT4all для создания RAG-конвейера с помощью langchain. Когда я использую API для других целей, он работает нормально, но когда я запускаю RAG-конвейер, он выдает ошибку Access Denied.
Ошибка получения: Ошибка разрешения Коренная причина: Невозможно создать каталог загрузки модели в системном профиле. Доступ запрещен к 'C:\Windows\system32\config\systemprofile.cache'
Окружение:... Версия Python: 3.12 Операционная система: Windows Ключевые пакеты: * langchain * gpt4all * pydantic
Полная ошибка:
{"error":"Error in Database Chain: Failed to create model download directory","traceback":"Traceback (most recent call last):\n File "C:\Python312\Lib\site-packages\gpt4all\gpt4all.py", line 323, in retrieve_model\n os.makedirs(DEFAULT_MODEL_DIRECTORY, exist_ok=True)\n File "", line 215, in makedirs\n File "", line 225, in makedirs\nPermissionError: [WinError 5] Access is denied: 'C:\\Windows\\system32\\config\\systemprofile\\.cache'\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File "C:\inetpub\wwwroot\hashmove-ai\HMAI\Controllers\ConversationalAIv2_Controller.py", line 143, in post\n hmgpt_response = query_response(input_query, query_intent)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "C:\inetpub\wwwroot\hashmove-ai\HMAI_Business\ConversationalAIv2_Business.py", line 281, in query_response\n return response_functions.get(intent_response, irrelevant)(query)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "C:\inetpub\wwwroot\hashmove-ai\HMAI_Business\ConversationalAIv2_Business.py", line 251, in logistics\n chain = log_chain(load_llm(), vector_db(), memory(), log_prompt())\n ^^^^^^^^^^\n File "C:\inetpub\wwwroot\hashmove-ai\HMAI_Business\ConversationalAIv2_Business.py", line 90, in load_llm\n loaded_llm = GPT4All(\n ^^^^^^^^\n File "C:\Python312\Lib\site-packages\langchain_core\load\serializable.py", line 125, in init\n super().init(*args, **kwargs)\n File "C:\Python312\Lib\site-packages\pydantic\main.py", line 212, in init\n validated_self = self.pydantic_validator.validate_python(data, self_instance=self)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "C:\Python312\Lib\site-packages\pydantic\_internal\_decorators_v1.py", line 148, in _wrapper1\n return validator(values)\n ^^^^^^^^^^^^^^^^^\n File "C:\Python312\Lib\site-packages\langchain_core\utils\pydantic.py", line 208, in wrapper\n return func(cls, values)\n ^^^^^^^^^^^^^^^^^\n File "C:\Python312\Lib\site-packages\langchain_community\llms\gpt4all.py", line 145, in validate_environment\n values["client"] = GPT4AllModel(\n ^^^^^^^^^^^^^\n File "C:\Python312\Lib\site-packages\gpt4all\gpt4all.py", line 235, in init\n self.config: ConfigType = self.retrieve_model(model_name, model_path=model_path, allow_download=allow_download, verbose=verbose)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File "C:\Python312\Lib\site-packages\gpt4all\gpt4all.py", line 325, in retrieve_model\n raise RuntimeError("Failed to create model download directory") from e\nRuntimeError: Failed to create model download directory\n"}
Пробовал указать путь к кэшу вручную:
os.environ["TIKTOKEN_CACHE_DIR"] = "embeddings-cache"
Но не сработало.
Примечание: Я развернул это на сервере, используя IIS server.
Я развернул это на сервере с использованием IIS-сервера
.
Сообщение об ошибке ясно говорит о том, что это проблема разрешения идентификации. От какой личности ваше приложение получает доступ? Анонимная личность или что-то другое?
Но, судя по сообщению об ошибке, похоже, что ваш код связан с правами доступа к папке системного драйвера. Вы можете попробовать установить права администратора в идентификаторе пула приложений.
- Откройте узел Application Pools под узлом машины. Выберите пул приложений, который необходимо изменить. .
- Щелкните правой кнопкой мыши пул приложений и выберите
Advanced Settings
. - Выберите элемент списка Identity и нажмите многоточие (кнопку с тремя точками).
- Проверьте
Custom account
иSet...
. - Enter Введите имя и пароль локального администратора.