feat(chat): màn giới thiệu khi hội thoại còn rỗng
Bấm "Cuộc trò chuyện mới" trước đây để lại một khung trắng: không có gì nói người dùng đang làm trong project nào, thư mục có bao nhiêu tệp, hay bắt đầu từ đâu. Đây là trạng thái RỖNG — một trong bốn trạng thái mà mọi khung dữ liệu phải có, và là trạng thái duy nhất người dùng nhìn thấy trước khi gõ chữ đầu tiên. Gồm lời chào theo tên, dòng bối cảnh (project · số tệp · số skill đang bật), và bốn thẻ gợi ý. Hai quyết định: - Thẻ ĐIỀN câu gợi ý vào ô nhập chứ không gửi luôn. Câu gợi ý là điểm bắt đầu; người dùng gần như luôn cần thêm chi tiết của riêng họ, và gửi ngay sẽ tiêu một lượt gọi model cho một câu hỏi chung chung. - Dấu phía trên lời chào không bấm được — nó là dấu hiệu thị giác. Một nút không làm gì tệ hơn không có nút. Dòng bối cảnh phân biệt KHÔNG BIẾT với 0: đếm được 0 tệp thì hiện "0 tệp", còn không đọc được thư mục thì bỏ hẳn mảnh đó — hiện "0 tệp" khi người dùng vừa thấy có tệp trong thư mục còn tệ hơn là thiếu một mảnh. show_welcome() được móc ở ba chỗ: new_session(), load_conversation() (theo số tin nhắn đã lưu), và TRƯỚC mọi nhánh add_user trong turn runner — đặt sau từng add_user() thì dễ sót đúng một nhánh, và nhánh đó sẽ hiện cả hai thứ cùng lúc. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
committed by
thanhnv
co-authored by
Claude Opus 5
parent
1a1f23030c
commit
77745ca4e0
@@ -9,6 +9,64 @@ from __future__ import annotations
|
||||
from typing import Dict
|
||||
|
||||
STRINGS: Dict[str, Dict[str, str]] = {
|
||||
# ---- man gioi thieu cua khung chat (trang thai rong) ------------------
|
||||
"welcome.greeting": {
|
||||
"en": "Hi {name} — where would you like to start?",
|
||||
"ja": "{name} さん、どこから始めましょうか?",
|
||||
"vi": "Chào {name} — bắt đầu từ đâu?"},
|
||||
"welcome.greeting_anon": {
|
||||
"en": "Where would you like to start?", "ja": "どこから始めましょうか?",
|
||||
"vi": "Bắt đầu từ đâu?"},
|
||||
"welcome.meta_project": {
|
||||
"en": "Working in {name}", "ja": "{name} で作業中",
|
||||
"vi": "Đang làm trong {name}"},
|
||||
"welcome.meta_files": {
|
||||
"en": "{n} file(s) in the local folder", "ja": "ローカルフォルダに {n} 件",
|
||||
"vi": "{n} tệp trong thư mục local"},
|
||||
"welcome.meta_skills": {
|
||||
"en": "Skills: {n} on", "ja": "スキル: {n} 個オン", "vi": "Skills: {n} bật"},
|
||||
|
||||
"welcome.card_docs": {
|
||||
"en": "Summarise documents", "ja": "ドキュメントを要約", "vi": "Tóm tắt tài liệu"},
|
||||
"welcome.card_docs_sub": {
|
||||
"en": "Read the files in the local folder", "ja": "ローカルフォルダのファイルを読む",
|
||||
"vi": "Đọc các tệp trong thư mục local"},
|
||||
"welcome.prompt_docs": {
|
||||
"en": "Read the files in this project's folder and summarise each one.",
|
||||
"ja": "このプロジェクトのフォルダにあるファイルを読み、それぞれ要約してください。",
|
||||
"vi": "Đọc các tệp trong thư mục của project này và tóm tắt từng tệp."},
|
||||
|
||||
"welcome.card_data": {
|
||||
"en": "Analyse data", "ja": "データを分析", "vi": "Phân tích dữ liệu"},
|
||||
"welcome.card_data_sub": {
|
||||
"en": "Spreadsheets, CSV, logs", "ja": "表計算、CSV、ログ",
|
||||
"vi": "Bảng tính, CSV, log"},
|
||||
"welcome.prompt_data": {
|
||||
"en": "Analyse the spreadsheet/CSV/log files in this folder and report what stands out.",
|
||||
"ja": "このフォルダの表計算/CSV/ログを分析し、目立つ点を報告してください。",
|
||||
"vi": "Phân tích các tệp bảng tính/CSV/log trong thư mục này và nêu những điểm đáng chú ý."},
|
||||
|
||||
"welcome.card_schedule": {
|
||||
"en": "Set up a schedule", "ja": "スケジュールを作成", "vi": "Dựng lịch chạy"},
|
||||
"welcome.card_schedule_sub": {
|
||||
"en": "Create a daily Schedule Task", "ja": "毎日実行する Schedule Task を作成",
|
||||
"vi": "Tạo Schedule Task hàng ngày"},
|
||||
"welcome.prompt_schedule": {
|
||||
"en": "Help me set up a Schedule Task that runs every day. Ask me what it should do.",
|
||||
"ja": "毎日実行する Schedule Task の作成を手伝ってください。何をするか質問してください。",
|
||||
"vi": "Giúp tôi dựng một Schedule Task chạy hàng ngày. Hỏi tôi nó cần làm gì."},
|
||||
|
||||
"welcome.card_graph": {
|
||||
"en": "Ask GraphRAG", "ja": "GraphRAG に質問", "vi": "Hỏi GraphRAG"},
|
||||
"welcome.card_graph_sub": {
|
||||
"en": "Query this project's knowledge graph",
|
||||
"ja": "このプロジェクトの知識グラフを検索",
|
||||
"vi": "Truy vấn đồ thị tri thức của project"},
|
||||
"welcome.prompt_graph": {
|
||||
"en": "Using this project's knowledge graph, explain how the main pieces fit together.",
|
||||
"ja": "このプロジェクトの知識グラフを使って、主要な要素の関係を説明してください。",
|
||||
"vi": "Dùng đồ thị tri thức của project này, giải thích các phần chính ghép với nhau thế nào."},
|
||||
|
||||
"chatpanel.agent_tooltip": {
|
||||
"en": "Model/agent for THIS tab — independent of the other tab",
|
||||
"ja": "このタブ専用のモデル/エージェント(他のタブとは独立)",
|
||||
|
||||
Reference in New Issue
Block a user