Вот код, который я использовал с Pickle:
Код: Выделить всё
import redis
import pickle
from openai import AzureOpenAI
# Initialize Redis client
redis_client = redis.Redis(
host='redis-13661.c212.ap-south-1-1.ec2.redns.redis-cloud.com',
port=13661,
password="*******",
username="default"
)
# Initialize llm_client
client = AzureOpenAI(
azure_endpoint="https://my-openai-endpoint.azure.com/",
api_key="*******",
api_version="2024-02-01"
)
# Store session data in Redis with an expiration time of 1 hour
session_data = {"llm_client": client}
session_id = "1234"
redis_client.hmset(session_id, 3600, pickle.dumps(session_data))
Код: Выделить всё
TypeError: cannot pickle '_thread.RLock' object
Код: Выделить всё
import redis
import dill
from openai import AzureOpenAI
# Initialize Redis client
redis_client = redis.Redis(
host='redis-13661.c212.ap-south-1-1.ec2.redns.redis-cloud.com',
port=13661,
password="*******",
username="default"
)
# Initialize llm_client
client = AzureOpenAI(
azure_endpoint="https://my-openai-endpoint.azure.com/",
api_key="*******",
api_version="2024-02-01"
)
# Store session data in Redis with an expiration time of 1 hour
session_data = {"llm_client": client}
session_id = "1234"
redis_client.hmset(session_id, 3600, dill.dumps(session_data))
Код: Выделить всё
TypeError: cannot pickle 'SSLContext' object
- Использование Pickle: результаты в _thread.RLock ошибка, вероятно, из-за блокировки объектов в llm_client.
- Использование dill: приводит к ошибке SSLContext, что предполагает, что dill< /code> также не может обрабатывать определенные объекты в llm_client.
Мой вопрос
- Есть ли способ сериализовать объект llm_client для хранения в Redis?
- Существуют ли альтернативные подходы для обработки неконфигурируемых объектов в Redis, например исключить их и реконструировать объект после извлечения?
Будем очень признательны за любые рекомендации или предложения по передовому опыту.
Подробнее здесь: https://stackoverflow.com/questions/791 ... le-or-dill
Мобильная версия