File size: 9,379 Bytes
412be29
 
 
 
 
 
72e12da
412be29
 
 
 
 
 
 
 
 
72e12da
 
 
 
412be29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72e12da
412be29
 
 
 
 
 
 
 
 
 
72e12da
 
 
 
 
 
 
412be29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72e12da
412be29
72e12da
412be29
 
72e12da
412be29
72e12da
412be29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
import os
from pathlib import Path
import gradio as gr
import requests
import json

VERSION = "v 1.5.4"

CHATGLM_MODEL = None
CHATGLM_TOKENIZER = None
LLAMA_MODEL = None
LLAMA_INFERENCER = None

# ChatGPT 设置

INITIAL_SYSTEM_PROMPT = "You are a helpful assistant. You follow all of the user's instructions and answer all of their questions without going out of your way to answer them. Respond using markdown."
API_HOST = "https://neuroapi.host"
COMPLETION_URL = "https://neuroapi.host/v1/chat/completions"
BALANCE_API_URL="https://neuroapi.host/v1/dashboard/billing/credit_grants"
USAGE_API_URL="https://neuroapi.host/v1/dashboard/billing/usage"
HISTORY_DIR = Path("history")
HISTORY_DIR = "history"
TEMPLATES_DIR = "templates"

# 错误信息
STANDARD_ERROR_MSG = "☹️Произошла ошибка:"# Стандартный префикс для сообщений об ошибках 
GENERAL_ERROR_MSG = "Произошла ошибка при получении диалога, пожалуйста, проверьте лог бэкенда"
ERROR_RETRIEVE_MSG = "Пожалуйста, проверьте свое интернет-соединение или валидность API-Key."
CONNECTION_TIMEOUT_MSG = "Тайм-аут соединения, не удалось получить диалог."# Тайм-аут соединения 
READ_TIMEOUT_MSG = "Тайм-аут чтения, не удалось получить диалог."# Тайм-аут чтения 
PROXY_ERROR_MSG = "Ошибка прокси, не удалось получить диалог."# Ошибка прокси 
SSL_ERROR_PROMPT = "Ошибка SSL, не удалось получить диалог."# Ошибка SSL 
NO_APIKEY_MSG = "API key пуст, пожалуйста, проверьте, правильно ли он введен."# Длина API key меньше 51 бита 
NO_INPUT_MSG = "Пожалуйста, введите содержание диалога."# Не введено содержание диалога 
BILLING_NOT_APPLICABLE_MSG = "Информация о биллинге не применима"# Информация о биллинге, возвращаемая локально запущенной моделью

TIMEOUT_STREAMING = 240 # Время ожидания для потокового диалога 
TIMEOUT_ALL = 400 # Время ожидания для непотокового диалога 
ENABLE_STREAMING_OPTION = True # Включить ли флажок для выбора отображения ответа в режиме реального времени 
HIDE_MY_KEY = False # Если вы хотите скрыть свой API ключ в UI, установите это значение в True 
CONCURRENT_COUNT = 500 # Количество пользователей, которые могут использовать одновременно

SIM_K = 5
INDEX_QUERY_TEMPRATURE = 1.0

CHUANHU_TITLE = "NeuroGPT " + VERSION

CHUANHU_DESCRIPTION = "[ℹ️ Телеграм канал проекта](https://t.me/neurogen_news) <br /> [💰 Поддержать автора](https://boosty.to/neurogen) </br>"

ONLINE_MODELS = [
    'gpt-3.5-turbo',
    'gpt-3.5-turbo',
    'gpt-3.5-turbo-0613',
    'gpt-3.5-turbo-16k',
    'gpt-3.5-turbo-16k-0613',
    'gpt-4',
    'gpt-4-0613',
    'chat-agent-beta',
]

NAGA_MODELS = [
    'naga-gpt-3.5-turbo-16k',
    'naga-gpt-4',
    'naga-llama-2-70b-chat',
    #'naga-claude-2'
    #'naga-text-davinci-003',
]

CHATTY_MODELS = [
    'chatty-gpt-3.5-turbo-16k',
    'chatty-gpt-4',
    #'gpt-4-32k-chatty-api',
]


PURGPT_MODELS = [
    'purgpt-gpt-3.5-turbo-16k',
    'purgpt-gpt-3.5-turbo',
    'purgpt-text-davinci-003'
]

if os.environ.get('HIDE_OTHER_PROVIDERS', 'false') == 'true':
    MODELS = ONLINE_MODELS 
else:
    MODELS = ONLINE_MODELS

if os.environ.get('SHOW_ALL_PROVIDERS', 'false') == 'true':
    MODELS = ONLINE_MODELS + NAGA_MODELS + PURGPT_MODELS
else:
    MODELS = ONLINE_MODELS

DEFAULT_MODEL = 0

os.makedirs("history", exist_ok=True)

MODEL_TOKEN_LIMIT = {
    "gpt-3.5-turbo": 4096,
    "gpt-3.5-turbo-16k": 16384,
    "gpt-3.5-turbo-0301": 4096,
    "gpt-3.5-turbo-0613": 4096,
    "gpt-4": 8192,
    "gpt-4-0314": 8192,
    "gpt-4-0613": 8192,
    "gpt-4-32k": 32768,
    "neuro-gpt-4": 8192,
    "neuro-gpt-4-0314": 8192,
    "neuro-gpt-4-0613": 8192,
    "neuro-gpt-4-32k": 32768,
    "neuro-gpt-4-32k-0613": 32768,
    "gpt-4-32k-poe": 32768,
    "gpt-3.5-turbo-16k-openai": 16384,
    "gpt-3.5-turbo-16k-poe": 16384,
    "gpt-4": 8192,
    "gpt-4-0613": 8192,
    "gpt-4-poe": 8192,
    'claude-2': 100000,
    "claude-instant-100k": 100000,
    "claude-2-100k": 100000,
    'naga-gpt-3.5-turbo-16k': 16384,
    'naga-gpt-4': 8192,
    'naga-llama-2-70b-chat': 4096,
    'chatty-gpt-3.5-turbo-16k': 16384,
    'chatty-gpt-4': 8192,
    'purgpt-gpt-3.5-turbo-16k': 16384,
    'purgpt-gpt-3.5-turbo': 4096,
    'purgpt-text-davinci-003': 4096,
    'naga-text-davinci-003': 4096,
    'text-davinci-003': 4096,
    'daku-gpt-4': 8192,
    'daku-gpt-4-32k': 32768,
    'daku-claude-2': 100000,
    'daku-claude-2-100k': 100000,
    'daku-codellama-34b': 4096,
    'daku-llama-2-70b': 4096,
}

TOKEN_OFFSET = 1000 
DEFAULT_TOKEN_LIMIT = 4096 
REDUCE_TOKEN_FACTOR = 0.5

REPLY_LANGUAGES = [
    "Русский",
    "English"
]


WEBSEARCH_PTOMPT_TEMPLATE = """\
Web search results:

{web_results}
Current date: {current_date}

Instructions: Using the provided web search results, write a comprehensive reply to the given query. Make sure to cite results using [[number](URL)] notation after the reference. If the provided search results refer to multiple subjects with the same name, write separate answers for each subject.
Query: {query}
Reply in {reply_language}
"""

PROMPT_TEMPLATE = """\
Context information is below.
---------------------
{context_str}
---------------------
Current date: {current_date}.
Using the provided context information, write a comprehensive reply to the given query.
Make sure to cite results using [number] notation after the reference.
If the provided context information refer to multiple subjects with the same name, write separate answers for each subject.
Use prior knowledge only if the given context didn't provide enough information.
Answer the question: {query_str}
Reply in {reply_language}. Respond using Markdown.
"""

REFINE_TEMPLATE = """\
The original question is as follows: {query_str}
We have provided an existing answer: {existing_answer}
We have the opportunity to refine the existing answer
(only if needed) with some more context below.
------------
{context_msg}
------------
Given the new context, refine the original answer to better
Reply in {reply_language}
If the context isn't useful, return the original answer.
"""

SUMMARIZE_PROMPT = """Write a concise summary of the following:

{text}

CONCISE SUMMARY IN RUSSIAN:"""

ALREADY_CONVERTED_MARK = "<!-- ALREADY CONVERTED BY PARSER. -->"

small_and_beautiful_theme = gr.themes.Soft(
        primary_hue=gr.themes.Color(
            c50="#EBFAF2",
            c100="#CFF3E1",
            c200="#A8EAC8",
            c300="#77DEA9",
            c400="#3FD086",
            c500="#02C160",
            c600="#06AE56",
            c700="#05974E",
            c800="#057F45",
            c900="#04673D",
            c950="#2E5541",
            name="small_and_beautiful",
        ),
        secondary_hue=gr.themes.Color(
            c50="#576b95",
            c100="#576b95",
            c200="#576b95",
            c300="#576b95",
            c400="#576b95",
            c500="#576b95",
            c600="#576b95",
            c700="#576b95",
            c800="#576b95",
            c900="#576b95",
            c950="#576b95",
        ),
        neutral_hue=gr.themes.Color(
            name="gray",
            c50="#f6f7f8",
            # c100="#f3f4f6",
            c100="#F2F2F2",
            c200="#e5e7eb",
            c300="#d1d5db",
            c400="#B2B2B2",
            c500="#808080",
            c600="#636363",
            c700="#515151",
            c800="#393939",
            # c900="#272727",
            c900="#2B2B2B",
            c950="#171717",
        ),
        radius_size=gr.themes.sizes.radius_sm,
    ).set(
        # button_primary_background_fill="*primary_500",
        button_primary_background_fill_dark="*primary_600",
        # button_primary_background_fill_hover="*primary_400",
        # button_primary_border_color="*primary_500",
        button_primary_border_color_dark="*primary_600",
        button_primary_text_color="wihte",
        button_primary_text_color_dark="white",
        button_secondary_background_fill="*neutral_100",
        button_secondary_background_fill_hover="*neutral_50",
        button_secondary_background_fill_dark="*neutral_900",
        button_secondary_text_color="*neutral_800",
        button_secondary_text_color_dark="white",
        # background_fill_primary="#F7F7F7",
        # background_fill_primary_dark="#1F1F1F",
        # block_title_text_color="*primary_500",
        block_title_background_fill_dark="*primary_900",
        block_label_background_fill_dark="*primary_900",
        input_background_fill="#F6F6F6",
        chatbot_code_background_color="*neutral_950",
        chatbot_code_background_color_dark="*neutral_950",
    )