# -*- coding:utf-8 -*-
import gradio as gr
from pathlib import Path
# ChatGPT 设置
initial_prompt = "You are a helpful assistant."
API_HOST = "api.openai.com"
COMPLETION_URL = "https://api.openai.com/v1/chat/completions"
BALANCE_API_URL="https://api.openai.com/dashboard/billing/credit_grants"
USAGE_API_URL="https://api.openai.com/dashboard/billing/usage"
HISTORY_DIR = Path("history")
TEMPLATES_DIR = "templates"
# 错误信息
standard_error_msg = "☹️发生了错误:" # 错误信息的标准前缀
error_retrieve_prompt = "请检查网络连接,或者API-Key是否有效。" # 获取对话时发生错误
connection_timeout_prompt = "连接超时,无法获取对话。" # 连接超时
read_timeout_prompt = "读取超时,无法获取对话。" # 读取超时
proxy_error_prompt = "代理错误,无法获取对话。" # 代理错误
ssl_error_prompt = "SSL错误,无法获取对话。" # SSL 错误
no_apikey_msg = "API key长度不是51位,请检查是否输入正确。" # API key 长度不足 51 位
no_input_msg = "请输入对话内容。" # 未输入对话内容
timeout_streaming = 30 # 流式对话时的超时时间
timeout_all = 200 # 非流式对话时的超时时间
enable_streaming_option = True # 是否启用选择选择是否实时显示回答的勾选框
HIDE_MY_KEY = False # 如果你想在UI中隐藏你的 API 密钥,将此值设置为 True
CONCURRENT_COUNT = 100 # 允许同时使用的用户数量
SIM_K = 5
INDEX_QUERY_TEMPRATURE = 1.0
title = """
MyRecipe 🍥
"""
description = """\
由 爱吃小队 开发
此App使用 `gpt-3.5-turbo` 大语言模型
"""
footer = """\
{versions}
"""
summarize_prompt = "你是谁?我们刚才聊了什么?" # 总结对话时的 prompt
MODELS = [
"gpt-3.5-turbo",
"gpt-3.5-turbo-0301",
"gpt-4",
"gpt-4-0314",
"gpt-4-32k",
"gpt-4-32k-0314",
] # 可选的模型
MODEL_SOFT_TOKEN_LIMIT = {
"gpt-3.5-turbo": {
"streaming": 3500,
"all": 3500
},
"gpt-3.5-turbo-0301": {
"streaming": 3500,
"all": 3500
},
"gpt-4": {
"streaming": 7500,
"all": 7500
},
"gpt-4-0314": {
"streaming": 7500,
"all": 7500
},
"gpt-4-32k": {
"streaming": 31000,
"all": 31000
},
"gpt-4-32k-0314": {
"streaming": 31000,
"all": 31000
}
}
REPLY_LANGUAGES = [
"简体中文",
"繁體中文",
"English",
"日本語",
"Español",
"Français",
"Deutsch",
"跟随问题语言(不稳定)"
]
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}
"""
# 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.
PROMPT_TEMPLATE = """\
以下是上下文信息。
---------------------
{context_str}
---------------------
当前日期:{current_date}。
接下来,我会问问题,你可以按以下格式推荐食物和店铺:
店铺名称:[] 推荐菜品:[]
回答问题:{query_str}
用 {reply_language} 回复。
可以回复多条以上格式的内容,但是注意,除了以上格式的内容,不要回复其他内容。
"""
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.
"""
ALREADY_CONVERTED_MARK = ""
small_and_beautiful_theme = gr.themes.Soft(
primary_hue=gr.themes.Color(
c50="#00B0B9",
c100="rgba(0, 176, 185, 0.2)",
c200="#00B0B9",
c300="rgba(0, 176, 185, 0.32)",
c400="rgba(0, 176, 185, 0.32)",
c500="rgba(0, 176, 185, 1.0)",
c600="rgba(0, 176, 185, 1.0)",
c700="rgba(0, 176, 185, 0.32)",
c800="rgba(0, 176, 185, 0.32)",
c900="#00B0B9",
c950="#00B0B9",
),
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="#f9fafb",
c100="#f3f4f6",
c200="#e5e7eb",
c300="#d1d5db",
c400="#B2B2B2",
c500="#808080",
c600="#636363",
c700="#515151",
c800="#393939",
c900="#272727",
c950="#171717",
),
radius_size=gr.themes.sizes.radius_sm,
).set(
button_primary_background_fill="#00B0B9",
button_primary_background_fill_dark="#00B0B9",
button_primary_background_fill_hover="#00CED1",
button_primary_border_color="#00B0B9",
button_primary_border_color_dark="#00B0B9",
button_primary_text_color="#FFFFFF",
button_primary_text_color_dark="#FFFFFF",
button_secondary_background_fill="#F2F2F2",
button_secondary_background_fill_dark="#2B2B2B",
button_secondary_text_color="#393939",
button_secondary_text_color_dark="#FFFFFF",
# background_fill_primary="#F7F7F7",
# background_fill_primary_dark="#1F1F1F",
block_title_text_color="*primary_500",
block_title_background_fill="*primary_100",
input_background_fill="#F6F6F6",
)