Ошибка json появляется только на одном компьютере?
С websocket клиента прилетает запрос, который исправен ({type: "some_type", "payload": {"query": "input value"}}) , и он идет в функцию work_with_user_request и в строчке response = qa_chain({"query": message}) возникает ошибка
При чем эта ошибка появляется только на одном компьютере, на другом ее нет и все отрабатывает хорошо. Версии Python совпадают (3.11.2), версии пакетов совпадают, переменные среды Path обновил. Переменная prompt_template валидна. Что может быть не так?
retriever = vectordb2.as_retriever(search_type="mmr", search_kwargs={
"k": 6, "fetch_k": 50}) # Контекст в 6 релевантных документов
openai = ChatOpenAI(model_name="gpt-4")
# промпт
prompt_template = """На основе предоставленного контекста и случая {some} придумай вопрос длиной строго больше 10 токенов и 2 строго коротких варианта ответа. 1 ответа обязательно неверный. Правильный ответ выпиши. Если не можешь найти информацию в данном контексте скажи, что не знаешь и ничего не придумывай.
Контекст: {context}
Вопрос: {some}
Отвечай как неопытный преподаватель с опытом работы 1 год:
"""
PROMPT = PromptTemplate(
template=prompt_template, input_variables=["context", "some"]
)
# Create the chain to answer questions и добавим промп
chain_type_kwargs = {"prompt": PROMPT}
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7),
chain_type="stuff",
retriever=retriever,
chain_type_kwargs=chain_type_kwargs, # промпт
return_source_documents=True
)
def work_with_user_request(message):
try:
response = qa_chain({"query": message})
return response["result"]
except json.decoder.JSONDecodeError as e:
print(f"При отправке ответа произошла ошибка: {e}")
async def response(websocket, path):
print("New connection")
while True:
request_from_client = await websocket.recv() # запрос от клиента
request_from_client_as_obj = json.loads(request_from_client)
type_from_client = request_from_client_as_obj["type"]
response = {"result": "Invalid request"}
# отправка ответа для определенного типа запроса
if type_from_client == "USER-REQUEST":
response["result"] = work_with_user_request(
request_from_client_as_obj["payload"]["query"])
response["current_type"] = type_from_client
# отправка ответа клиенту
await websocket.send(json.dumps(response))
if __name__ == "__main__":
st_ser = websockets.serve(response, "localhost", 8831)
asyncio.get_event_loop().run_until_complete(st_ser)
asyncio.get_event_loop().run_forever()
Ошибка:
Invalid \uXXXX escape: line 1 column 4246 (char 4245)
Traceback (most recent call last):
File "c:\Users\alexe\OneDrive\Рабочий стол\ai\LangChainChromaDB.py", line 170, in work_with_user_request
response = qa_chain({"query": message})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\chains\base.py", line 292, in __call__
raise e
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\chains\base.py", line 286, in __call__
self._call(inputs, run_manager=run_manager)
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\chains\retrieval_qa\base.py", line 137, in _call
docs = self._get_docs(question, run_manager=_run_manager)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\chains\retrieval_qa\base.py", line 217, in _get_docs
return self.retriever.get_relevant_documents(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\schema\retriever.py", line 208, in get_relevant_documents
raise e
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\schema\retriever.py", line 201, in get_relevant_documents
result = self._get_relevant_documents(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\vectorstores\base.py", line 571, in _get_relevant_documents
docs = self.vectorstore.max_marginal_relevance_search(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\vectorstores\chroma.py", line 467, in max_marginal_relevance_search docs = self.max_marginal_relevance_search_by_vector(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\vectorstores\chroma.py", line 415, in max_marginal_relevance_search_by_vector
results = self.__query_collection(
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\utils\utils.py", line 33, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\langchain\vectorstores\chroma.py", line 156, in __query_collection
return self._collection.query(
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\chromadb\api\models\Collection.py", line 220, in query
return self._client._query(
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\chromadb\api\segment.py", line 488, in _query
vector_reader = self._manager.get_segment(collection_id, VectorReader)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\chromadb\segment\impl\manager\local.py", line 144, in get_segment
instance = self._instance(self._segment_cache[collection_id][scope])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\chromadb\segment\impl\manager\local.py", line 170, in _instance
instance.start()
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\chromadb\segment\impl\vector\local_hnsw.py", line 80, in start
self._subscription = self._consumer.subscribe(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\chromadb\db\mixins\embeddings_queue.py", line 205, in subscribe
self._backfill(subscription)
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\site-packages\chromadb\db\mixins\embeddings_queue.py", line 296, in _backfill
metadata=json.loads(row[5]) if row[5] else None,
^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alexe\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
^^^^^^^^^^^^^^^^^^^^^^
json.decoder.JSONDecodeError: Invalid \uXXXX escape: line 1 column 4246 (char 4245)