mirror of
https://github.com/Yanyutin753/RefreshToV1Api.git
synced 2025-10-14 15:11:26 +00:00
Merge branch 'main' into main
This commit is contained in:
@@ -115,10 +115,14 @@
|
||||
|
||||
- `use_oaiusercontent_url`: 是否使用OpenAI官方图片域名,可选值为:`true`、`false`,默认为 `false`,如果设置为 `true`,则会使用OpenAI的图片域名,否则使用 `backend_container_url` 参数的值作为图片域名。如果设置为 `true`,则 `backend_container_url` 可以不填且图片不会下载到image文件夹中。
|
||||
|
||||
- `use_pandora_file_server`: 是否使用PandoraNext的文件服务器,可选值为:`true`、`false`,默认为 `true`,如果设置为 `true`,则会从PandoraNext的文件服务器下载图片等文件,否则将直接从openai的文件服务器下载文件。
|
||||
|
||||
- `custom_arkose_url`: 是否需要自定义Arkose Token获取地址,可选值为:`true`、`false`,默认为 `false`,如果设置为 `true`,则会使用 `arkose_urls` 参数的值作为Arkose Token获取地址,否则使用默认的PandoraNext Arkose Token获取地址。
|
||||
|
||||
- `arkose_urls`: Arkose Token获取地址,如果 `custom_arkose_url` 为 `false`,则该参数无效,如果 `custom_arkose_url` 为 `true`,则该参数必填,且需要填写为可以获取Arkose Token的地址列表,例如:`https://arkose-proxy-1.pandoranext.com/<proxy-prefix>,https://arkose-proxy-2.pandoranext.com/<proxy-prefix>`,支持同时设置多个Arkose Token获取地址,从前往后轮询调用,如果第一个获取失败则自动从第二个获取,以此类推。
|
||||
|
||||
- `dalle_prompt_prefix`: 自定义的DALLE接口prompt前缀,可以引导gpt完成绘图任务。
|
||||
|
||||
PS. 注意,arkose_urls中的地址需要支持PandoraNext的Arkose Token获取路径与参数,并与PandoraNext的Arkose Token获取接口的响应格式保持一致。
|
||||
|
||||
- `bot_mode`
|
||||
|
@@ -13,8 +13,10 @@
|
||||
"gpt_3_5_new_name": "gpt-3.5-turbo",
|
||||
"need_delete_conversation_after_response": "true",
|
||||
"use_oaiusercontent_url": "false",
|
||||
"use_pandora_file_server": "true",
|
||||
"custom_arkose_url": "false",
|
||||
"arkose_urls": "",
|
||||
"dalle_prompt_prefix": "请严格根据我的以下要求完成绘图任务,如果我没有发出指定的绘画指令,则绘制出我发出的文字对应的图片:",
|
||||
"bot_mode": {
|
||||
"enabled": "false",
|
||||
"enabled_markdown_image_output": "false",
|
||||
|
26
main.py
26
main.py
@@ -59,12 +59,13 @@ NEED_DELETE_CONVERSATION_AFTER_RESPONSE = CONFIG.get('need_delete_conversation_a
|
||||
|
||||
USE_OAIUSERCONTENT_URL = CONFIG.get('use_oaiusercontent_url', 'false').lower() == 'true'
|
||||
|
||||
USE_PANDORA_FILE_SERVER = CONFIG.get('use_pandora_file_server', 'false').lower() == 'true'
|
||||
|
||||
CUSTOM_ARKOSE = CONFIG.get('custom_arkose_url', 'false').lower() == 'true'
|
||||
|
||||
ARKOSE_URLS = CONFIG.get('arkose_urls', "")
|
||||
|
||||
# 创建FakeUserAgent对象
|
||||
ua = UserAgent()
|
||||
DALLE_PROMPT_PREFIX = CONFIG.get('dalle_prompt_prefix', '')
|
||||
|
||||
# 设置日志级别
|
||||
log_level_dict = {
|
||||
@@ -92,6 +93,9 @@ stream_handler = logging.StreamHandler()
|
||||
stream_handler.setFormatter(log_formatter)
|
||||
logger.addHandler(stream_handler)
|
||||
|
||||
# 创建FakeUserAgent对象
|
||||
ua = UserAgent()
|
||||
|
||||
def generate_unique_id(prefix):
|
||||
# 生成一个随机的 UUID
|
||||
random_uuid = uuid.uuid4()
|
||||
@@ -183,9 +187,9 @@ CORS(app, resources={r"/images/*": {"origins": "*"}})
|
||||
PANDORA_UPLOAD_URL = 'files.pandoranext.com'
|
||||
|
||||
|
||||
VERSION = '0.4.3'
|
||||
VERSION = '0.4.5'
|
||||
# VERSION = 'test'
|
||||
UPDATE_INFO = '修复各种文件生成的bug'
|
||||
UPDATE_INFO = '支持使用pandora的文件服务器下载文件'
|
||||
# UPDATE_INFO = '【仅供临时测试使用】 '
|
||||
|
||||
with app.app_context():
|
||||
@@ -257,11 +261,15 @@ with app.app_context():
|
||||
|
||||
logger.info(f"use_oaiusercontent_url: {USE_OAIUSERCONTENT_URL}")
|
||||
|
||||
logger.info(f"use_pandora_file_server: {USE_PANDORA_FILE_SERVER}")
|
||||
|
||||
logger.info(f"custom_arkose_url: {CUSTOM_ARKOSE}")
|
||||
|
||||
if CUSTOM_ARKOSE:
|
||||
logger.info(f"arkose_urls: {ARKOSE_URLS}")
|
||||
|
||||
logger.info(f"DALLE_prompt_prefix: {DALLE_PROMPT_PREFIX}")
|
||||
|
||||
logger.info(f"==========================================")
|
||||
|
||||
|
||||
@@ -828,6 +836,8 @@ def replace_sandbox(text, conversation_id, message_id, api_key):
|
||||
def replace_match(match):
|
||||
sandbox_path = match.group(1)
|
||||
download_url = get_download_url(conversation_id, message_id, sandbox_path)
|
||||
if USE_PANDORA_FILE_SERVER == True:
|
||||
download_url = download_url.replace("files.oaiusercontent.com", "files.pandoranext.com")
|
||||
file_name = extract_filename(download_url)
|
||||
timestamped_file_name = timestamp_filename(file_name)
|
||||
if USE_OAIUSERCONTENT_URL == False:
|
||||
@@ -979,6 +989,8 @@ def data_fetcher(upstream_response, data_queue, stop_event, last_data_time, api_
|
||||
|
||||
if image_response.status_code == 200:
|
||||
download_url = image_response.json().get('download_url')
|
||||
if USE_PANDORA_FILE_SERVER == True:
|
||||
download_url = download_url.replace("files.oaiusercontent.com", "files.pandoranext.com")
|
||||
logger.debug(f"download_url: {download_url}")
|
||||
if USE_OAIUSERCONTENT_URL == True:
|
||||
if ((BOT_MODE_ENABLED == False) or (BOT_MODE_ENABLED == True and BOT_MODE_ENABLED_MARKDOWN_IMAGE_OUTPUT == True)):
|
||||
@@ -1209,6 +1221,8 @@ def data_fetcher(upstream_response, data_queue, stop_event, last_data_time, api_
|
||||
|
||||
if image_response.status_code == 200:
|
||||
download_url = image_response.json().get('download_url')
|
||||
if USE_PANDORA_FILE_SERVER == True:
|
||||
download_url = download_url.replace("files.oaiusercontent.com", "files.pandoranext.com")
|
||||
logger.debug(f"download_url: {download_url}")
|
||||
if USE_OAIUSERCONTENT_URL == True:
|
||||
execution_output_image_url_buffer = download_url
|
||||
@@ -1589,6 +1603,8 @@ def images_generations():
|
||||
|
||||
prompt = data.get('prompt', '')
|
||||
|
||||
prompt = DALLE_PROMPT_PREFIX + prompt
|
||||
|
||||
# 获取请求中的response_format参数,默认为"url"
|
||||
response_format = data.get('response_format', 'url')
|
||||
|
||||
@@ -1702,6 +1718,8 @@ def images_generations():
|
||||
|
||||
if image_response.status_code == 200:
|
||||
download_url = image_response.json().get('download_url')
|
||||
if USE_PANDORA_FILE_SERVER == True:
|
||||
download_url = download_url.replace("files.oaiusercontent.com", "files.pandoranext.com")
|
||||
logger.debug(f"download_url: {download_url}")
|
||||
if USE_OAIUSERCONTENT_URL == True and response_format == "url":
|
||||
image_link = f"{download_url}"
|
||||
|
Reference in New Issue
Block a user