Bläddra i källkod

增加免费模型

sequoia00 1 månad sedan
förälder
incheckning
c985926377
10 ändrade filer med 152 tillägg och 16 borttagningar
  1. 1 0
      .python-version
  2. 24 15
      appchat.py
  3. 1 1
      chat_start.sh
  4. 0 0
      data/chat_history_0.json
  5. 1 0
      data/chat_history_1.json
  6. 1 0
      data/session_id.txt
  7. 6 0
      main.py
  8. 103 0
      nohup.out
  9. 7 0
      pyproject.toml
  10. 8 0
      uv.lock

+ 1 - 0
.python-version

@@ -0,0 +1 @@
+3.12

+ 24 - 15
appchat.py

@@ -25,22 +25,26 @@ except Exception:
 # ========== 示例:模型和相应的 API 密钥 ==========
 # 请在生产环境中改为安全地注入 API Key(如通过环境变量)
 default_key = "sk-re2NlaKIQn11ZNWzAbB6339cEbF94c6aAfC8B7Ab82879bEa"  # 默认令牌,请勿用于生产
+az_key="sk-bpaahUHgzoriWpjV24524eC7BbBf47D5A4Ce59EbFdB57f35"
+te_key="sk-A5jRYgJk6hMOKo7YMxlA3psoFkyZUyI6MCdtpRma8lpDsIte"
+gemini_key="sk-ErEhj2UcmwC95YO3hEXohsA5yNrhgGnu0UVZCRhaj9cTGyJ3"
+agnes_key ="sk-5bWELiz7grmKat0QTTQ6WJhEF4JWg8gMTPGOb4kcVOCMBrHH"
+codex_key ="sk-CgXGLSAUOjL9wlKGmV1WtKLXgngbiGBuBo73lubnmTt6fcsu"
 model_keys = {
-    "grok-3": default_key,
-    "grok-4.1": default_key,
-    "grok-4.2": default_key,
-    "gpt-5.4-mini": default_key,
-    "gpt-4o-mini": default_key,
-    # "gpt-4.1-mini-2025-04-14": default_key,
-    "o1-mini": default_key,
+    # "grok-4.3":default_key,
+    "gpt-5.6-terra":codex_key,
+    "agnes-2.0-flash":agnes_key,
+    # "agnes-2.5-flash":agnes_key,
+    "gpt-5.6-sol":codex_key,
+
+    "gpt-5.6-luna":codex_key,
+    "gpt-5.5":default_key,
+    "gpt-5.4-mini":default_key,
+
+    "deepseek-v4-flash":default_key,
+    "deepseek-v4-pro": default_key,
     "o4-mini": default_key,
-    "deepseek-v3.1": default_key,
-    "deepseek-r1": default_key,
-    "grok-4": default_key,
-    "gpt-5-all": default_key,
     "gpt-4o-all": default_key,
-    # "gpt-5-mini-2025-08-07": default_key,
-    "o3-mini-all": default_key,
     # "claude-sonnet-4-20250514": default_key,
 }
 
@@ -48,7 +52,12 @@ st.title("ChatGPT-like Clone")
 
 selected_model = st.sidebar.selectbox("选择模型", list(model_keys.keys()))
 api_key = model_keys[selected_model]
-api_url = "https://yunwu.ai/v1"
+
+# api_url = "https://yunwu.ai/v1"
+if selected_model=="agnes-2.0-flash":
+    api_url="https://apihub.agnes-ai.com/v1"
+else:
+    api_url="https://api.aimanyi.top/v1"
 
 client = OpenAI(api_key=api_key, base_url=api_url)
 
@@ -521,4 +530,4 @@ if st.sidebar.button("New Chat"):
     st.success("当前会话已清空。")
 
 st.sidebar.header("历史对话")
-show_history_files(st.session_state.current_page)
+show_history_files(st.session_state.current_page)

+ 1 - 1
chat_start.sh

@@ -1,3 +1,3 @@
 #!/bin/bash
-nohup streamlit run appchat.py --server.port 8001 &
+nohup uv run streamlit run appchat.py --server.port 8001 &
 # nohup streamlit run appchat.py --server.port 8001 --server.sslCertFile cert.pem --server.sslKeyFile key.pem &

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
data/chat_history_0.json


+ 1 - 0
data/chat_history_1.json

@@ -0,0 +1 @@
+[{"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好。"}, {"role": "user", "content": "你是什么模型"}, {"role": "assistant", "content": "我是基于 GPT-5 的 Codex 编码助手。"}, {"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!有什么我可以帮你的吗?"}, {"role": "user", "content": "你是什么模型"}, {"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!有什么我可以帮你的吗?"}, {"role": "user", "content": "你好"}, {"role": "assistant", "content": "你好!有什么我可以帮你的吗?"}, {"role": "user", "content": "你是什么模型"}, {"role": "assistant", "content": "我是一个基于 GPT-5 的代码协作助手,主要负责阅读代码、修改实现、跑验证,并把结果清楚地反馈给你。\n"}]

+ 1 - 0
data/session_id.txt

@@ -0,0 +1 @@
+1

+ 6 - 0
main.py

@@ -0,0 +1,6 @@
+def main():
+    print("Hello from chat-streamlit!")
+
+
+if __name__ == "__main__":
+    main()

+ 103 - 0
nohup.out

@@ -667,3 +667,106 @@ INFO:     Application startup complete.
 ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
 INFO:     Waiting for application shutdown.
 INFO:     Application shutdown complete.
+error: unrecognized subcommand 'streamlit'
+
+Usage: uv [OPTIONS] <COMMAND>
+
+For more information, try '--help'.
+
+Collecting usage statistics. To deactivate, set browser.gatherUsageStats to false.
+
+<unknown>:413: SyntaxWarning: invalid escape sequence '\>'
+2026-07-25 06:06:35.831 Uvicorn server started on :::8001
+
+  You can now view your Streamlit app in your browser.
+
+  Local URL: http://localhost:8001
+  Network URL: http://172.17.0.2:8001
+  External URL: http://122.4.65.217:8001
+
+/usr/server/chat_streamlit/appchat.py:413: SyntaxWarning: invalid escape sequence '\>'
+  if st.button("\>\>", key=f"expand_{idx}"):
+/usr/server/chat_streamlit/appchat.py:413: SyntaxWarning: invalid escape sequence '\>'
+  if st.button("\>\>", key=f"expand_{idx}"):
+2026-07-25 06:06:57.622 The widget with key "history_count" was created with a default value but also had its value set via the Session State API.
+Stack (most recent call last):
+  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
+    self._bootstrap_inner()
+  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
+    self.run()
+  File "/usr/lib/python3.12/threading.py", line 1010, in run
+    self._target(*self._args, **self._kwargs)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 418, in _run_script_thread
+    self._run_script(request.rerun_data)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 832, in _run_script
+    ) = exec_func_with_error_handling(code_to_exec, ctx)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/exec_code.py", line 129, in exec_func_with_error_handling
+    result = func()
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 807, in code_to_exec
+    exec(code, module.__dict__)  # noqa: S102
+  File "/usr/server/chat_streamlit/appchat.py", line 309, in <module>
+    st.sidebar.slider(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/metrics_util.py", line 568, in wrapped_func
+    result = non_optional_func(*args, **kwargs)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/widgets/slider.py", line 748, in slider
+    return self._slider(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/widgets/slider.py", line 791, in _slider
+    check_widget_policies(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/lib/policies.py", line 143, in check_widget_policies
+    check_session_state_rules(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/lib/policies.py", line 89, in check_session_state_rules
+    _LOGGER.warning(
+INFO:     Started server process [4679]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+INFO:     Uvicorn running on http://0.0.0.0:8007 (Press CTRL+C to quit)
+
+Collecting usage statistics. To deactivate, set browser.gatherUsageStats to false.
+
+<unknown>:418: SyntaxWarning: invalid escape sequence '\>'
+2026-07-25 06:10:07.737 Uvicorn server started on :::8001
+
+  You can now view your Streamlit app in your browser.
+
+  Local URL: http://localhost:8001
+  Network URL: http://172.17.0.2:8001
+  External URL: http://122.4.65.217:8001
+
+/usr/server/chat_streamlit/appchat.py:418: SyntaxWarning: invalid escape sequence '\>'
+  if st.button("\>\>", key=f"expand_{idx}"):
+/usr/server/chat_streamlit/appchat.py:418: SyntaxWarning: invalid escape sequence '\>'
+  if st.button("\>\>", key=f"expand_{idx}"):
+2026-07-25 06:10:25.701 The widget with key "history_count" was created with a default value but also had its value set via the Session State API.
+Stack (most recent call last):
+  File "/usr/lib/python3.12/threading.py", line 1030, in _bootstrap
+    self._bootstrap_inner()
+  File "/usr/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
+    self.run()
+  File "/usr/lib/python3.12/threading.py", line 1010, in run
+    self._target(*self._args, **self._kwargs)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 418, in _run_script_thread
+    self._run_script(request.rerun_data)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 832, in _run_script
+    ) = exec_func_with_error_handling(code_to_exec, ctx)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/exec_code.py", line 129, in exec_func_with_error_handling
+    result = func()
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 807, in code_to_exec
+    exec(code, module.__dict__)  # noqa: S102
+  File "/usr/server/chat_streamlit/appchat.py", line 314, in <module>
+    st.sidebar.slider(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/runtime/metrics_util.py", line 568, in wrapped_func
+    result = non_optional_func(*args, **kwargs)
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/widgets/slider.py", line 748, in slider
+    return self._slider(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/widgets/slider.py", line 791, in _slider
+    check_widget_policies(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/lib/policies.py", line 143, in check_widget_policies
+    check_session_state_rules(
+  File "/usr/server/chat_streamlit/.venv/lib/python3.12/site-packages/streamlit/elements/lib/policies.py", line 89, in check_session_state_rules
+    _LOGGER.warning(
+INFO:     Started server process [4737]
+INFO:     Waiting for application startup.
+INFO:     Application startup complete.
+ERROR:    [Errno 98] error while attempting to bind on address ('0.0.0.0', 8007): address already in use
+INFO:     Waiting for application shutdown.
+INFO:     Application shutdown complete.

+ 7 - 0
pyproject.toml

@@ -0,0 +1,7 @@
+[project]
+name = "chat-streamlit"
+version = "0.1.0"
+description = "Add your description here"
+readme = "README.md"
+requires-python = ">=3.12"
+dependencies = []

+ 8 - 0
uv.lock

@@ -0,0 +1,8 @@
+version = 1
+revision = 3
+requires-python = ">=3.12"
+
+[[package]]
+name = "chat-streamlit"
+version = "0.1.0"
+source = { virtual = "." }

Vissa filer visades inte eftersom för många filer har ändrats