Я работаю над приложением RAG, которое предоставляет службу пользовательского бота GPT. Я храню URL-адреса файлов, которые GPT использует для ответа на запрос пользователя.
Я сохраняю встраивание для каждого bot_id отдельно. Ниже приведены вложения для каждого бота, хранящиеся отдельно, которые извлекаются на основе используемого bot_id.
[img]https://i.sstatic .net/P1ECX.png[/img]
Когда пользователь меняет URL-адреса файлов, я удаляю существующую папку ChromaDB для этого бота и заново создаю встраивания для нового URL-адреса файла, и появляется следующая ошибка при воссоздании вложений:
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 438, in _validate_tenant_database
self._admin_client.get_tenant(name=tenant)
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 486, in get_tenant
return self._server.get_tenant(name=name)
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/segment.py", line 140, in get_tenant
return self._sysdb.get_tenant(name=name)
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/mixins/sysdb.py", line 125, in get_tenant
with self.tx() as cur:
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite.py", line 131, in tx
return TxWrapper(self._conn_pool, stack=self._tx_stack)
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite.py", line 31, in __init__
self._conn = conn_pool.connect()
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite_pool.py", line 141, in connect
new_connection = Connection(
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite_pool.py", line 20, in __init__
self._conn = sqlite3.connect(
sqlite3.OperationalError: unable to open database file
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 1463, in wsgi_app
response = self.full_dispatch_request()
File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 872, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 870, in full_dispatch_request
rv = self.dispatch_request()
File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 855, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
File "/home/ubuntu/chatbot/main.py", line 460, in qa
message = storeEmbeddings(embedding_model, raw_text, bot_id)
File "/home/ubuntu/chatbot/embeddings.py", line 12, in storeEmbeddings
db = Chroma.from_documents(
File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 778, in from_documents
return cls.from_texts(
File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 714, in from_texts
chroma_collection = cls(
File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 120, in __init__
self._client = chromadb.Client(_client_settings)
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/__init__.py", line 274, in Client
return ClientCreator(tenant=tenant, database=database, settings=settings)
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 144, in __init__
self._validate_tenant_database(tenant=tenant, database=database)
File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 447, in _validate_tenant_database
raise ValueError(
ValueError: Could not connect to tenant default_tenant. Are you sure it exists?
Похоже, что он все еще пытается получить доступ к старой базе данных ChromaDB для этого бота, хотя папка была успешно удалена. Я удалил по папке, используя:
И самое странное то, что когда я на этом этапе останавливаю и запускаю приложение Python, оно воссоздает встроенные элементы для этого бота.
Как лучше всего удалить существующие внедрения ChromaDB и создать новые документы?
Я работаю над приложением RAG, которое предоставляет службу пользовательского бота GPT. Я храню URL-адреса файлов, которые GPT использует для ответа на запрос пользователя. [img]https://i.sstatic.net/yR3jL.png[/img]
Я сохраняю встраивание для каждого bot_id отдельно. Ниже приведены вложения для каждого бота, хранящиеся отдельно, которые извлекаются на основе используемого bot_id. [img]https://i.sstatic .net/P1ECX.png[/img]
Когда пользователь меняет URL-адреса файлов, я удаляю существующую папку ChromaDB для этого бота и заново создаю встраивания для нового URL-адреса файла, и появляется следующая ошибка при воссоздании вложений: [code] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 438, in _validate_tenant_database self._admin_client.get_tenant(name=tenant) File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 486, in get_tenant return self._server.get_tenant(name=name) File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/segment.py", line 140, in get_tenant return self._sysdb.get_tenant(name=name) File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/mixins/sysdb.py", line 125, in get_tenant with self.tx() as cur: File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite.py", line 131, in tx return TxWrapper(self._conn_pool, stack=self._tx_stack) File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite.py", line 31, in __init__ self._conn = conn_pool.connect() File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite_pool.py", line 141, in connect new_connection = Connection( File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/db/impl/sqlite_pool.py", line 20, in __init__ self._conn = sqlite3.connect( sqlite3.OperationalError: unable to open database file
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 1463, in wsgi_app response = self.full_dispatch_request() File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 872, in full_dispatch_request rv = self.handle_user_exception(e) File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 870, in full_dispatch_request rv = self.dispatch_request() File "/home/ubuntu/.local/lib/python3.10/site-packages/flask/app.py", line 855, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] File "/home/ubuntu/chatbot/main.py", line 460, in qa message = storeEmbeddings(embedding_model, raw_text, bot_id) File "/home/ubuntu/chatbot/embeddings.py", line 12, in storeEmbeddings db = Chroma.from_documents( File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 778, in from_documents return cls.from_texts( File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 714, in from_texts chroma_collection = cls( File "/home/ubuntu/.local/lib/python3.10/site-packages/langchain_community/vectorstores/chroma.py", line 120, in __init__ self._client = chromadb.Client(_client_settings) File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/__init__.py", line 274, in Client return ClientCreator(tenant=tenant, database=database, settings=settings) File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 144, in __init__ self._validate_tenant_database(tenant=tenant, database=database) File "/home/ubuntu/.local/lib/python3.10/site-packages/chromadb/api/client.py", line 447, in _validate_tenant_database raise ValueError( ValueError: Could not connect to tenant default_tenant. Are you sure it exists? [/code] Похоже, что он все еще пытается получить доступ к старой базе данных ChromaDB для этого бота, хотя папка была успешно удалена. Я удалил по папке, используя: [code]import shutil shutil.rmtree("Embeddings/1001") [/code] Функция, создающая и сохраняющая внедрения: [code]def storeEmbeddings(embedding, text, bot_id, embedding_folder):
db = Chroma.from_documents( texts, embedding, persist_directory=embedding_folder+"//"+bot_id, client_settings=Settings(anonymized_telemetry=False,is_persistent=True,), )
return sucessMessage
except Exception as e: return str(e) [/code] И самое странное то, что когда я на этом этапе останавливаю и запускаю приложение Python, оно воссоздает встроенные элементы для этого бота. Как лучше всего удалить существующие внедрения ChromaDB и создать новые документы?
Я пытаюсь получить доступ к базе данных с именем app.db 'через sqlite3.connect () с использованием конфигурации с URI файла. Я также запускаю это в виртуальном окружении, и я нахожусь в Windows.from flask import current_app
У меня есть кадр данных pandas, как показано ниже.
activity User_Id \
0 VIEWED MOVIE 158d292ec18a49
1 VIEWED MOVIE 158d292ec18a49
2 VIEWED MOVIE 158d292ec18a49
3 VIEWED MOVIE 158d292ec18a49
4 VIEWED MOVIE 158e00978d7a6c
Я определил таблицу с именем user_table и запустил db.create_all(), чтобы создать таблицу, но получил ошибку «нет такой таблицы user_table» при фиксации для обновления информации о пользователе.
Как я тестирую:
(under /project) python3 manage.py...
Здравствуйте. Для своего проекта я использовал микроблог Flask Мигеля Гринберга. Я скачал последнюю версию и открыл ее в коде Visual Studio. Я скачал необходимые библиотеки и настроил виртуальную среду. Когда я запускаю его, например, когда я хочу...