Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| # -*- 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 = 10 # 流式对话时的超时时间 | |
| 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 = """<h1 align="left" style="min-width:200px; margin-top:6px; white-space: nowrap;">川虎ChatGPT 🚀</h1>""" | |
| description = """\ | |
| <div align="center" style="margin:16px 0"> | |
| 由Bilibili [土川虎虎虎](https://space.bilibili.com/29125536) 和 [明昭MZhao](https://space.bilibili.com/24807452)开发 | |
| 访问川虎ChatGPT的 [GitHub项目](https://github.com/GaiZhenbiao/ChuanhuChatGPT) 下载最新版脚本 | |
| 此App使用 `gpt-3.5-turbo` 大语言模型 | |
| </div> | |
| """ | |
| footer = """\ | |
| <div class="versions">{versions}</div> | |
| """ | |
| 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} | |
| """ | |
| 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} | |
| """ | |
| 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 = "<!-- ALREADY CONVERTED BY PARSER. -->" | |
| small_and_beautiful_theme = gr.themes.Soft( | |
| primary_hue=gr.themes.Color( | |
| c50="#02C160", | |
| c100="rgba(2, 193, 96, 0.2)", | |
| c200="#02C160", | |
| c300="rgba(2, 193, 96, 0.32)", | |
| c400="rgba(2, 193, 96, 0.32)", | |
| c500="rgba(2, 193, 96, 1.0)", | |
| c600="rgba(2, 193, 96, 1.0)", | |
| c700="rgba(2, 193, 96, 0.32)", | |
| c800="rgba(2, 193, 96, 0.32)", | |
| c900="#02C160", | |
| c950="#02C160", | |
| ), | |
| 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="#06AE56", | |
| button_primary_background_fill_dark="#06AE56", | |
| button_primary_background_fill_hover="#07C863", | |
| button_primary_border_color="#06AE56", | |
| button_primary_border_color_dark="#06AE56", | |
| 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", | |
| ) | |