Spaces:
Runtime error
Runtime error
还原API_URL的设置
Browse files- config.py +4 -0
- request_llm/bridge_all.py +26 -6
config.py
CHANGED
|
@@ -56,3 +56,7 @@ CONCURRENT_COUNT = 100
|
|
| 56 |
# 设置用户名和密码(不需要修改)(相关功能不稳定,与gradio版本和网络都相关,如果本地使用不建议加这个)
|
| 57 |
# [("username", "password"), ("username2", "password2"), ...]
|
| 58 |
AUTHENTICATION = []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
# 设置用户名和密码(不需要修改)(相关功能不稳定,与gradio版本和网络都相关,如果本地使用不建议加这个)
|
| 57 |
# [("username", "password"), ("username2", "password2"), ...]
|
| 58 |
AUTHENTICATION = []
|
| 59 |
+
|
| 60 |
+
# 重新URL重新定向,实现更换API_URL的作用(常规情况下,不要修改!!)
|
| 61 |
+
# 格式 {"https://api.openai.com/v1/chat/completions": "重定向的URL"}
|
| 62 |
+
API_URL_REDIRECT = {}
|
request_llm/bridge_all.py
CHANGED
|
@@ -9,8 +9,9 @@
|
|
| 9 |
2. predict_no_ui_long_connection:在实验过程中发现调用predict_no_ui处理长文档时,和openai的连接容易断掉,这个函数用stream的方式解决这个问题,同样支持多线程
|
| 10 |
"""
|
| 11 |
import tiktoken
|
| 12 |
-
from functools import
|
| 13 |
from concurrent.futures import ThreadPoolExecutor
|
|
|
|
| 14 |
|
| 15 |
from .bridge_chatgpt import predict_no_ui_long_connection as chatgpt_noui
|
| 16 |
from .bridge_chatgpt import predict as chatgpt_ui
|
|
@@ -42,18 +43,37 @@ class LazyloadTiktoken(object):
|
|
| 42 |
def decode(self, *args, **kwargs):
|
| 43 |
encoder = self.get_encoder(self.model)
|
| 44 |
return encoder.decode(*args, **kwargs)
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
tokenizer_gpt35 = LazyloadTiktoken("gpt-3.5-turbo")
|
| 47 |
tokenizer_gpt4 = LazyloadTiktoken("gpt-4")
|
| 48 |
get_token_num_gpt35 = lambda txt: len(tokenizer_gpt35.encode(txt, disallowed_special=()))
|
| 49 |
get_token_num_gpt4 = lambda txt: len(tokenizer_gpt4.encode(txt, disallowed_special=()))
|
| 50 |
|
|
|
|
| 51 |
model_info = {
|
| 52 |
# openai
|
| 53 |
"gpt-3.5-turbo": {
|
| 54 |
"fn_with_ui": chatgpt_ui,
|
| 55 |
"fn_without_ui": chatgpt_noui,
|
| 56 |
-
"endpoint":
|
| 57 |
"max_token": 4096,
|
| 58 |
"tokenizer": tokenizer_gpt35,
|
| 59 |
"token_cnt": get_token_num_gpt35,
|
|
@@ -62,7 +82,7 @@ model_info = {
|
|
| 62 |
"gpt-4": {
|
| 63 |
"fn_with_ui": chatgpt_ui,
|
| 64 |
"fn_without_ui": chatgpt_noui,
|
| 65 |
-
"endpoint":
|
| 66 |
"max_token": 8192,
|
| 67 |
"tokenizer": tokenizer_gpt4,
|
| 68 |
"token_cnt": get_token_num_gpt4,
|
|
@@ -72,7 +92,7 @@ model_info = {
|
|
| 72 |
"api2d-gpt-3.5-turbo": {
|
| 73 |
"fn_with_ui": chatgpt_ui,
|
| 74 |
"fn_without_ui": chatgpt_noui,
|
| 75 |
-
"endpoint":
|
| 76 |
"max_token": 4096,
|
| 77 |
"tokenizer": tokenizer_gpt35,
|
| 78 |
"token_cnt": get_token_num_gpt35,
|
|
@@ -81,7 +101,7 @@ model_info = {
|
|
| 81 |
"api2d-gpt-4": {
|
| 82 |
"fn_with_ui": chatgpt_ui,
|
| 83 |
"fn_without_ui": chatgpt_noui,
|
| 84 |
-
"endpoint":
|
| 85 |
"max_token": 8192,
|
| 86 |
"tokenizer": tokenizer_gpt4,
|
| 87 |
"token_cnt": get_token_num_gpt4,
|
|
|
|
| 9 |
2. predict_no_ui_long_connection:在实验过程中发现调用predict_no_ui处理长文档时,和openai的连接容易断掉,这个函数用stream的方式解决这个问题,同样支持多线程
|
| 10 |
"""
|
| 11 |
import tiktoken
|
| 12 |
+
from functools import lru_cache
|
| 13 |
from concurrent.futures import ThreadPoolExecutor
|
| 14 |
+
from toolbox import get_conf
|
| 15 |
|
| 16 |
from .bridge_chatgpt import predict_no_ui_long_connection as chatgpt_noui
|
| 17 |
from .bridge_chatgpt import predict as chatgpt_ui
|
|
|
|
| 43 |
def decode(self, *args, **kwargs):
|
| 44 |
encoder = self.get_encoder(self.model)
|
| 45 |
return encoder.decode(*args, **kwargs)
|
| 46 |
+
|
| 47 |
+
# Endpoint 重定向
|
| 48 |
+
API_URL_REDIRECT, = get_conf("API_URL_REDIRECT")
|
| 49 |
+
openai_endpoint = "https://api.openai.com/v1/chat/completions"
|
| 50 |
+
api2d_endpoint = "https://openai.api2d.net/v1/chat/completions"
|
| 51 |
+
# 兼容旧版的配置
|
| 52 |
+
try:
|
| 53 |
+
API_URL, = get_conf("API_URL")
|
| 54 |
+
if API_URL != "https://api.openai.com/v1/chat/completions":
|
| 55 |
+
openai_endpoint = API_URL
|
| 56 |
+
print("警告!API_URL配置选项将被弃用,请更换为API_URL_REDIRECT配置")
|
| 57 |
+
except:
|
| 58 |
+
pass
|
| 59 |
+
# 新版配置
|
| 60 |
+
if openai_endpoint in API_URL_REDIRECT: openai_endpoint = API_URL_REDIRECT[openai_endpoint]
|
| 61 |
+
if api2d_endpoint in API_URL_REDIRECT: api2d_endpoint = API_URL_REDIRECT[api2d_endpoint]
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
# 获取tokenizer
|
| 65 |
tokenizer_gpt35 = LazyloadTiktoken("gpt-3.5-turbo")
|
| 66 |
tokenizer_gpt4 = LazyloadTiktoken("gpt-4")
|
| 67 |
get_token_num_gpt35 = lambda txt: len(tokenizer_gpt35.encode(txt, disallowed_special=()))
|
| 68 |
get_token_num_gpt4 = lambda txt: len(tokenizer_gpt4.encode(txt, disallowed_special=()))
|
| 69 |
|
| 70 |
+
|
| 71 |
model_info = {
|
| 72 |
# openai
|
| 73 |
"gpt-3.5-turbo": {
|
| 74 |
"fn_with_ui": chatgpt_ui,
|
| 75 |
"fn_without_ui": chatgpt_noui,
|
| 76 |
+
"endpoint": openai_endpoint,
|
| 77 |
"max_token": 4096,
|
| 78 |
"tokenizer": tokenizer_gpt35,
|
| 79 |
"token_cnt": get_token_num_gpt35,
|
|
|
|
| 82 |
"gpt-4": {
|
| 83 |
"fn_with_ui": chatgpt_ui,
|
| 84 |
"fn_without_ui": chatgpt_noui,
|
| 85 |
+
"endpoint": openai_endpoint,
|
| 86 |
"max_token": 8192,
|
| 87 |
"tokenizer": tokenizer_gpt4,
|
| 88 |
"token_cnt": get_token_num_gpt4,
|
|
|
|
| 92 |
"api2d-gpt-3.5-turbo": {
|
| 93 |
"fn_with_ui": chatgpt_ui,
|
| 94 |
"fn_without_ui": chatgpt_noui,
|
| 95 |
+
"endpoint": api2d_endpoint,
|
| 96 |
"max_token": 4096,
|
| 97 |
"tokenizer": tokenizer_gpt35,
|
| 98 |
"token_cnt": get_token_num_gpt35,
|
|
|
|
| 101 |
"api2d-gpt-4": {
|
| 102 |
"fn_with_ui": chatgpt_ui,
|
| 103 |
"fn_without_ui": chatgpt_noui,
|
| 104 |
+
"endpoint": api2d_endpoint,
|
| 105 |
"max_token": 8192,
|
| 106 |
"tokenizer": tokenizer_gpt4,
|
| 107 |
"token_cnt": get_token_num_gpt4,
|