From 0b473f61404df6811b1b773977dd4a1e3a375178 Mon Sep 17 00:00:00 2001 From: Frog Date: Mon, 21 Aug 2023 23:42:58 +0800 Subject: [PATCH] support multi process --- openai/api_requestor.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/openai/api_requestor.py b/openai/api_requestor.py index 504f7c4411..beaa4df5a4 100644 --- a/openai/api_requestor.py +++ b/openai/api_requestor.py @@ -1,5 +1,6 @@ import asyncio import json +import os import time import platform import sys @@ -582,16 +583,20 @@ def request_raw( url, supplied_headers, method, params, files, request_id ) - if not hasattr(_thread_context, "session"): + def _reset_session(): + if hasattr(_thread_context, "session"): + _thread_context.session.close() _thread_context.session = _make_session() _thread_context.session_create_time = time.time() - elif ( - time.time() - getattr(_thread_context, "session_create_time", 0) - >= MAX_SESSION_LIFETIME_SECS + _thread_context.process_id = os.getpid() + + if ( + not hasattr(_thread_context, "session") + or _thread_context.process_id != os.getpid() + or time.time() - _thread_context.session_create_time >= MAX_SESSION_LIFETIME_SECS ): - _thread_context.session.close() - _thread_context.session = _make_session() - _thread_context.session_create_time = time.time() + _reset_session() + try: result = _thread_context.session.request( method,