Spaces:
Sleeping
Sleeping
Commit
·
0b26b5f
0
Parent(s):
Initial commit for midterm challenge
Browse files- .chainlit/config.toml +41 -0
- .chainlit/translations/bn.json +214 -0
- .chainlit/translations/en-US.json +214 -0
- .chainlit/translations/gu.json +214 -0
- .chainlit/translations/he-IL.json +214 -0
- .chainlit/translations/hi.json +214 -0
- .chainlit/translations/ja.json +214 -0
- .chainlit/translations/kn.json +214 -0
- .chainlit/translations/ml.json +214 -0
- .chainlit/translations/mr.json +214 -0
- .chainlit/translations/nl-NL.json +214 -0
- .chainlit/translations/ta.json +214 -0
- .chainlit/translations/te.json +214 -0
- .chainlit/translations/zh-CN.json +214 -0
- .env.sample +3 -0
- .gitattributes +35 -0
- .gitignore +11 -0
- Dockerfile +29 -0
- app.py +747 -0
- chainlit.md +138 -0
- data/f_prompts.txt +141 -0
- data/nf_prompts.txt +109 -0
- lang_state.py +43 -0
- llm_prompts.py +80 -0
- pyproject.toml +31 -0
- utils/__init__.py +1 -0
- utils/parse_prompts.py +145 -0
- uv.lock +0 -0
.chainlit/config.toml
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[project]
|
| 2 |
+
# Whether to enable telemetry (default: true). No personal data is collected.
|
| 3 |
+
enable_telemetry = false
|
| 4 |
+
|
| 5 |
+
# List of environment variables to be provided by each user to use the app.
|
| 6 |
+
user_env = []
|
| 7 |
+
|
| 8 |
+
# Duration (in seconds) during which the session is saved when the connection is lost
|
| 9 |
+
session_timeout = 3600
|
| 10 |
+
|
| 11 |
+
# Duration (in seconds) of the user session expiry
|
| 12 |
+
user_session_timeout = 1296000 # 15 days
|
| 13 |
+
|
| 14 |
+
# Enable third parties caching (e.g LangChain cache)
|
| 15 |
+
cache = false
|
| 16 |
+
|
| 17 |
+
# Authorized origins
|
| 18 |
+
allow_origins = ["*"]
|
| 19 |
+
|
| 20 |
+
[features]
|
| 21 |
+
# Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript)
|
| 22 |
+
unsafe_allow_html = false
|
| 23 |
+
|
| 24 |
+
# Process and display mathematical expressions. This can clash with "$" characters in messages.
|
| 25 |
+
latex = false
|
| 26 |
+
|
| 27 |
+
# Automatically tag threads with the current chat profile (if a chat profile is used)
|
| 28 |
+
auto_tag_thread = true
|
| 29 |
+
|
| 30 |
+
# Allow users to edit their own messages
|
| 31 |
+
edit_message = true
|
| 32 |
+
|
| 33 |
+
[UI]
|
| 34 |
+
# Name of the assistant.
|
| 35 |
+
name = "WriteAssist"
|
| 36 |
+
|
| 37 |
+
# Chain of Thought (CoT) display mode. Can be "hidden", "tool_call" or "full".
|
| 38 |
+
cot = "full"
|
| 39 |
+
|
| 40 |
+
[meta]
|
| 41 |
+
generated_by = "2.2.1"
|
.chainlit/translations/bn.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
|
| 5 |
+
"confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
|
| 6 |
+
"continue": "\u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",
|
| 7 |
+
"goBack": "\u09aa\u09bf\u099b\u09a8\u09c7 \u09af\u09be\u09a8",
|
| 8 |
+
"reset": "\u09b0\u09bf\u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8",
|
| 9 |
+
"submit": "\u099c\u09ae\u09be \u09a6\u09bf\u09a8"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u09b2\u09cb\u09a1 \u09b9\u099a\u09cd\u099b\u09c7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u098f\u0995\u099f\u09bf \u09a4\u09cd\u09b0\u09c1\u099f\u09bf \u0998\u099f\u09c7\u099b\u09c7",
|
| 15 |
+
"serverConnection": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09af\u09be\u099a\u09cd\u099b\u09c7 \u09a8\u09be"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b2\u0997\u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0987\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
|
| 25 |
+
"required": "\u0987\u09ae\u09c7\u0987\u09b2 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
|
| 29 |
+
"required": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0985\u09a5\u09ac\u09be"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be \u09b8\u09ae\u09cd\u09ad\u09ac \u09b9\u099a\u09cd\u099b\u09c7 \u09a8\u09be",
|
| 40 |
+
"signin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 41 |
+
"oauthSignin": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 42 |
+
"redirectUriMismatch": "\u09b0\u09bf\u09a1\u09be\u0987\u09b0\u09c7\u0995\u09cd\u099f URI \u0993\u0986\u09a5 \u0985\u09cd\u09af\u09be\u09aa \u0995\u09a8\u09ab\u09bf\u0997\u09be\u09b0\u09c7\u09b6\u09a8\u09c7\u09b0 \u09b8\u09be\u09a5\u09c7 \u09ae\u09bf\u09b2\u099b\u09c7 \u09a8\u09be",
|
| 43 |
+
"oauthCallback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 44 |
+
"oauthCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 45 |
+
"emailCreateAccount": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 46 |
+
"callback": "\u0985\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09be\u09b0 \u099a\u09c7\u09b7\u09cd\u099f\u09be \u0995\u09b0\u09c1\u09a8",
|
| 47 |
+
"oauthAccountNotLinked": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09b0\u09bf\u099a\u09af\u09bc \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09a4\u09c7, \u0986\u09aa\u09a8\u09bf \u09af\u09c7 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f\u099f\u09bf \u09ae\u09c2\u09b2\u09a4 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u099b\u09bf\u09b2\u09c7\u09a8 \u09b8\u09c7\u099f\u09bf \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 48 |
+
"emailSignin": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09af\u09be\u09af\u09bc\u09a8\u09bf",
|
| 49 |
+
"emailVerify": "\u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u0987\u09b2 \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8, \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 50 |
+
"credentialsSignin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964 \u0986\u09aa\u09a8\u09be\u09b0 \u09a6\u09c7\u0993\u09af\u09bc\u09be \u09a4\u09a5\u09cd\u09af \u09b8\u09a0\u09bf\u0995 \u0995\u09bf\u09a8\u09be \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8",
|
| 51 |
+
"sessionRequired": "\u098f\u0987 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be \u09a6\u09c7\u0996\u09a4\u09c7 \u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u098f\u0996\u09be\u09a8\u09c7 \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be \u09aa\u09be\u09a0\u09be\u09a8",
|
| 63 |
+
"stop": "\u0995\u09be\u099c \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 64 |
+
"attachFiles": "\u09ab\u09be\u0987\u09b2 \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09c1\u09a8"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8",
|
| 69 |
+
"stop": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 70 |
+
"connecting": "\u09b8\u0982\u09af\u09cb\u0997 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u098f\u0996\u09be\u09a8\u09c7 \u09ab\u09be\u0987\u09b2 \u099f\u09c7\u09a8\u09c7 \u0986\u09a8\u09c1\u09a8",
|
| 74 |
+
"browse": "\u09ab\u09be\u0987\u09b2 \u09ac\u09cd\u09b0\u09be\u0989\u099c \u0995\u09b0\u09c1\u09a8",
|
| 75 |
+
"sizeLimit": "\u09b8\u09c0\u09ae\u09be:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 78 |
+
"cancelled": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u099b\u09c7",
|
| 84 |
+
"used": "\u09ac\u09cd\u09af\u09ac\u09b9\u09c3\u09a4"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0995\u09cd\u09b2\u09bf\u09aa\u09ac\u09cb\u09b0\u09cd\u09a1\u09c7 \u0995\u09aa\u09bf \u0995\u09b0\u09c1\u09a8",
|
| 89 |
+
"success": "\u0995\u09aa\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u09b8\u09b9\u09be\u09af\u09bc\u0995",
|
| 94 |
+
"negative": "\u09b8\u09b9\u09be\u09af\u09bc\u0995 \u09a8\u09af\u09bc",
|
| 95 |
+
"edit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b8\u09ae\u09cd\u09aa\u09be\u09a6\u09a8\u09be \u0995\u09b0\u09c1\u09a8",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u09ae\u09a8\u09cd\u09a4\u09ac\u09cd\u09af \u09af\u09cb\u0997 \u0995\u09b0\u09c1\u09a8",
|
| 98 |
+
"submit": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u099c\u09ae\u09be \u09a6\u09bf\u09a8"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7",
|
| 102 |
+
"updated": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be \u09b9\u09be\u09b2\u09a8\u09be\u0997\u09be\u09a6 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0987\u09a8\u09aa\u09c1\u099f",
|
| 108 |
+
"empty": "\u0995\u09cb\u09a8\u09cb \u09a4\u09a5\u09cd\u09af \u09a8\u09c7\u0987...",
|
| 109 |
+
"show": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09a6\u09c7\u0996\u09c1\u09a8"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u09a6\u09cd\u09ac\u09be\u09b0\u09be \u09a8\u09bf\u09b0\u09cd\u09ae\u09bf\u09a4"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099a\u09cd\u09af\u09be\u099f",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0985\u09a8\u09c1\u09b8\u09a8\u09cd\u09a7\u09be\u09a8",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0986\u099c",
|
| 125 |
+
"yesterday": "\u0997\u09a4\u0995\u09be\u09b2",
|
| 126 |
+
"previous7days": "\u0997\u09a4 \u09ed \u09a6\u09bf\u09a8",
|
| 127 |
+
"previous30days": "\u0997\u09a4 \u09e9\u09e6 \u09a6\u09bf\u09a8"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0995\u09cb\u09a8\u09cb \u09a5\u09cd\u09b0\u09c7\u09a1 \u09aa\u09be\u0993\u09af\u09bc\u09be \u09af\u09be\u09af\u09bc\u09a8\u09bf",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
|
| 132 |
+
"open": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u0996\u09c1\u09b2\u09c1\u09a8"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u09b6\u09bf\u09b0\u09cb\u09a8\u09be\u09ae\u09b9\u09c0\u09a8 \u0986\u09b2\u09cb\u099a\u09a8\u09be",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
|
| 144 |
+
"description": "\u098f\u099f\u09bf \u09a5\u09cd\u09b0\u09c7\u09a1 \u098f\u09ac\u0982 \u098f\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u0993 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u0997\u09c1\u09b2\u09bf \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u098f\u0987 \u0995\u09be\u099c\u099f\u09bf \u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09ac\u09b8\u09cd\u09a5\u09be\u09af\u09bc \u09ab\u09c7\u09b0\u09be\u09a8\u09cb \u09af\u09be\u09ac\u09c7 \u09a8\u09be",
|
| 145 |
+
"success": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
|
| 146 |
+
"inProgress": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09c1\u09a8",
|
| 150 |
+
"description": "\u098f\u0987 \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09a6\u09bf\u09a8",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u09a8\u09be\u09ae",
|
| 154 |
+
"placeholder": "\u09a8\u09a4\u09c1\u09a8 \u09a8\u09be\u09ae \u09b2\u09bf\u0996\u09c1\u09a8"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7!",
|
| 158 |
+
"inProgress": "\u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09a8\u09be\u09ae \u09aa\u09b0\u09bf\u09ac\u09b0\u09cd\u09a4\u09a8 \u0995\u09b0\u09be \u09b9\u099a\u09cd\u099b\u09c7"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u099a\u09cd\u09af\u09be\u099f",
|
| 166 |
+
"readme": "\u09b0\u09bf\u09a1\u09ae\u09bf",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09c1\u09a8",
|
| 177 |
+
"description": "\u098f\u099f\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u099a\u09cd\u09af\u09be\u099f \u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964 \u0986\u09aa\u09a8\u09bf \u0995\u09bf \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09c7\u09a4\u09c7 \u099a\u09be\u09a8?",
|
| 178 |
+
"tooltip": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "\u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
|
| 186 |
+
"logout": "\u09b2\u0997\u0986\u0989\u099f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
|
| 192 |
+
"description": "\u098f\u0987 \u0985\u09cd\u09af\u09be\u09aa\u09cd\u09b2\u09bf\u0995\u09c7\u09b6\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09a8\u09bf\u09ae\u09cd\u09a8\u09b2\u09bf\u0996\u09bf\u09a4 \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0 \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u0964 \u0995\u09c0\u0997\u09c1\u09b2\u09bf \u0986\u09aa\u09a8\u09be\u09b0 \u09a1\u09bf\u09ad\u09be\u0987\u09b8\u09c7\u09b0 \u09b2\u09cb\u0995\u09be\u09b2 \u09b8\u09cd\u099f\u09cb\u09b0\u09c7\u099c\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09a5\u09be\u0995\u09c7\u0964",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/en-US.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Cancel",
|
| 5 |
+
"confirm": "Confirm",
|
| 6 |
+
"continue": "Continue",
|
| 7 |
+
"goBack": "Go Back",
|
| 8 |
+
"reset": "Reset",
|
| 9 |
+
"submit": "Submit"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Loading...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "An error occurred",
|
| 15 |
+
"serverConnection": "Could not reach the server"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Login to access the app",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "Email address",
|
| 25 |
+
"required": "email is a required field"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "Password",
|
| 29 |
+
"required": "password is a required field"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "Sign In"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "OR"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "Unable to sign in",
|
| 40 |
+
"signin": "Try signing in with a different account",
|
| 41 |
+
"oauthSignin": "Try signing in with a different account",
|
| 42 |
+
"redirectUriMismatch": "The redirect URI is not matching the oauth app configuration",
|
| 43 |
+
"oauthCallback": "Try signing in with a different account",
|
| 44 |
+
"oauthCreateAccount": "Try signing in with a different account",
|
| 45 |
+
"emailCreateAccount": "Try signing in with a different account",
|
| 46 |
+
"callback": "Try signing in with a different account",
|
| 47 |
+
"oauthAccountNotLinked": "To confirm your identity, sign in with the same account you used originally",
|
| 48 |
+
"emailSignin": "The e-mail could not be sent",
|
| 49 |
+
"emailVerify": "Please verify your email, a new email has been sent",
|
| 50 |
+
"credentialsSignin": "Sign in failed. Check the details you provided are correct",
|
| 51 |
+
"sessionRequired": "Please sign in to access this page"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "Continue with {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "Type your message here...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "Send message",
|
| 63 |
+
"stop": "Stop Task",
|
| 64 |
+
"attachFiles": "Attach files"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "Start recording",
|
| 69 |
+
"stop": "Stop recording",
|
| 70 |
+
"connecting": "Connecting"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "Drag and drop files here",
|
| 74 |
+
"browse": "Browse Files",
|
| 75 |
+
"sizeLimit": "Limit:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "Failed to upload",
|
| 78 |
+
"cancelled": "Cancelled upload of"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "Using",
|
| 84 |
+
"used": "Used"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "Copy to clipboard",
|
| 89 |
+
"success": "Copied!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "Helpful",
|
| 94 |
+
"negative": "Not helpful",
|
| 95 |
+
"edit": "Edit feedback",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "Add a comment",
|
| 98 |
+
"submit": "Submit feedback"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "Updating",
|
| 102 |
+
"updated": "Feedback updated"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "Last Inputs",
|
| 108 |
+
"empty": "Such empty...",
|
| 109 |
+
"show": "Show history"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "Settings panel"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "Built with"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "Past Chats",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "Search",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "Today",
|
| 125 |
+
"yesterday": "Yesterday",
|
| 126 |
+
"previous7days": "Previous 7 days",
|
| 127 |
+
"previous30days": "Previous 30 days"
|
| 128 |
+
},
|
| 129 |
+
"empty": "No threads found",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "Close sidebar",
|
| 132 |
+
"open": "Open sidebar"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "Untitled Conversation",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "Confirm deletion",
|
| 144 |
+
"description": "This will delete the thread as well as its messages and elements. This action cannot be undone",
|
| 145 |
+
"success": "Chat deleted",
|
| 146 |
+
"inProgress": "Deleting chat"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "Rename Thread",
|
| 150 |
+
"description": "Enter a new name for this thread",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "Name",
|
| 154 |
+
"placeholder": "Enter new name"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "Thread renamed!",
|
| 158 |
+
"inProgress": "Renaming thread"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "Chat",
|
| 166 |
+
"readme": "Readme",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "New Chat",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "Create New Chat",
|
| 177 |
+
"description": "This will clear your current chat history. Are you sure you want to continue?",
|
| 178 |
+
"tooltip": "New Chat"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "Settings",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API Keys",
|
| 186 |
+
"logout": "Logout"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "Required API Keys",
|
| 192 |
+
"description": "To use this app, the following API keys are required. The keys are stored on your device's local storage.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "Saved successfully"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/gu.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
|
| 5 |
+
"confirm": "\u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
|
| 6 |
+
"continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
|
| 7 |
+
"goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
|
| 8 |
+
"reset": "\u0ab0\u0ac0\u0ab8\u0ac7\u0a9f \u0a95\u0ab0\u0acb",
|
| 9 |
+
"submit": "\u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0ab2\u0acb\u0aa1 \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0a8f\u0a95 \u0aad\u0ac2\u0ab2 \u0aa5\u0a88",
|
| 15 |
+
"serverConnection": "\u0ab8\u0ab0\u0acd\u0ab5\u0ab0 \u0ab8\u0ac1\u0aa7\u0ac0 \u0aaa\u0ab9\u0acb\u0a82\u0a9a\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab2\u0ac9\u0a97\u0abf\u0aa8 \u0a95\u0ab0\u0acb",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0a88\u0aae\u0ac7\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8",
|
| 25 |
+
"required": "\u0a88\u0aae\u0ac7\u0ab2 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
|
| 29 |
+
"required": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a86\u0ab5\u0ab6\u0acd\u0aaf\u0a95 \u0a9b\u0ac7"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0a85\u0aa5\u0ab5\u0abe"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0",
|
| 40 |
+
"signin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 41 |
+
"oauthSignin": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 42 |
+
"redirectUriMismatch": "\u0ab0\u0ac0\u0aa1\u0abe\u0aaf\u0ab0\u0ac7\u0a95\u0acd\u0a9f URI oauth \u0a8d\u0aaa \u0a95\u0aa8\u0acd\u0aab\u0abf\u0a97\u0ab0\u0ac7\u0ab6\u0aa8 \u0ab8\u0abe\u0aa5\u0ac7 \u0aae\u0ac7\u0ab3 \u0a96\u0abe\u0aa4\u0acb \u0aa8\u0aa5\u0ac0",
|
| 43 |
+
"oauthCallback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 44 |
+
"oauthCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 45 |
+
"emailCreateAccount": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 46 |
+
"callback": "\u0a85\u0ab2\u0a97 \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0abe\u0ab8 \u0a95\u0ab0\u0acb",
|
| 47 |
+
"oauthAccountNotLinked": "\u0aa4\u0aae\u0abe\u0ab0\u0ac0 \u0a93\u0ab3\u0a96\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aae\u0ac2\u0ab3 \u0ab0\u0ac2\u0aaa\u0ac7 \u0ab5\u0abe\u0aaa\u0ab0\u0ac7\u0ab2\u0abe \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f\u0aa5\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb",
|
| 48 |
+
"emailSignin": "\u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0acb \u0aa8\u0aa5\u0ac0",
|
| 49 |
+
"emailVerify": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0a9a\u0a95\u0abe\u0ab8\u0acb, \u0aa8\u0ab5\u0acb \u0a88\u0aae\u0ac7\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a86\u0ab5\u0acd\u0aaf\u0acb \u0a9b\u0ac7",
|
| 50 |
+
"credentialsSignin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3. \u0a86\u0aaa\u0ac7\u0ab2\u0ac0 \u0ab5\u0abf\u0a97\u0aa4\u0acb \u0ab8\u0abe\u0a9a\u0ac0 \u0a9b\u0ac7 \u0a95\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82 \u0aa4\u0ac7 \u0a9a\u0a95\u0abe\u0ab8\u0acb",
|
| 51 |
+
"sessionRequired": "\u0a86 \u0aaa\u0ac7\u0a9c\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0a85\u0ab9\u0ac0\u0a82 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0ab2\u0a96\u0acb...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6 \u0aae\u0acb\u0a95\u0ab2\u0acb",
|
| 63 |
+
"stop": "\u0a95\u0abe\u0ab0\u0acd\u0aaf \u0ab0\u0acb\u0a95\u0acb",
|
| 64 |
+
"attachFiles": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a9c\u0acb\u0aa1\u0acb"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb",
|
| 69 |
+
"stop": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1\u0abf\u0a82\u0a97 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
|
| 70 |
+
"connecting": "\u0a95\u0aa8\u0ac7\u0a95\u0acd\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0a85\u0ab9\u0ac0\u0a82 \u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0a96\u0ac7\u0a82\u0a9a\u0acb \u0a85\u0aa8\u0ac7 \u0a9b\u0acb\u0aa1\u0acb",
|
| 74 |
+
"browse": "\u0aab\u0abe\u0a87\u0ab2\u0acd\u0ab8 \u0aac\u0acd\u0ab0\u0abe\u0a89\u0a9d \u0a95\u0ab0\u0acb",
|
| 75 |
+
"sizeLimit": "\u0aae\u0ab0\u0acd\u0aaf\u0abe\u0aa6\u0abe:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
|
| 78 |
+
"cancelled": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0a95\u0ab0\u0acd\u0aaf\u0ac1\u0a82"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0ab5\u0abe\u0aaa\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7",
|
| 84 |
+
"used": "\u0ab5\u0aaa\u0ab0\u0abe\u0aaf\u0ac7\u0ab2"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0a95\u0acd\u0ab2\u0abf\u0aaa\u0aac\u0acb\u0ab0\u0acd\u0aa1 \u0aaa\u0ab0 \u0a95\u0ac9\u0aaa\u0abf \u0a95\u0ab0\u0acb",
|
| 89 |
+
"success": "\u0a95\u0ac9\u0aaa\u0abf \u0aa5\u0aaf\u0ac1\u0a82!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
|
| 94 |
+
"negative": "\u0aac\u0abf\u0aa8\u0a89\u0aaa\u0aaf\u0acb\u0a97\u0ac0",
|
| 95 |
+
"edit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0a82\u0aaa\u0abe\u0aa6\u0abf\u0aa4 \u0a95\u0ab0\u0acb",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0a9f\u0abf\u0aaa\u0acd\u0aaa\u0aa3\u0ac0 \u0a89\u0aae\u0ac7\u0ab0\u0acb",
|
| 98 |
+
"submit": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0aac\u0aae\u0abf\u0a9f \u0a95\u0ab0\u0acb"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0a88 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7",
|
| 102 |
+
"updated": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0a85\u0aaa\u0aa1\u0ac7\u0a9f \u0aa5\u0aaf\u0acb"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0a9b\u0ac7\u0ab2\u0acd\u0ab2\u0abe \u0a87\u0aa8\u0aaa\u0ac1\u0a9f\u0acd\u0ab8",
|
| 108 |
+
"empty": "\u0a96\u0abe\u0ab2\u0ac0 \u0a9b\u0ac7...",
|
| 109 |
+
"show": "\u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0aac\u0aa4\u0abe\u0ab5\u0acb"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8 \u0aaa\u0ac7\u0aa8\u0ab2"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0aa8\u0abe\u0ab5\u0ac7\u0ab2"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0aaa\u0abe\u0a9b\u0ab2\u0ac0 \u0a9a\u0ac7\u0a9f\u0acd\u0ab8",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0ab6\u0acb\u0aa7\u0acb",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0a86\u0a9c\u0ac7",
|
| 125 |
+
"yesterday": "\u0a97\u0a88\u0a95\u0abe\u0ab2\u0ac7",
|
| 126 |
+
"previous7days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 7 \u0aa6\u0abf\u0ab5\u0ab8",
|
| 127 |
+
"previous30days": "\u0aaa\u0abe\u0a9b\u0ab2\u0abe 30 \u0aa6\u0abf\u0ab5\u0ab8"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0a95\u0acb\u0a88 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0acd\u0ab8 \u0aae\u0ab3\u0acd\u0aaf\u0abe \u0aa8\u0aa5\u0ac0",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
|
| 132 |
+
"open": "\u0ab8\u0abe\u0a87\u0aa1\u0aac\u0abe\u0ab0 \u0a96\u0acb\u0ab2\u0acb"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0ab6\u0ac0\u0ab0\u0acd\u0ab7\u0a95 \u0ab5\u0a97\u0ab0\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab5\u0abe\u0aa8\u0ac0 \u0aaa\u0ac1\u0ab7\u0acd\u0a9f\u0abf \u0a95\u0ab0\u0acb",
|
| 144 |
+
"description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0a85\u0aa8\u0ac7 \u0aa4\u0ac7\u0aa8\u0abe \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93 \u0a85\u0aa8\u0ac7 \u0aa4\u0aa4\u0acd\u0ab5\u0acb\u0aa8\u0ac7 \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab6\u0ac7. \u0a86 \u0a95\u0acd\u0ab0\u0abf\u0aaf\u0abe \u0aaa\u0abe\u0a9b\u0ac0 \u0aab\u0ac7\u0ab0\u0ab5\u0ac0 \u0ab6\u0a95\u0abe\u0ab6\u0ac7 \u0aa8\u0ab9\u0ac0\u0a82",
|
| 145 |
+
"success": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0",
|
| 146 |
+
"inProgress": "\u0a9a\u0ac7\u0a9f \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0acb",
|
| 150 |
+
"description": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1 \u0aae\u0abe\u0a9f\u0ac7 \u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0aa8\u0abe\u0aae",
|
| 154 |
+
"placeholder": "\u0aa8\u0ab5\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0abe\u0aaf\u0ac1\u0a82!",
|
| 158 |
+
"inProgress": "\u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac1\u0a82 \u0aa8\u0abe\u0aae \u0aac\u0aa6\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0a9a\u0ac7\u0a9f",
|
| 166 |
+
"readme": "\u0ab5\u0abe\u0a82\u0a9a\u0acb",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f \u0aac\u0aa8\u0abe\u0ab5\u0acb",
|
| 177 |
+
"description": "\u0a86 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab5\u0ab0\u0acd\u0aa4\u0aae\u0abe\u0aa8 \u0a9a\u0ac7\u0a9f \u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0ab8\u0abe\u0aab \u0a95\u0ab0\u0ab6\u0ac7. \u0ab6\u0ac1\u0a82 \u0aa4\u0aae\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0ab5\u0abe \u0aae\u0abe\u0a82\u0a97\u0acb \u0a9b\u0acb?",
|
| 178 |
+
"tooltip": "\u0aa8\u0ab5\u0ac0 \u0a9a\u0ac7\u0a9f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0ab8\u0ac7\u0a9f\u0abf\u0a82\u0a97\u0acd\u0ab8",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0a95\u0ac0",
|
| 186 |
+
"logout": "\u0ab2\u0ac9\u0a97\u0a86\u0a89\u0a9f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 API \u0a95\u0ac0",
|
| 192 |
+
"description": "\u0a86 \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0ab5\u0abe\u0aaa\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aa8\u0ac0\u0a9a\u0ac7\u0aa8\u0ac0 API \u0a95\u0ac0 \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a9b\u0ac7. \u0a95\u0ac0 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0aa1\u0abf\u0ab5\u0abe\u0a87\u0ab8\u0aa8\u0abe \u0ab2\u0acb\u0a95\u0ab2 \u0ab8\u0acd\u0a9f\u0acb\u0ab0\u0ac7\u0a9c\u0aae\u0abe\u0a82 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abf\u0aa4 \u0aa5\u0ab6\u0ac7.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0ab8\u0abe\u0a9a\u0ab5\u0acd\u0aaf\u0ac1\u0a82"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/he-IL.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc",
|
| 5 |
+
"confirm": "\u05d0\u05d9\u05e9\u05d5\u05e8",
|
| 6 |
+
"continue": "\u05d4\u05de\u05e9\u05da",
|
| 7 |
+
"goBack": "\u05d7\u05d6\u05d5\u05e8",
|
| 8 |
+
"reset": "\u05d0\u05d9\u05e4\u05d5\u05e1",
|
| 9 |
+
"submit": "\u05e9\u05dc\u05d7"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u05d8\u05d5\u05e2\u05df...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4",
|
| 15 |
+
"serverConnection": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05dc\u05e9\u05e8\u05ea"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
|
| 25 |
+
"required": "\u05e9\u05d3\u05d4 \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u05e1\u05d9\u05e1\u05de\u05d4",
|
| 29 |
+
"required": "\u05e9\u05d3\u05d4 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u05d4\u05ea\u05d7\u05d1\u05e8"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u05d0\u05d5"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8",
|
| 40 |
+
"signin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 41 |
+
"oauthSignin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 42 |
+
"redirectUriMismatch": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d4\u05e4\u05e0\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05ea\u05d5\u05d0\u05de\u05ea \u05d0\u05ea \u05ea\u05e6\u05d5\u05e8\u05ea \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d9\u05ea OAuth",
|
| 43 |
+
"oauthCallback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 44 |
+
"oauthCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 45 |
+
"emailCreateAccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 46 |
+
"callback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8",
|
| 47 |
+
"oauthAccountNotLinked": "\u05db\u05d3\u05d9 \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da, \u05d4\u05ea\u05d7\u05d1\u05e8 \u05e2\u05dd \u05d0\u05d5\u05ea\u05d5 \u05d7\u05e9\u05d1\u05d5\u05df \u05d1\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05ea \u05d1\u05de\u05e7\u05d5\u05e8",
|
| 48 |
+
"emailSignin": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
|
| 49 |
+
"emailVerify": "\u05d0\u05e0\u05d0 \u05d0\u05de\u05ea \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da, \u05e0\u05e9\u05dc\u05d7 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d7\u05d3\u05e9",
|
| 50 |
+
"credentialsSignin": "\u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e0\u05db\u05e9\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05e9\u05d4\u05d6\u05e0\u05ea \u05e0\u05db\u05d5\u05e0\u05d9\u05dd",
|
| 51 |
+
"sessionRequired": "\u05d0\u05e0\u05d0 \u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d3\u05e3 \u05d6\u05d4"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "\u05d4\u05de\u05e9\u05da \u05e2\u05dd {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u05d4\u05e7\u05dc\u05d3 \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d4 \u05e9\u05dc\u05da \u05db\u05d0\u05df...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05d4",
|
| 63 |
+
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05de\u05e9\u05d9\u05de\u05d4",
|
| 64 |
+
"attachFiles": "\u05e6\u05e8\u05e3 \u05e7\u05d1\u05e6\u05d9\u05dd"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u05d4\u05ea\u05d7\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
|
| 69 |
+
"stop": "\u05e2\u05e6\u05d5\u05e8 \u05d4\u05e7\u05dc\u05d8\u05d4",
|
| 70 |
+
"connecting": "\u05de\u05ea\u05d7\u05d1\u05e8"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u05d2\u05e8\u05d5\u05e8 \u05d5\u05e9\u05d7\u05e8\u05e8 \u05e7\u05d1\u05e6\u05d9\u05dd \u05db\u05d0\u05df",
|
| 74 |
+
"browse": "\u05e2\u05d9\u05d9\u05df \u05d1\u05e7\u05d1\u05e6\u05d9\u05dd",
|
| 75 |
+
"sizeLimit": "\u05de\u05d2\u05d1\u05dc\u05d4:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
|
| 78 |
+
"cancelled": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05d1\u05d5\u05d8\u05dc\u05d4 \u05e9\u05dc"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u05de\u05e9\u05ea\u05de\u05e9 \u05d1",
|
| 84 |
+
"used": "\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u05d4\u05e2\u05ea\u05e7 \u05dc\u05dc\u05d5\u05d7",
|
| 89 |
+
"success": "\u05d4\u05d5\u05e2\u05ea\u05e7!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u05de\u05d5\u05e2\u05d9\u05dc",
|
| 94 |
+
"negative": "\u05dc\u05d0 \u05de\u05d5\u05e2\u05d9\u05dc",
|
| 95 |
+
"edit": "\u05e2\u05e8\u05d5\u05da \u05de\u05e9\u05d5\u05d1",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u05d4\u05d5\u05e1\u05e3 \u05ea\u05d2\u05d5\u05d1\u05d4",
|
| 98 |
+
"submit": "\u05e9\u05dc\u05d7 \u05de\u05e9\u05d5\u05d1"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u05de\u05e2\u05d3\u05db\u05df",
|
| 102 |
+
"updated": "\u05d4\u05de\u05e9\u05d5\u05d1 \u05e2\u05d5\u05d3\u05db\u05df"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u05e7\u05dc\u05d8\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
|
| 108 |
+
"empty": "\u05db\u05dc \u05db\u05da \u05e8\u05d9\u05e7...",
|
| 109 |
+
"show": "\u05d4\u05e6\u05d2 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u05e4\u05d0\u05e0\u05dc \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u05e0\u05d1\u05e0\u05d4 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u05e6'\u05d0\u05d8\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u05d7\u05d9\u05e4\u05d5\u05e9",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u05d4\u05d9\u05d5\u05dd",
|
| 125 |
+
"yesterday": "\u05d0\u05ea\u05de\u05d5\u05dc",
|
| 126 |
+
"previous7days": "7 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd",
|
| 127 |
+
"previous30days": "30 \u05d9\u05de\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05e9\u05d9\u05d7\u05d5\u05ea",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u05e1\u05d2\u05d5\u05e8 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
|
| 132 |
+
"open": "\u05e4\u05ea\u05d7 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u05e9\u05d9\u05d7\u05d4 \u05dc\u05dc\u05d0 \u05db\u05d5\u05ea\u05e8\u05ea",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u05d0\u05e9\u05e8 \u05de\u05d7\u05d9\u05e7\u05d4",
|
| 144 |
+
"description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05e9\u05d9\u05d7\u05d4 \u05d5\u05db\u05df \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d5\u05d4\u05d0\u05dc\u05de\u05e0\u05d8\u05d9\u05dd \u05e9\u05dc\u05d4. \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5",
|
| 145 |
+
"success": "\u05d4\u05e6'\u05d0\u05d8 \u05e0\u05de\u05d7\u05e7",
|
| 146 |
+
"inProgress": "\u05de\u05d5\u05d7\u05e7 \u05e6'\u05d0\u05d8"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4",
|
| 150 |
+
"description": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9 \u05dc\u05e9\u05d9\u05d7\u05d4 \u05d6\u05d5",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u05e9\u05dd",
|
| 154 |
+
"placeholder": "\u05d4\u05d6\u05df \u05e9\u05dd \u05d7\u05d3\u05e9"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u05e9\u05dd \u05d4\u05e9\u05d9\u05d7\u05d4 \u05e9\u05d5\u05e0\u05d4!",
|
| 158 |
+
"inProgress": "\u05de\u05e9\u05e0\u05d4 \u05e9\u05dd \u05e9\u05d9\u05d7\u05d4"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u05e6'\u05d0\u05d8",
|
| 166 |
+
"readme": "\u05e7\u05e8\u05d0 \u05d0\u05d5\u05ea\u05d9",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u05e6\u05d5\u05e8 \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9",
|
| 177 |
+
"description": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05e0\u05e7\u05d4 \u05d0\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d9\u05ea \u05d4\u05e6'\u05d0\u05d8 \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05ea \u05e9\u05dc\u05da. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
|
| 178 |
+
"tooltip": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
| 184 |
+
"settingsKey": "\u05d4",
|
| 185 |
+
"apiKeys": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API",
|
| 186 |
+
"logout": "\u05d4\u05ea\u05e0\u05ea\u05e7"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd",
|
| 192 |
+
"description": "\u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05d6\u05d5, \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd \u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05d4\u05d1\u05d0\u05d9\u05dd. \u05d4\u05de\u05e4\u05ea\u05d7\u05d5\u05ea \u05de\u05d0\u05d5\u05d7\u05e1\u05e0\u05d9\u05dd \u05d1\u05d0\u05d7\u05e1\u05d5\u05df \u05d4\u05de\u05e7\u05d5\u05de\u05d9 \u05e9\u05dc \u05d4\u05de\u05db\u05e9\u05d9\u05e8 \u05e9\u05dc\u05da.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u05e0\u05e9\u05de\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/hi.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
|
| 5 |
+
"confirm": "\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
|
| 6 |
+
"continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902",
|
| 7 |
+
"goBack": "\u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902",
|
| 8 |
+
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902",
|
| 9 |
+
"submit": "\u091c\u092e\u093e \u0915\u0930\u0947\u0902"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0932\u094b\u0921 \u0939\u094b \u0930\u0939\u093e \u0939\u0948...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u093f \u0939\u0941\u0908",
|
| 15 |
+
"serverConnection": "\u0938\u0930\u094d\u0935\u0930 \u0938\u0947 \u0938\u0902\u092a\u0930\u094d\u0915 \u0928\u0939\u0940\u0902 \u0939\u094b \u092a\u093e \u0930\u0939\u093e"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u0947\u0902",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
|
| 25 |
+
"required": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
|
| 29 |
+
"required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u092f\u093e"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925",
|
| 40 |
+
"signin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 41 |
+
"oauthSignin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 42 |
+
"redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI oauth \u0910\u092a \u0915\u0949\u0928\u094d\u092b\u093c\u093f\u0917\u0930\u0947\u0936\u0928 \u0938\u0947 \u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u0916\u093e \u0930\u0939\u093e",
|
| 43 |
+
"oauthCallback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 44 |
+
"oauthCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 45 |
+
"emailCreateAccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 46 |
+
"callback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u093e \u092a\u094d\u0930\u092f\u093e\u0938 \u0915\u0930\u0947\u0902",
|
| 47 |
+
"oauthAccountNotLinked": "\u0905\u092a\u0928\u0940 \u092a\u0939\u091a\u093e\u0928 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0909\u0938\u0940 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902 \u091c\u093f\u0938\u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0906\u092a\u0928\u0947 \u092e\u0942\u0932 \u0930\u0942\u092a \u0938\u0947 \u0915\u093f\u092f\u093e \u0925\u093e",
|
| 48 |
+
"emailSignin": "\u0908\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092d\u0947\u091c\u093e \u091c\u093e \u0938\u0915\u093e",
|
| 49 |
+
"emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u0938\u0924\u094d\u092f\u093e\u092a\u093f\u0924 \u0915\u0930\u0947\u0902, \u090f\u0915 \u0928\u092f\u093e \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u093e \u0917\u092f\u093e \u0939\u0948",
|
| 50 |
+
"credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0935\u093f\u092b\u0932\u0964 \u0906\u092a\u0915\u0947 \u0926\u094d\u0935\u093e\u0930\u093e \u092a\u094d\u0930\u0926\u093e\u0928 \u0915\u093f\u090f \u0917\u090f \u0935\u093f\u0935\u0930\u0923 \u0915\u0940 \u091c\u093e\u0902\u091a \u0915\u0930\u0947\u0902",
|
| 51 |
+
"sessionRequired": "\u0907\u0938 \u092a\u0943\u0937\u094d\u0920 \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0905\u092a\u0928\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0939\u093e\u0902 \u091f\u093e\u0907\u092a \u0915\u0930\u0947\u0902...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0938\u0902\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902",
|
| 63 |
+
"stop": "\u0915\u093e\u0930\u094d\u092f \u0930\u094b\u0915\u0947\u0902",
|
| 64 |
+
"attachFiles": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u0938\u0902\u0932\u0917\u094d\u0928 \u0915\u0930\u0947\u0902"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
|
| 69 |
+
"stop": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0930\u094b\u0915\u0947\u0902",
|
| 70 |
+
"connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u092b\u093c\u093e\u0907\u0932\u094b\u0902 \u0915\u094b \u092f\u0939\u093e\u0902 \u0916\u0940\u0902\u091a\u0947\u0902 \u0914\u0930 \u091b\u094b\u0921\u093c\u0947\u0902",
|
| 74 |
+
"browse": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u092c\u094d\u0930\u093e\u0909\u091c\u093c \u0915\u0930\u0947\u0902",
|
| 75 |
+
"sizeLimit": "\u0938\u0940\u092e\u093e:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
|
| 78 |
+
"cancelled": "\u0915\u093e \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u093f\u092f\u093e \u0917\u092f\u093e"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0909\u092a\u092f\u094b\u0917 \u0915\u0930 \u0930\u0939\u0947 \u0939\u0948\u0902",
|
| 84 |
+
"used": "\u0909\u092a\u092f\u094b\u0917 \u0915\u093f\u092f\u093e"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921 \u092a\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u0947\u0902",
|
| 89 |
+
"success": "\u0915\u0949\u092a\u0940 \u0915\u093f\u092f\u093e \u0917\u092f\u093e!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0938\u0939\u093e\u092f\u0915",
|
| 94 |
+
"negative": "\u0938\u0939\u093e\u092f\u0915 \u0928\u0939\u0940\u0902",
|
| 95 |
+
"edit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u0947\u0902",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093c\u0947\u0902",
|
| 98 |
+
"submit": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u091c\u092e\u093e \u0915\u0930\u0947\u0902"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0905\u092a\u0921\u0947\u091f \u0939\u094b \u0930\u0939\u093e \u0939\u0948",
|
| 102 |
+
"updated": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0905\u092a\u0921\u0947\u091f \u0915\u0940 \u0917\u0908"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u092a\u093f\u091b\u0932\u0947 \u0907\u0928\u092a\u0941\u091f",
|
| 108 |
+
"empty": "\u0915\u0941\u091b \u092d\u0940 \u0928\u0939\u0940\u0902 \u0939\u0948...",
|
| 109 |
+
"show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093f\u0916\u093e\u090f\u0902"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0948\u0928\u0932"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u0915\u0947 \u0938\u093e\u0925 \u092c\u0928\u093e\u092f\u093e \u0917\u092f\u093e"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0916\u094b\u091c\u0947\u0902",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0906\u091c",
|
| 125 |
+
"yesterday": "\u0915\u0932",
|
| 126 |
+
"previous7days": "\u092a\u093f\u091b\u0932\u0947 7 \u0926\u093f\u0928",
|
| 127 |
+
"previous30days": "\u092a\u093f\u091b\u0932\u0947 30 \u0926\u093f\u0928"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0915\u094b\u0908 \u0925\u094d\u0930\u0947\u0921 \u0928\u0939\u0940\u0902 \u092e\u093f\u0932\u093e",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u0947\u0902",
|
| 132 |
+
"open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0916\u094b\u0932\u0947\u0902"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0939\u0940\u0928 \u0935\u093e\u0930\u094d\u0924\u093e\u0932\u093e\u092a",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0939\u091f\u093e\u0928\u0947 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
|
| 144 |
+
"description": "\u092f\u0939 \u0925\u094d\u0930\u0947\u0921 \u0914\u0930 \u0907\u0938\u0915\u0947 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0914\u0930 \u0924\u0924\u094d\u0935\u094b\u0902 \u0915\u094b \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964 \u092f\u0939 \u0915\u094d\u0930\u093f\u092f\u093e \u0935\u093e\u092a\u0938 \u0928\u0939\u0940\u0902 \u0915\u0940 \u091c\u093e \u0938\u0915\u0924\u0940",
|
| 145 |
+
"success": "\u091a\u0948\u091f \u0939\u091f\u093e \u0926\u0940 \u0917\u0908",
|
| 146 |
+
"inProgress": "\u091a\u0948\u091f \u0939\u091f\u093e\u0908 \u091c\u093e \u0930\u0939\u0940 \u0939\u0948"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u0947\u0902",
|
| 150 |
+
"description": "\u0907\u0938 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0932\u093f\u090f \u090f\u0915 \u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0928\u093e\u092e",
|
| 154 |
+
"placeholder": "\u0928\u092f\u093e \u0928\u093e\u092e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932 \u0926\u093f\u092f\u093e \u0917\u092f\u093e!",
|
| 158 |
+
"inProgress": "\u0925\u094d\u0930\u0947\u0921 \u0915\u093e \u0928\u093e\u092e \u092c\u0926\u0932\u093e \u091c\u093e \u0930\u0939\u093e \u0939\u0948"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u091a\u0948\u091f",
|
| 166 |
+
"readme": "\u0930\u0940\u0921\u092e\u0940",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0928\u0908 \u091a\u0948\u091f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0928\u0908 \u091a\u0948\u091f \u092c\u0928\u093e\u090f\u0902",
|
| 177 |
+
"description": "\u092f\u0939 \u0906\u092a\u0915\u093e \u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u091a\u0948\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b\u093c \u0915\u0930 \u0926\u0947\u0917\u093e\u0964 \u0915\u094d\u092f\u093e \u0906\u092a \u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e \u091a\u093e\u0939\u0924\u0947 \u0939\u0948\u0902?",
|
| 178 |
+
"tooltip": "\u0928\u0908 \u091a\u0948\u091f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
|
| 186 |
+
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902",
|
| 192 |
+
"description": "\u0907\u0938 \u0910\u092a \u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f, \u0928\u093f\u092e\u094d\u0928\u0932\u093f\u0916\u093f\u0924 API \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u0935\u0936\u094d\u092f\u0915 \u0939\u0948\u0902\u0964 \u0915\u0941\u0902\u091c\u093f\u092f\u093e\u0902 \u0906\u092a\u0915\u0947 \u0921\u093f\u0935\u093e\u0907\u0938 \u0915\u0947 \u0938\u094d\u0925\u093e\u0928\u0940\u092f \u0938\u0902\u0917\u094d\u0930\u0939\u0923 \u092e\u0947\u0902 \u0938\u0902\u0917\u094d\u0930\u0939\u0940\u0924 \u0915\u0940 \u091c\u093e\u0924\u0940 \u0939\u0948\u0902\u0964",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/ja.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
|
| 5 |
+
"confirm": "\u78ba\u8a8d",
|
| 6 |
+
"continue": "\u7d9a\u3051\u308b",
|
| 7 |
+
"goBack": "\u623b\u308b",
|
| 8 |
+
"reset": "\u30ea\u30bb\u30c3\u30c8",
|
| 9 |
+
"submit": "\u9001\u4fe1"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u8aad\u307f\u8fbc\u307f\u4e2d...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f",
|
| 15 |
+
"serverConnection": "\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u30a2\u30d7\u30ea\u306b\u30ed\u30b0\u30a4\u30f3",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9",
|
| 25 |
+
"required": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u30d1\u30b9\u30ef\u30fc\u30c9",
|
| 29 |
+
"required": "\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u30b5\u30a4\u30f3\u30a4\u30f3"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u307e\u305f\u306f"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u30b5\u30a4\u30f3\u30a4\u30f3\u3067\u304d\u307e\u305b\u3093",
|
| 40 |
+
"signin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 41 |
+
"oauthSignin": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 42 |
+
"redirectUriMismatch": "\u30ea\u30c0\u30a4\u30ec\u30af\u30c8URI\u304cOAuth\u30a2\u30d7\u30ea\u306e\u8a2d\u5b9a\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093",
|
| 43 |
+
"oauthCallback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 44 |
+
"oauthCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 45 |
+
"emailCreateAccount": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 46 |
+
"callback": "\u5225\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 47 |
+
"oauthAccountNotLinked": "\u672c\u4eba\u78ba\u8a8d\u306e\u305f\u3081\u3001\u6700\u521d\u306b\u4f7f\u7528\u3057\u305f\u306e\u3068\u540c\u3058\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 48 |
+
"emailSignin": "\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f",
|
| 49 |
+
"emailVerify": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u65b0\u3057\u3044\u30e1\u30fc\u30eb\u304c\u9001\u4fe1\u3055\u308c\u307e\u3057\u305f",
|
| 50 |
+
"credentialsSignin": "\u30b5\u30a4\u30f3\u30a4\u30f3\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u5165\u529b\u3057\u305f\u60c5\u5831\u304c\u6b63\u3057\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 51 |
+
"sessionRequired": "\u3053\u306e\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}}\u3067\u7d9a\u3051\u308b"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1",
|
| 63 |
+
"stop": "\u30bf\u30b9\u30af\u3092\u505c\u6b62",
|
| 64 |
+
"attachFiles": "\u30d5\u30a1\u30a4\u30eb\u3092\u6dfb\u4ed8"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u9332\u97f3\u958b\u59cb",
|
| 69 |
+
"stop": "\u9332\u97f3\u505c\u6b62",
|
| 70 |
+
"connecting": "\u63a5\u7d9a\u4e2d"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u3053\u3053\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30c9\u30e9\u30c3\u30b0\uff06\u30c9\u30ed\u30c3\u30d7",
|
| 74 |
+
"browse": "\u30d5\u30a1\u30a4\u30eb\u3092\u53c2\u7167",
|
| 75 |
+
"sizeLimit": "\u5236\u9650\uff1a",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
|
| 78 |
+
"cancelled": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3057\u305f\uff1a"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u4f7f\u7528\u4e2d",
|
| 84 |
+
"used": "\u4f7f\u7528\u6e08\u307f"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc",
|
| 89 |
+
"success": "\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u5f79\u306b\u7acb\u3063\u305f",
|
| 94 |
+
"negative": "\u5f79\u306b\u7acb\u305f\u306a\u304b\u3063\u305f",
|
| 95 |
+
"edit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u7de8\u96c6",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u30b3\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0",
|
| 98 |
+
"submit": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u9001\u4fe1"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u66f4\u65b0\u4e2d",
|
| 102 |
+
"updated": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u6700\u8fd1\u306e\u5165\u529b",
|
| 108 |
+
"empty": "\u4f55\u3082\u3042\u308a\u307e\u305b\u3093...",
|
| 109 |
+
"show": "\u5c65\u6b74\u3092\u8868\u793a"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u8a2d\u5b9a\u30d1\u30cd\u30eb"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u958b\u767a\u5143\uff1a"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u904e\u53bb\u306e\u30c1\u30e3\u30c3\u30c8",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u691c\u7d22",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u4eca\u65e5",
|
| 125 |
+
"yesterday": "\u6628\u65e5",
|
| 126 |
+
"previous7days": "\u904e\u53bb7\u65e5\u9593",
|
| 127 |
+
"previous30days": "\u904e\u53bb30\u65e5\u9593"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u30b9\u30ec\u30c3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u9589\u3058\u308b",
|
| 132 |
+
"open": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u958b\u304f"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u7121\u984c\u306e\u4f1a\u8a71",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u524a\u9664\u306e\u78ba\u8a8d",
|
| 144 |
+
"description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u3068\u305d\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3001\u8981\u7d20\u304c\u524a\u9664\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u64cd\u4f5c\u306f\u53d6\u308a\u6d88\u305b\u307e\u305b\u3093",
|
| 145 |
+
"success": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u3057\u307e\u3057\u305f",
|
| 146 |
+
"inProgress": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u4e2d"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u30b9\u30ec\u30c3\u30c9\u306e\u540d\u524d\u3092\u5909\u66f4",
|
| 150 |
+
"description": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u306e\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u540d\u524d",
|
| 154 |
+
"placeholder": "\u65b0\u3057\u3044\u540d\u524d\u3092\u5165\u529b"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u3057\u307e\u3057\u305f\uff01",
|
| 158 |
+
"inProgress": "\u30b9\u30ec\u30c3\u30c9\u540d\u3092\u5909\u66f4\u4e2d"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u30c1\u30e3\u30c3\u30c8",
|
| 166 |
+
"readme": "\u8aac\u660e\u66f8",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8\u306e\u4f5c\u6210",
|
| 177 |
+
"description": "\u73fe\u5728\u306e\u30c1\u30e3\u30c3\u30c8\u5c65\u6b74\u304c\u30af\u30ea\u30a2\u3055\u308c\u307e\u3059\u3002\u7d9a\u884c\u3057\u307e\u3059\u304b\uff1f",
|
| 178 |
+
"tooltip": "\u65b0\u898f\u30c1\u30e3\u30c3\u30c8"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u8a2d\u5b9a",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API\u30ad\u30fc",
|
| 186 |
+
"logout": "\u30ed\u30b0\u30a2\u30a6\u30c8"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u5fc5\u8981\u306aAPI\u30ad\u30fc",
|
| 192 |
+
"description": "\u3053\u306e\u30a2\u30d7\u30ea\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306eAPI\u30ad\u30fc\u304c\u5fc5\u8981\u3067\u3059\u3002\u30ad\u30fc\u306f\u304a\u4f7f\u3044\u306e\u30c7\u30d0\u30a4\u30b9\u306e\u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u4fdd\u5b58\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/kn.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
|
| 5 |
+
"confirm": "\u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 6 |
+
"continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 7 |
+
"goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0ccb\u0c97\u0cbf",
|
| 8 |
+
"reset": "\u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 9 |
+
"submit": "\u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0ca6\u0ccb\u0cb7 \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8\u0cbf\u0ca6\u0cc6",
|
| 15 |
+
"serverConnection": "\u0cb8\u0cb0\u0ccd\u0cb5\u0cb0\u0ccd\u200c \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cb2\u0cc1\u0caa\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb2\u0cbe\u0c97\u0cbf\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
|
| 25 |
+
"required": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
|
| 29 |
+
"required": "\u0caa\u0cbe\u0cb8\u0ccd\u200c\u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 \u0c95\u0ccd\u0cb7\u0cc7\u0ca4\u0ccd\u0cb0"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0c85\u0ca5\u0cb5\u0cbe"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 40 |
+
"signin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 41 |
+
"oauthSignin": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 42 |
+
"redirectUriMismatch": "\u0cb0\u0cc0\u0ca1\u0cc8\u0cb0\u0cc6\u0c95\u0ccd\u0c9f\u0ccd URI \u0c93\u0ca5\u0ccd \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0c95\u0cbe\u0ca8\u0ccd\u0cab\u0cbf\u0c97\u0cb0\u0cc7\u0cb6\u0ca8\u0ccd\u200c\u0c97\u0cc6 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 43 |
+
"oauthCallback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 44 |
+
"oauthCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 45 |
+
"emailCreateAccount": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 46 |
+
"callback": "\u0cac\u0cc7\u0cb0\u0cc6 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0caa\u0ccd\u0cb0\u0caf\u0ca4\u0ccd\u0ca8\u0cbf\u0cb8\u0cbf",
|
| 47 |
+
"oauthAccountNotLinked": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c97\u0cc1\u0cb0\u0cc1\u0ca4\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cc1, \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cca\u0ca6\u0cb2\u0cc1 \u0cac\u0cb3\u0cb8\u0cbf\u0ca6 \u0c85\u0ca6\u0cc7 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 48 |
+
"emailSignin": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 49 |
+
"emailVerify": "\u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf, \u0cb9\u0cca\u0cb8 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 50 |
+
"credentialsSignin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0c92\u0ca6\u0c97\u0cbf\u0cb8\u0cbf\u0ca6 \u0cb5\u0cbf\u0cb5\u0cb0\u0c97\u0cb3\u0cc1 \u0cb8\u0cb0\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0cb5\u0cc6\u0caf\u0cc7 \u0c8e\u0c82\u0ca6\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 51 |
+
"sessionRequired": "\u0c88 \u0caa\u0cc1\u0c9f\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c9f\u0cc8\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6 \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cbf",
|
| 63 |
+
"stop": "\u0c95\u0cbe\u0cb0\u0ccd\u0caf \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 64 |
+
"attachFiles": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cbf\u0cb8\u0cbf"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf",
|
| 69 |
+
"stop": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 70 |
+
"connecting": "\u0cb8\u0c82\u0caa\u0cb0\u0ccd\u0c95\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0c8e\u0cb3\u0cc6\u0ca6\u0cc1 \u0cac\u0cbf\u0ca1\u0cbf",
|
| 74 |
+
"browse": "\u0cab\u0cc8\u0cb2\u0ccd\u200c\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0ccd\u0cb0\u0ccc\u0cb8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
|
| 75 |
+
"sizeLimit": "\u0cae\u0cbf\u0ca4\u0cbf:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 78 |
+
"cancelled": "\u0c85\u0caa\u0ccd\u200c\u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0cac\u0cb3\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb0\u0cc1\u0cb5\u0cc1\u0ca6\u0cc1",
|
| 84 |
+
"used": "\u0cac\u0cb3\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0c95\u0ccd\u0cb2\u0cbf\u0caa\u0ccd\u200c\u0cac\u0ccb\u0cb0\u0ccd\u0ca1\u0ccd\u200c\u0c97\u0cc6 \u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cbf",
|
| 89 |
+
"success": "\u0ca8\u0c95\u0cb2\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 94 |
+
"negative": "\u0cb8\u0cb9\u0cbe\u0caf\u0c95\u0cb5\u0cbe\u0c97\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 95 |
+
"edit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0c82\u0caa\u0cbe\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0c95\u0cbe\u0cae\u0cc6\u0c82\u0c9f\u0ccd \u0cb8\u0cc7\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 98 |
+
"submit": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0cb8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cbf"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
|
| 102 |
+
"updated": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0c95\u0cca\u0ca8\u0cc6\u0caf \u0c87\u0ca8\u0ccd\u200c\u0caa\u0cc1\u0c9f\u0ccd\u200c\u0c97\u0cb3\u0cc1",
|
| 108 |
+
"empty": "\u0c96\u0cbe\u0cb2\u0cbf\u0caf\u0cbe\u0c97\u0cbf\u0ca6\u0cc6...",
|
| 109 |
+
"show": "\u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8 \u0ca4\u0ccb\u0cb0\u0cbf\u0cb8\u0cbf"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3 \u0caa\u0ccd\u0caf\u0cbe\u0ca8\u0cc6\u0cb2\u0ccd"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u0c87\u0ca6\u0cb0\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0ca8\u0cbf\u0cb0\u0ccd\u0cae\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cbf",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0c87\u0c82\u0ca6\u0cc1",
|
| 125 |
+
"yesterday": "\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6",
|
| 126 |
+
"previous7days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 7 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1",
|
| 127 |
+
"previous30days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 30 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0caf\u0cbe\u0cb5\u0cc1\u0ca6\u0cc7 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cb3\u0cc1 \u0c95\u0c82\u0ca1\u0cc1\u0cac\u0c82\u0ca6\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0cae\u0cc1\u0c9a\u0ccd\u0c9a\u0cbf",
|
| 132 |
+
"open": "\u0caa\u0c95\u0ccd\u0c95\u0ca6 \u0caa\u0c9f\u0ccd\u0c9f\u0cbf \u0ca4\u0cc6\u0cb0\u0cc6\u0caf\u0cbf\u0cb0\u0cbf"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0cb6\u0cc0\u0cb0\u0ccd\u0cb7\u0cbf\u0c95\u0cc6\u0cb0\u0cb9\u0cbf\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0cb5\u0cbf\u0c95\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca6\u0cc3\u0ca2\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cbf",
|
| 144 |
+
"description": "\u0c87\u0ca6\u0cc1 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb9\u0cbe\u0c97\u0cc2 \u0c85\u0ca6\u0cb0 \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0c85\u0c82\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0c88 \u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbf\u0cb2\u0ccd\u0cb2",
|
| 145 |
+
"success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
|
| 146 |
+
"inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cbf",
|
| 150 |
+
"description": "\u0c88 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0c97\u0cc6 \u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0cb9\u0cc6\u0cb8\u0cb0\u0cc1",
|
| 154 |
+
"placeholder": "\u0cb9\u0cca\u0cb8 \u0cb9\u0cc6\u0cb8\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6!",
|
| 158 |
+
"inProgress": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0cb9\u0cc6\u0cb8\u0cb0\u0cc1 \u0cac\u0ca6\u0cb2\u0cbe\u0caf\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 166 |
+
"readme": "\u0c93\u0ca6\u0cbf",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6 \u0cb0\u0c9a\u0cbf\u0cb8\u0cbf",
|
| 177 |
+
"description": "\u0c87\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0ccd\u0cb0\u0cb8\u0ccd\u0ca4\u0cc1\u0ca4 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6\u0caf \u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c85\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6. \u0ca8\u0cc0\u0cb5\u0cc1 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cc6\u0caf\u0cb2\u0cc1 \u0cac\u0caf\u0cb8\u0cc1\u0cb5\u0cbf\u0cb0\u0cbe?",
|
| 178 |
+
"tooltip": "\u0cb9\u0cca\u0cb8 \u0cb8\u0c82\u0cad\u0cbe\u0cb7\u0ca3\u0cc6"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd\u200c\u0c97\u0cb3\u0cc1",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
|
| 186 |
+
"logout": "\u0cb2\u0cbe\u0c97\u0ccd \u0c94\u0c9f\u0ccd"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0cb5 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1",
|
| 192 |
+
"description": "\u0c88 \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0cac\u0cb3\u0cb8\u0cb2\u0cc1, \u0c88 \u0c95\u0cc6\u0cb3\u0c97\u0cbf\u0ca8 API \u0c95\u0cc0\u0c97\u0cb3\u0cc1 \u0c85\u0c97\u0ca4\u0ccd\u0caf\u0cb5\u0cbf\u0cb0\u0cc1\u0ca4\u0ccd\u0ca4\u0cb5\u0cc6. \u0c95\u0cc0\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0cbe\u0ca7\u0ca8\u0ca6 \u0cb8\u0ccd\u0ca5\u0cb3\u0cc0\u0caf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0ca3\u0cc6\u0caf\u0cb2\u0ccd\u0cb2\u0cbf \u0cb8\u0c82\u0c97\u0ccd\u0cb0\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c89\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/ml.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 5 |
+
"confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 6 |
+
"continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
|
| 7 |
+
"goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d15\u0d46 \u0d2a\u0d4b\u0d15\u0d41\u0d15",
|
| 8 |
+
"reset": "\u0d2a\u0d41\u0d28\u0d03\u0d38\u0d1c\u0d4d\u0d1c\u0d2e\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 9 |
+
"submit": "\u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0d12\u0d30\u0d41 \u0d2a\u0d3f\u0d36\u0d15\u0d4d \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d41",
|
| 15 |
+
"serverConnection": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2c\u0d28\u0d4d\u0d27\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d32\u0d4b\u0d17\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
|
| 25 |
+
"required": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d",
|
| 29 |
+
"required": "\u0d2a\u0d3e\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d \u0d12\u0d30\u0d41 \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d2b\u0d40\u0d7d\u0d21\u0d4d \u0d06\u0d23\u0d4d"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
|
| 40 |
+
"signin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 41 |
+
"oauthSignin": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 42 |
+
"redirectUriMismatch": "\u0d31\u0d40\u0d21\u0d2f\u0d31\u0d15\u0d4d\u0d1f\u0d4d URI oauth \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d15\u0d4b\u0d7a\u0d2b\u0d3f\u0d17\u0d31\u0d47\u0d37\u0d28\u0d41\u0d2e\u0d3e\u0d2f\u0d3f \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32",
|
| 43 |
+
"oauthCallback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 44 |
+
"oauthCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 45 |
+
"emailCreateAccount": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 46 |
+
"callback": "\u0d2e\u0d31\u0d4d\u0d31\u0d4a\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 47 |
+
"oauthAccountNotLinked": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d35\u0d4d\u0d2f\u0d15\u0d4d\u0d24\u0d3f\u0d24\u0d4d\u0d35\u0d02 \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d06\u0d26\u0d4d\u0d2f\u0d02 \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a \u0d05\u0d24\u0d47 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 48 |
+
"emailSignin": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32",
|
| 49 |
+
"emailVerify": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15, \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d23\u0d4d\u0d1f\u0d4d",
|
| 50 |
+
"credentialsSignin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41. \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d7d\u0d15\u0d3f\u0d2f \u0d35\u0d3f\u0d35\u0d30\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d23\u0d46\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 51 |
+
"sessionRequired": "\u0d08 \u0d2a\u0d47\u0d1c\u0d4d \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d1f\u0d48\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 63 |
+
"stop": "\u0d1f\u0d3e\u0d38\u0d4d\u0d15\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 64 |
+
"attachFiles": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 69 |
+
"stop": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 70 |
+
"connecting": "\u0d2c\u0d28\u0d4d\u0d27\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d35\u0d32\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d41\u0d15",
|
| 74 |
+
"browse": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
|
| 75 |
+
"sizeLimit": "\u0d2a\u0d30\u0d3f\u0d27\u0d3f:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
|
| 78 |
+
"cancelled": "\u0d05\u0d2a\u0d4d\u200c\u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d3f"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
| 84 |
+
"used": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0d15\u0d4d\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d4d\u0d2c\u0d4b\u0d7c\u0d21\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15",
|
| 89 |
+
"success": "\u0d2a\u0d15\u0d7c\u0d24\u0d4d\u0d24\u0d3f!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d02",
|
| 94 |
+
"negative": "\u0d38\u0d39\u0d3e\u0d2f\u0d15\u0d30\u0d2e\u0d32\u0d4d\u0d32",
|
| 95 |
+
"edit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d0e\u0d21\u0d3f\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0d12\u0d30\u0d41 \u0d15\u0d2e\u0d28\u0d4d\u0d31\u0d4d \u0d1a\u0d47\u0d7c\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 98 |
+
"submit": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d7c\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41",
|
| 102 |
+
"updated": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2a\u0d4d\u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d07\u0d7b\u0d2a\u0d41\u0d1f\u0d4d\u0d1f\u0d41\u0d15\u0d7e",
|
| 108 |
+
"empty": "\u0d12\u0d28\u0d4d\u0d28\u0d41\u0d2e\u0d3f\u0d32\u0d4d\u0d32...",
|
| 109 |
+
"show": "\u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e \u0d2a\u0d3e\u0d28\u0d7d"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d28\u0d3f\u0d7c\u0d2e\u0d4d\u0d2e\u0d3f\u0d1a\u0d4d\u0d1a\u0d24\u0d4d"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0d2e\u0d41\u0d7b \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d41\u0d15\u0d7e",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0d07\u0d28\u0d4d\u0d28\u0d4d",
|
| 125 |
+
"yesterday": "\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46",
|
| 126 |
+
"previous7days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 7 \u0d26\u0d3f\u0d35\u0d38\u0d02",
|
| 127 |
+
"previous30days": "\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e 30 \u0d26\u0d3f\u0d35\u0d38\u0d02"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d15\u0d7e \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d05\u0d1f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 132 |
+
"open": "\u0d38\u0d48\u0d21\u0d4d\u0d2c\u0d3e\u0d7c \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0d2a\u0d47\u0d30\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24 \u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 144 |
+
"description": "\u0d07\u0d24\u0d4d \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d41\u0d02 \u0d05\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d18\u0d1f\u0d15\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d02 \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d02. \u0d08 \u0d2a\u0d4d\u0d30\u0d35\u0d7c\u0d24\u0d4d\u0d24\u0d3f \u0d2a\u0d34\u0d2f\u0d2a\u0d1f\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d3f\u0d32\u0d4d\u0d32",
|
| 145 |
+
"success": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41",
|
| 146 |
+
"inProgress": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d21\u0d3f\u0d32\u0d40\u0d31\u0d4d\u0d31\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
|
| 150 |
+
"description": "\u0d08 \u0d24\u0d4d\u0d30\u0d46\u0d21\u0d3f\u0d28\u0d4d \u0d12\u0d30\u0d41 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0d2a\u0d47\u0d30\u0d4d",
|
| 154 |
+
"placeholder": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d47\u0d30\u0d4d \u0d28\u0d7d\u0d15\u0d41\u0d15"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41!",
|
| 158 |
+
"inProgress": "\u0d24\u0d4d\u0d30\u0d46\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d7c\u0d28\u0d3e\u0d2e\u0d15\u0d30\u0d23\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d41"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
|
| 166 |
+
"readme": "\u0d35\u0d3e\u0d2f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
|
| 177 |
+
"description": "\u0d07\u0d24\u0d4d \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d39\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d2e\u0d3e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d02. \u0d24\u0d41\u0d1f\u0d30\u0d3e\u0d7b \u0d24\u0d3e\u0d7d\u0d2a\u0d4d\u0d2a\u0d30\u0d4d\u0d2f\u0d2e\u0d41\u0d23\u0d4d\u0d1f\u0d4b?",
|
| 178 |
+
"tooltip": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0d15\u0d40\u0d15\u0d7e",
|
| 186 |
+
"logout": "\u0d32\u0d4b\u0d17\u0d4d\u0d14\u0d1f\u0d4d\u0d1f\u0d4d"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f API \u0d15\u0d40\u0d15\u0d7e",
|
| 192 |
+
"description": "\u0d08 \u0d06\u0d2a\u0d4d\u0d2a\u0d4d \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d7b, \u0d24\u0d3e\u0d34\u0d46\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28 API \u0d15\u0d40\u0d15\u0d7e \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d. \u0d15\u0d40\u0d15\u0d7e \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d32\u0d4b\u0d15\u0d4d\u0d15\u0d7d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d47\u0d1c\u0d3f\u0d7d \u0d38\u0d02\u0d2d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/mr.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
|
| 5 |
+
"confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
|
| 6 |
+
"continue": "\u092a\u0941\u0922\u0947 \u091c\u093e",
|
| 7 |
+
"goBack": "\u092e\u093e\u0917\u0947 \u091c\u093e",
|
| 8 |
+
"reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e",
|
| 9 |
+
"submit": "\u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0932\u094b\u0921 \u0915\u0930\u0924 \u0906\u0939\u0947...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u0940 \u0906\u0932\u0940",
|
| 15 |
+
"serverConnection": "\u0938\u0930\u094d\u0935\u094d\u0939\u0930\u0936\u0940 \u0915\u0928\u0947\u0915\u094d\u091f \u0939\u094b\u090a \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u093e",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
|
| 25 |
+
"required": "\u0908\u092e\u0947\u0932 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
|
| 29 |
+
"required": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0915\u093f\u0902\u0935\u093e"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0942 \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
|
| 40 |
+
"signin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 41 |
+
"oauthSignin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 42 |
+
"redirectUriMismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f URI \u0913\u0925 \u0905\u0945\u092a \u0915\u0949\u0928\u094d\u092b\u093f\u0917\u0930\u0947\u0936\u0928\u0936\u0940 \u091c\u0941\u0933\u0924 \u0928\u093e\u0939\u0940",
|
| 43 |
+
"oauthCallback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 44 |
+
"oauthCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 45 |
+
"emailCreateAccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 46 |
+
"callback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e",
|
| 47 |
+
"oauthAccountNotLinked": "\u0924\u0941\u092e\u091a\u0940 \u0913\u0933\u0916 \u092a\u091f\u0935\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940, \u092e\u0942\u0933 \u0935\u093e\u092a\u0930\u0932\u0947\u0932\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0928\u0947\u091a \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e",
|
| 48 |
+
"emailSignin": "\u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0942 \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940",
|
| 49 |
+
"emailVerify": "\u0915\u0943\u092a\u092f\u093e \u0924\u0941\u092e\u091a\u093e \u0908\u092e\u0947\u0932 \u0924\u092a\u093e\u0938\u093e, \u0928\u0935\u0940\u0928 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0932\u093e \u0917\u0947\u0932\u093e \u0906\u0939\u0947",
|
| 50 |
+
"credentialsSignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0905\u092f\u0936\u0938\u094d\u0935\u0940. \u0924\u0941\u092e\u094d\u0939\u0940 \u0926\u093f\u0932\u0947\u0932\u0940 \u092e\u093e\u0939\u093f\u0924\u0940 \u092f\u094b\u0917\u094d\u092f \u0906\u0939\u0947 \u0915\u093e \u0924\u0947 \u0924\u092a\u093e\u0938\u093e",
|
| 51 |
+
"sessionRequired": "\u092f\u093e \u092a\u0943\u0937\u094d\u0920\u093e\u0935\u0930 \u092a\u094d\u0930\u0935\u0947\u0936 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0938\u0939 \u092a\u0941\u0922\u0947 \u091c\u093e"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0924\u0941\u092e\u091a\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0947\u0925\u0947 \u091f\u093e\u0907\u092a \u0915\u0930\u093e...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0938\u0902\u0926\u0947\u0936 \u092a\u093e\u0920\u0935\u093e",
|
| 63 |
+
"stop": "\u0915\u093e\u0930\u094d\u092f \u0925\u093e\u0902\u092c\u0935\u093e",
|
| 64 |
+
"attachFiles": "\u092b\u093e\u0907\u0932\u094d\u0938 \u091c\u094b\u0921\u093e"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0938\u0941\u0930\u0942 \u0915\u0930\u093e",
|
| 69 |
+
"stop": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u093e",
|
| 70 |
+
"connecting": "\u0915\u0928\u0947\u0915\u094d\u091f \u0915\u0930\u0924 \u0906\u0939\u0947"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092f\u0947\u0925\u0947 \u0921\u094d\u0930\u0945\u0917 \u0906\u0923\u093f \u0921\u094d\u0930\u0949\u092a \u0915\u0930\u093e",
|
| 74 |
+
"browse": "\u092b\u093e\u0907\u0932\u094d\u0938 \u092c\u094d\u0930\u093e\u0909\u091d \u0915\u0930\u093e",
|
| 75 |
+
"sizeLimit": "\u092e\u0930\u094d\u092f\u093e\u0926\u093e:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0905\u092a\u0932\u094b\u0921 \u0905\u092f\u0936\u0938\u094d\u0935\u0940",
|
| 78 |
+
"cancelled": "\u092f\u093e\u0902\u091a\u0947 \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0947\u0932\u0947"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0935\u093e\u092a\u0930\u0924 \u0906\u0939\u0947",
|
| 84 |
+
"used": "\u0935\u093e\u092a\u0930\u0932\u0947"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0915\u094d\u0932\u093f\u092a\u092c\u094b\u0930\u094d\u0921\u0935\u0930 \u0915\u0949\u092a\u0940 \u0915\u0930\u093e",
|
| 89 |
+
"success": "\u0915\u0949\u092a\u0940 \u0915\u0947\u0932\u0947!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924",
|
| 94 |
+
"negative": "\u0909\u092a\u092f\u0941\u0915\u094d\u0924 \u0928\u093e\u0939\u0940",
|
| 95 |
+
"edit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u0902\u092a\u093e\u0926\u093f\u0924 \u0915\u0930\u093e",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u091f\u093f\u092a\u094d\u092a\u0923\u0940 \u091c\u094b\u0921\u093e",
|
| 98 |
+
"submit": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0938\u092c\u092e\u093f\u091f \u0915\u0930\u093e"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0905\u092a\u0921\u0947\u091f \u0915\u0930\u0924 \u0906\u0939\u0947",
|
| 102 |
+
"updated": "\u092b\u0940\u0921\u092c\u0945\u0915 \u0905\u092a\u0921\u0947\u091f \u0915\u0947\u0932\u0947"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0936\u0947\u0935\u091f\u091a\u0947 \u0907\u0928\u092a\u0941\u091f",
|
| 108 |
+
"empty": "\u0930\u093f\u0915\u093e\u092e\u0947 \u0906\u0939\u0947...",
|
| 109 |
+
"show": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093e\u0916\u0935\u093e"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c \u092a\u0945\u0928\u0932"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u0938\u0939 \u092c\u0928\u0935\u0932\u0947"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u092e\u093e\u0917\u0940\u0932 \u091a\u0945\u091f\u094d\u0938",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0936\u094b\u0927\u093e",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0906\u091c",
|
| 125 |
+
"yesterday": "\u0915\u093e\u0932",
|
| 126 |
+
"previous7days": "\u092e\u093e\u0917\u0940\u0932 7 \u0926\u093f\u0935\u0938",
|
| 127 |
+
"previous30days": "\u092e\u093e\u0917\u0940\u0932 30 \u0926\u093f\u0935\u0938"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0915\u094b\u0923\u0924\u0947\u0939\u0940 \u0925\u094d\u0930\u0947\u0921 \u0938\u093e\u092a\u0921\u0932\u0947 \u0928\u093e\u0939\u0940\u0924",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u093e",
|
| 132 |
+
"open": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0909\u0918\u0921\u093e"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0936\u0940\u0930\u094d\u0937\u0915\u0935\u093f\u0930\u0939\u093f\u0924 \u0938\u0902\u092d\u093e\u0937\u0923",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0939\u091f\u0935\u093f\u0923\u094d\u092f\u093e\u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
|
| 144 |
+
"description": "\u0939\u0947 \u0925\u094d\u0930\u0947\u0921 \u0906\u0923\u093f \u0924\u094d\u092f\u093e\u091a\u0947 \u0938\u0902\u0926\u0947\u0936 \u0935 \u0918\u091f\u0915 \u0939\u091f\u0935\u0947\u0932. \u0939\u0940 \u0915\u094d\u0930\u093f\u092f\u093e \u092a\u0942\u0930\u094d\u0935\u0935\u0924 \u0915\u0947\u0932\u0940 \u091c\u093e\u090a \u0936\u0915\u0924 \u0928\u093e\u0939\u0940",
|
| 145 |
+
"success": "\u091a\u0945\u091f \u0939\u091f\u0935\u0932\u093e",
|
| 146 |
+
"inProgress": "\u091a\u0945\u091f \u0939\u091f\u0935\u0924 \u0906\u0939\u0947"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u093e",
|
| 150 |
+
"description": "\u092f\u093e \u0925\u094d\u0930\u0947\u0921\u0938\u093e\u0920\u0940 \u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0928\u093e\u0935",
|
| 154 |
+
"placeholder": "\u0928\u0935\u0940\u0928 \u0928\u093e\u0935 \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0932\u0947!",
|
| 158 |
+
"inProgress": "\u0925\u094d\u0930\u0947\u0921\u091a\u0947 \u0928\u093e\u0935 \u092c\u0926\u0932\u0924 \u0906\u0939\u0947"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u091a\u0945\u091f",
|
| 166 |
+
"readme": "\u0935\u093e\u091a\u093e",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u093e",
|
| 177 |
+
"description": "\u0939\u0947 \u0924\u0941\u092e\u091a\u093e \u0938\u0927\u094d\u092f\u093e\u091a\u093e \u091a\u0945\u091f \u0907\u0924\u093f\u0939\u093e\u0938 \u0938\u093e\u092b \u0915\u0930\u0947\u0932. \u0924\u0941\u092e\u094d\u0939\u093e\u0932\u093e \u0916\u093e\u0924\u094d\u0930\u0940 \u0906\u0939\u0947 \u0915\u0940 \u0924\u0941\u092e\u094d\u0939\u0940 \u092a\u0941\u0922\u0947 \u091c\u093e\u090a \u0907\u091a\u094d\u091b\u093f\u0924\u093e?",
|
| 178 |
+
"tooltip": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u091c",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0915\u0940\u091c",
|
| 186 |
+
"logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0906\u0935\u0936\u094d\u092f\u0915 API \u0915\u0940\u091c",
|
| 192 |
+
"description": "\u0939\u0947 \u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0916\u093e\u0932\u0940\u0932 API \u0915\u0940\u091c \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947\u0924. \u0915\u0940\u091c \u0924\u0941\u092e\u091a\u094d\u092f\u093e \u0921\u093f\u0935\u094d\u0939\u093e\u0907\u0938\u091a\u094d\u092f\u093e \u0932\u094b\u0915\u0932 \u0938\u094d\u091f\u094b\u0930\u0947\u091c\u092e\u0927\u094d\u092f\u0947 \u0938\u093e\u0920\u0935\u0932\u094d\u092f\u093e \u091c\u093e\u0924\u093e\u0924.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u091c\u0924\u0928 \u0915\u0947\u0932\u0947"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/nl-NL.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "Annuleren",
|
| 5 |
+
"confirm": "Bevestigen",
|
| 6 |
+
"continue": "Doorgaan",
|
| 7 |
+
"goBack": "Terug",
|
| 8 |
+
"reset": "Herstellen",
|
| 9 |
+
"submit": "Versturen"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "Laden...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "Er is een fout opgetreden",
|
| 15 |
+
"serverConnection": "Kon geen verbinding maken met de server"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "Inloggen om toegang te krijgen tot de app",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "E-mailadres",
|
| 25 |
+
"required": "e-mail is een verplicht veld"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "Wachtwoord",
|
| 29 |
+
"required": "wachtwoord is een verplicht veld"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "Inloggen"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "OF"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "Kan niet inloggen",
|
| 40 |
+
"signin": "Probeer in te loggen met een ander account",
|
| 41 |
+
"oauthSignin": "Probeer in te loggen met een ander account",
|
| 42 |
+
"redirectUriMismatch": "De redirect URI komt niet overeen met de oauth app configuratie",
|
| 43 |
+
"oauthCallback": "Probeer in te loggen met een ander account",
|
| 44 |
+
"oauthCreateAccount": "Probeer in te loggen met een ander account",
|
| 45 |
+
"emailCreateAccount": "Probeer in te loggen met een ander account",
|
| 46 |
+
"callback": "Probeer in te loggen met een ander account",
|
| 47 |
+
"oauthAccountNotLinked": "Om je identiteit te bevestigen, log in met hetzelfde account dat je oorspronkelijk hebt gebruikt",
|
| 48 |
+
"emailSignin": "De e-mail kon niet worden verzonden",
|
| 49 |
+
"emailVerify": "Verifieer je e-mail, er is een nieuwe e-mail verzonden",
|
| 50 |
+
"credentialsSignin": "Inloggen mislukt. Controleer of de ingevoerde gegevens correct zijn",
|
| 51 |
+
"sessionRequired": "Log in om toegang te krijgen tot deze pagina"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "Doorgaan met {{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "Typ hier je bericht...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "Bericht versturen",
|
| 63 |
+
"stop": "Taak stoppen",
|
| 64 |
+
"attachFiles": "Bestanden bijvoegen"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "Start opname",
|
| 69 |
+
"stop": "Stop opname",
|
| 70 |
+
"connecting": "Verbinden"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "Sleep bestanden hierheen",
|
| 74 |
+
"browse": "Bestanden zoeken",
|
| 75 |
+
"sizeLimit": "Limiet:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "Uploaden mislukt",
|
| 78 |
+
"cancelled": "Upload geannuleerd van"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "In gebruik",
|
| 84 |
+
"used": "Gebruikt"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "Kopi\u00ebren naar klembord",
|
| 89 |
+
"success": "Gekopieerd!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "Nuttig",
|
| 94 |
+
"negative": "Niet nuttig",
|
| 95 |
+
"edit": "Feedback bewerken",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "Voeg een opmerking toe",
|
| 98 |
+
"submit": "Feedback versturen"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "Bijwerken",
|
| 102 |
+
"updated": "Feedback bijgewerkt"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "Laatste invoer",
|
| 108 |
+
"empty": "Zo leeg...",
|
| 109 |
+
"show": "Toon geschiedenis"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "Instellingenpaneel"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "Gebouwd met"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "Eerdere chats",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "Zoeken",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "Vandaag",
|
| 125 |
+
"yesterday": "Gisteren",
|
| 126 |
+
"previous7days": "Afgelopen 7 dagen",
|
| 127 |
+
"previous30days": "Afgelopen 30 dagen"
|
| 128 |
+
},
|
| 129 |
+
"empty": "Geen gesprekken gevonden",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "Zijbalk sluiten",
|
| 132 |
+
"open": "Zijbalk openen"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "Naamloos gesprek",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "Verwijdering bevestigen",
|
| 144 |
+
"description": "Dit zal het gesprek en bijbehorende berichten en elementen verwijderen. Deze actie kan niet ongedaan worden gemaakt",
|
| 145 |
+
"success": "Chat verwijderd",
|
| 146 |
+
"inProgress": "Chat verwijderen"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "Gesprek hernoemen",
|
| 150 |
+
"description": "Voer een nieuwe naam in voor dit gesprek",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "Naam",
|
| 154 |
+
"placeholder": "Voer nieuwe naam in"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "Gesprek hernoemd!",
|
| 158 |
+
"inProgress": "Gesprek hernoemen"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "Chat",
|
| 166 |
+
"readme": "Leesmij",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "Nieuwe chat",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "Nieuwe chat aanmaken",
|
| 177 |
+
"description": "Dit zal je huidige chatgeschiedenis wissen. Weet je zeker dat je door wilt gaan?",
|
| 178 |
+
"tooltip": "Nieuwe chat"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "Instellingen",
|
| 184 |
+
"settingsKey": "I",
|
| 185 |
+
"apiKeys": "API-sleutels",
|
| 186 |
+
"logout": "Uitloggen"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "Vereiste API-sleutels",
|
| 192 |
+
"description": "Om deze app te gebruiken zijn de volgende API-sleutels vereist. De sleutels worden opgeslagen in de lokale opslag van je apparaat.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "Succesvol opgeslagen"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/ta.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd",
|
| 5 |
+
"confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 6 |
+
"continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0b95",
|
| 7 |
+
"goBack": "\u0ba4\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bbf\u0b9a\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd",
|
| 8 |
+
"reset": "\u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8",
|
| 9 |
+
"submit": "\u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0baa\u0bbf\u0bb4\u0bc8 \u0b8f\u0bb1\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
|
| 15 |
+
"serverConnection": "\u0b9a\u0bc7\u0bb5\u0bc8\u0baf\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0b9f\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
|
| 25 |
+
"required": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
|
| 29 |
+
"required": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 40 |
+
"signin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 41 |
+
"oauthSignin": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 42 |
+
"redirectUriMismatch": "\u0ba4\u0bbf\u0b9a\u0bc8\u0ba4\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bb2\u0bcd URI \u0b93\u0b86\u0ba4\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b95\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 43 |
+
"oauthCallback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 44 |
+
"oauthCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 45 |
+
"emailCreateAccount": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 46 |
+
"callback": "\u0bb5\u0bc7\u0bb1\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0bae\u0bc1\u0baf\u0bb1\u0bcd\u0b9a\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 47 |
+
"oauthAccountNotLinked": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b85\u0b9f\u0bc8\u0baf\u0bbe\u0bb3\u0ba4\u0bcd\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0bae\u0bc1\u0ba4\u0bb2\u0bbf\u0bb2\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b85\u0ba4\u0bc7 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1\u0b9f\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd",
|
| 48 |
+
"emailSignin": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 49 |
+
"emailVerify": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd, \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1",
|
| 50 |
+
"credentialsSignin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0bb5\u0bc1 \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1. \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0bbf\u0baf \u0bb5\u0bbf\u0bb5\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bb0\u0bbf\u0baf\u0bbe\u0ba9\u0bb5\u0bc8 \u0b8e\u0ba9 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 51 |
+
"sessionRequired": "\u0b87\u0ba8\u0bcd\u0ba4\u0baa\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0ba4\u0bcd\u0ba4\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf\u0bb5\u0bc1\u0bae\u0bcd"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}} \u0bae\u0bc2\u0bb2\u0bae\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bb5\u0bc1\u0bae\u0bcd"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0baf\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0ba4\u0b9f\u0bcd\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb5\u0bc1\u0bae\u0bcd...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
|
| 63 |
+
"stop": "\u0baa\u0ba3\u0bbf\u0baf\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 64 |
+
"attachFiles": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0ba3\u0bc8"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1",
|
| 69 |
+
"stop": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 70 |
+
"connecting": "\u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0b87\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
|
| 74 |
+
"browse": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b89\u0bb2\u0bbe\u0bb5\u0bc1",
|
| 75 |
+
"sizeLimit": "\u0bb5\u0bb0\u0bae\u0bcd\u0baa\u0bc1:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0b9f\u0bc8\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
|
| 78 |
+
"cancelled": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
|
| 84 |
+
"used": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0b95\u0bbf\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0bcb\u0bb0\u0bcd\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1",
|
| 89 |
+
"success": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1",
|
| 94 |
+
"negative": "\u0baa\u0baf\u0ba9\u0bc1\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe\u0b95 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 95 |
+
"edit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bbf\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8\u0b9a\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd",
|
| 98 |
+
"submit": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc8 \u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
|
| 102 |
+
"updated": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf \u0b89\u0bb3\u0bcd\u0bb3\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd",
|
| 108 |
+
"empty": "\u0b95\u0bbe\u0bb2\u0bbf\u0baf\u0bbe\u0b95 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1...",
|
| 109 |
+
"show": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0baa\u0bb2\u0b95\u0bae\u0bcd"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u0b89\u0b9f\u0ba9\u0bcd \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0ba4\u0bc7\u0b9f\u0bc1",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",
|
| 125 |
+
"yesterday": "\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1",
|
| 126 |
+
"previous7days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 7 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",
|
| 127 |
+
"previous30days": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 30 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd\u0b95\u0bb3\u0bcd \u0b8e\u0ba4\u0bc1\u0bb5\u0bc1\u0bae\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bae\u0bc2\u0b9f\u0bc1",
|
| 132 |
+
"open": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0ba4\u0bbf\u0bb1"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bbe\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0ba4\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1",
|
| 144 |
+
"description": "\u0b87\u0ba4\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bcd, \u0b89\u0bb1\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0b87\u0ba8\u0bcd\u0ba4 \u0b9a\u0bc6\u0baf\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bbe\u0ba4\u0bc1",
|
| 145 |
+
"success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
|
| 146 |
+
"inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1",
|
| 150 |
+
"description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd",
|
| 154 |
+
"placeholder": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0baa\u0bc6\u0baf\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1!",
|
| 158 |
+
"inProgress": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0bae\u0bb1\u0bc1\u0baa\u0bc6\u0baf\u0bb0\u0bbf\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 166 |
+
"readme": "\u0baa\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
|
| 177 |
+
"description": "\u0b87\u0ba4\u0bc1 \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd. \u0ba4\u0bca\u0b9f\u0bb0 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe?",
|
| 178 |
+
"tooltip": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
|
| 186 |
+
"logout": "\u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1\u0bc1"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
|
| 192 |
+
"description": "\u0b87\u0ba8\u0bcd\u0ba4 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8\u0baa\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4, \u0baa\u0bbf\u0ba9\u0bcd\u0bb5\u0bb0\u0bc1\u0bae\u0bcd API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8. \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bbe\u0ba4\u0ba9\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bc2\u0bb0\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0baa\u0bcd\u0baa\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/te.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 5 |
+
"confirm": "\u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 6 |
+
"continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 7 |
+
"goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c02\u0c21\u0c3f",
|
| 8 |
+
"reset": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 9 |
+
"submit": "\u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u0c32\u0c4b\u0c21\u0c4d \u0c05\u0c35\u0c41\u0c24\u0c4b\u0c02\u0c26\u0c3f...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u0c32\u0c4b\u0c2a\u0c02 \u0c38\u0c02\u0c2d\u0c35\u0c3f\u0c02\u0c1a\u0c3f\u0c02\u0c26\u0c3f",
|
| 15 |
+
"serverConnection": "\u0c38\u0c30\u0c4d\u0c35\u0c30\u0c4d\u200c\u0c28\u0c3f \u0c1a\u0c47\u0c30\u0c41\u0c15\u0c4b\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c32\u0c3e\u0c17\u0c3f\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
|
| 25 |
+
"required": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d",
|
| 29 |
+
"required": "\u0c2a\u0c3e\u0c38\u0c4d\u200c\u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u0c32\u0c47\u0c26\u0c3e"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c2e\u0c41",
|
| 40 |
+
"signin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 41 |
+
"oauthSignin": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 42 |
+
"redirectUriMismatch": "\u0c30\u0c40\u0c21\u0c48\u0c30\u0c46\u0c15\u0c4d\u0c1f\u0c4d URI oauth \u0c2f\u0c3e\u0c2a\u0c4d \u0c15\u0c3e\u0c28\u0c4d\u0c2b\u0c3f\u0c17\u0c30\u0c47\u0c37\u0c28\u0c4d\u200c\u0c24\u0c4b \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c21\u0c02 \u0c32\u0c47\u0c26\u0c41",
|
| 43 |
+
"oauthCallback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 44 |
+
"oauthCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 45 |
+
"emailCreateAccount": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 46 |
+
"callback": "\u0c35\u0c47\u0c30\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2a\u0c4d\u0c30\u0c2f\u0c24\u0c4d\u0c28\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 47 |
+
"oauthAccountNotLinked": "\u0c2e\u0c40 \u0c17\u0c41\u0c30\u0c4d\u0c24\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c2e\u0c40\u0c30\u0c41 \u0c2e\u0c4a\u0c26\u0c1f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c05\u0c26\u0c47 \u0c16\u0c3e\u0c24\u0c3e\u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 48 |
+
"emailSignin": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c32\u0c47\u0c26\u0c41",
|
| 49 |
+
"emailVerify": "\u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d\u200c\u0c28\u0c3f \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f, \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
|
| 50 |
+
"credentialsSignin": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c05\u0c02\u0c26\u0c3f\u0c02\u0c1a\u0c3f\u0c28 \u0c35\u0c3f\u0c35\u0c30\u0c3e\u0c32\u0c41 \u0c38\u0c30\u0c48\u0c28\u0c35\u0c47\u0c28\u0c3e \u0c05\u0c28\u0c3f \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 51 |
+
"sessionRequired": "\u0c08 \u0c2a\u0c47\u0c1c\u0c40\u0c28\u0c3f \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "{{provider}}\u0c24\u0c4b \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u0c2e\u0c40 \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c1f\u0c48\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c02 \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
|
| 63 |
+
"stop": "\u0c2a\u0c28\u0c3f \u0c06\u0c2a\u0c02\u0c21\u0c3f",
|
| 64 |
+
"attachFiles": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c2a\u0c4d\u0c30\u0c3e\u0c30\u0c02\u0c2d\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 69 |
+
"stop": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c02\u0c21\u0c3f",
|
| 70 |
+
"connecting": "\u0c05\u0c28\u0c41\u0c38\u0c02\u0c27\u0c3e\u0c28\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d\u200c\u0c28\u0c3f \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c21\u0c4d\u0c30\u0c3e\u0c17\u0c4d \u0c1a\u0c47\u0c38\u0c3f \u0c21\u0c4d\u0c30\u0c3e\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 74 |
+
"browse": "\u0c2b\u0c48\u0c32\u0c4d\u0c38\u0c4d \u0c2c\u0c4d\u0c30\u0c4c\u0c1c\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 75 |
+
"sizeLimit": "\u0c2a\u0c30\u0c3f\u0c2e\u0c3f\u0c24\u0c3f:",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
|
| 78 |
+
"cancelled": "\u0c05\u0c2a\u0c4d\u200c\u0c32\u0c4b\u0c21\u0c4d \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
|
| 84 |
+
"used": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u0c15\u0c4d\u0c32\u0c3f\u0c2a\u0c4d\u200c\u0c2c\u0c4b\u0c30\u0c4d\u0c21\u0c4d\u200c\u0c15\u0c3f \u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 89 |
+
"success": "\u0c15\u0c3e\u0c2a\u0c40 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02",
|
| 94 |
+
"negative": "\u0c38\u0c39\u0c3e\u0c2f\u0c15\u0c30\u0c02 \u0c15\u0c3e\u0c26\u0c41",
|
| 95 |
+
"edit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c35\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u0c35\u0c4d\u0c2f\u0c3e\u0c16\u0c4d\u0c2f \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 98 |
+
"submit": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c3e\u0c28\u0c4d\u0c28\u0c3f \u0c38\u0c2e\u0c30\u0c4d\u0c2a\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f",
|
| 102 |
+
"updated": "\u0c05\u0c2d\u0c3f\u0c2a\u0c4d\u0c30\u0c3e\u0c2f\u0c02 \u0c28\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u0c1a\u0c3f\u0c35\u0c30\u0c3f \u0c07\u0c28\u0c4d\u200c\u0c2a\u0c41\u0c1f\u0c4d\u200c\u0c32\u0c41",
|
| 108 |
+
"empty": "\u0c16\u0c3e\u0c33\u0c40\u0c17\u0c3e \u0c09\u0c02\u0c26\u0c3f...",
|
| 109 |
+
"show": "\u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32 \u0c2a\u0c4d\u0c2f\u0c3e\u0c28\u0c46\u0c32\u0c4d"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u0c24\u0c4b \u0c28\u0c3f\u0c30\u0c4d\u0c2e\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u0c17\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c32\u0c41",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u0c35\u0c46\u0c24\u0c15\u0c02\u0c21\u0c3f",
|
| 121 |
+
"placeholder": "Search conversations..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u0c08\u0c30\u0c4b\u0c1c\u0c41",
|
| 125 |
+
"yesterday": "\u0c28\u0c3f\u0c28\u0c4d\u0c28",
|
| 126 |
+
"previous7days": "\u0c17\u0c24 7 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",
|
| 127 |
+
"previous30days": "\u0c17\u0c24 30 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c32\u0c41 \u0c15\u0c28\u0c41\u0c17\u0c4a\u0c28\u0c2c\u0c21\u0c32\u0c47\u0c26\u0c41",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c2e\u0c42\u0c38\u0c3f\u0c35\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 132 |
+
"open": "\u0c38\u0c48\u0c21\u0c4d\u200c\u0c2c\u0c3e\u0c30\u0c4d \u0c24\u0c46\u0c30\u0c35\u0c02\u0c21\u0c3f"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u0c2a\u0c47\u0c30\u0c41 \u0c32\u0c47\u0c28\u0c3f \u0c38\u0c02\u0c2d\u0c3e\u0c37\u0c23",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "Rename",
|
| 139 |
+
"delete": "Delete"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c28\u0c3f\u0c30\u0c4d\u0c27\u0c3e\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 144 |
+
"description": "\u0c07\u0c26\u0c3f \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u200c\u0c24\u0c4b \u0c2a\u0c3e\u0c1f\u0c41 \u0c26\u0c3e\u0c28\u0c3f \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c05\u0c02\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c08 \u0c1a\u0c30\u0c4d\u0c2f\u0c28\u0c41 \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c32\u0c47\u0c30\u0c41",
|
| 145 |
+
"success": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
|
| 146 |
+
"inProgress": "\u0c1a\u0c3e\u0c1f\u0c4d\u200c\u0c28\u0c3f \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c02\u0c21\u0c3f",
|
| 150 |
+
"description": "\u0c08 \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c15\u0c4b\u0c38\u0c02 \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u0c2a\u0c47\u0c30\u0c41",
|
| 154 |
+
"placeholder": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c47\u0c30\u0c41\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f!",
|
| 158 |
+
"inProgress": "\u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d \u0c2a\u0c47\u0c30\u0c41 \u0c2e\u0c3e\u0c30\u0c41\u0c38\u0c4d\u0c24\u0c4b\u0c02\u0c26\u0c3f"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u0c1a\u0c3e\u0c1f\u0c4d",
|
| 166 |
+
"readme": "\u0c1a\u0c26\u0c35\u0c02\u0c21\u0c3f",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "Light Theme",
|
| 169 |
+
"dark": "Dark Theme",
|
| 170 |
+
"system": "Follow System"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
|
| 177 |
+
"description": "\u0c07\u0c26\u0c3f \u0c2e\u0c40 \u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c24\u0c41\u0c21\u0c3f\u0c1a\u0c3f\u0c35\u0c47\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f. \u0c2e\u0c40\u0c30\u0c41 \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c3e\u0c32\u0c28\u0c41\u0c15\u0c41\u0c02\u0c1f\u0c41\u0c28\u0c4d\u0c28\u0c3e\u0c30\u0c3e?",
|
| 178 |
+
"tooltip": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u200c\u0c32\u0c41",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API \u0c15\u0c40\u0c32\u0c41",
|
| 186 |
+
"logout": "\u0c32\u0c3e\u0c17\u0c4d \u0c05\u0c35\u0c41\u0c1f\u0c4d"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 API \u0c15\u0c40\u0c32\u0c41",
|
| 192 |
+
"description": "\u0c08 \u0c2f\u0c3e\u0c2a\u0c4d\u200c\u0c28\u0c3f \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c15\u0c3f\u0c02\u0c26\u0c3f API \u0c15\u0c40\u0c32\u0c41 \u0c05\u0c35\u0c38\u0c30\u0c02. \u0c15\u0c40\u0c32\u0c41 \u0c2e\u0c40 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c38\u0c4d\u0c25\u0c3e\u0c28\u0c3f\u0c15 \u0c28\u0c3f\u0c32\u0c4d\u0c35\u0c32\u0c4b \u0c28\u0c3f\u0c32\u0c4d\u0c35 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c24\u0c3e\u0c2f\u0c3f.",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "Info",
|
| 199 |
+
"note": "Note",
|
| 200 |
+
"tip": "Tip",
|
| 201 |
+
"important": "Important",
|
| 202 |
+
"warning": "Warning",
|
| 203 |
+
"caution": "Caution",
|
| 204 |
+
"debug": "Debug",
|
| 205 |
+
"example": "Example",
|
| 206 |
+
"success": "Success",
|
| 207 |
+
"help": "Help",
|
| 208 |
+
"idea": "Idea",
|
| 209 |
+
"pending": "Pending",
|
| 210 |
+
"security": "Security",
|
| 211 |
+
"beta": "Beta",
|
| 212 |
+
"best-practice": "Best Practice"
|
| 213 |
+
}
|
| 214 |
+
}
|
.chainlit/translations/zh-CN.json
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"common": {
|
| 3 |
+
"actions": {
|
| 4 |
+
"cancel": "\u53d6\u6d88",
|
| 5 |
+
"confirm": "\u786e\u8ba4",
|
| 6 |
+
"continue": "\u7ee7\u7eed",
|
| 7 |
+
"goBack": "\u8fd4\u56de",
|
| 8 |
+
"reset": "\u91cd\u7f6e",
|
| 9 |
+
"submit": "\u63d0\u4ea4"
|
| 10 |
+
},
|
| 11 |
+
"status": {
|
| 12 |
+
"loading": "\u52a0\u8f7d\u4e2d...",
|
| 13 |
+
"error": {
|
| 14 |
+
"default": "\u53d1\u751f\u9519\u8bef",
|
| 15 |
+
"serverConnection": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668"
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
},
|
| 19 |
+
"auth": {
|
| 20 |
+
"login": {
|
| 21 |
+
"title": "\u767b\u5f55\u4ee5\u8bbf\u95ee\u5e94\u7528",
|
| 22 |
+
"form": {
|
| 23 |
+
"email": {
|
| 24 |
+
"label": "\u7535\u5b50\u90ae\u7bb1",
|
| 25 |
+
"required": "\u90ae\u7bb1\u662f\u5fc5\u586b\u9879"
|
| 26 |
+
},
|
| 27 |
+
"password": {
|
| 28 |
+
"label": "\u5bc6\u7801",
|
| 29 |
+
"required": "\u5bc6\u7801\u662f\u5fc5\u586b\u9879"
|
| 30 |
+
},
|
| 31 |
+
"actions": {
|
| 32 |
+
"signin": "\u767b\u5f55"
|
| 33 |
+
},
|
| 34 |
+
"alternativeText": {
|
| 35 |
+
"or": "\u6216"
|
| 36 |
+
}
|
| 37 |
+
},
|
| 38 |
+
"errors": {
|
| 39 |
+
"default": "\u65e0\u6cd5\u767b\u5f55",
|
| 40 |
+
"signin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 41 |
+
"oauthSignin": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 42 |
+
"redirectUriMismatch": "\u91cd\u5b9a\u5411URI\u4e0eOAuth\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d",
|
| 43 |
+
"oauthCallback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 44 |
+
"oauthCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 45 |
+
"emailCreateAccount": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 46 |
+
"callback": "\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u5176\u4ed6\u8d26\u53f7\u767b\u5f55",
|
| 47 |
+
"oauthAccountNotLinked": "\u4e3a\u786e\u8ba4\u60a8\u7684\u8eab\u4efd\uff0c\u8bf7\u4f7f\u7528\u539f\u59cb\u8d26\u53f7\u767b\u5f55",
|
| 48 |
+
"emailSignin": "\u90ae\u4ef6\u53d1\u9001\u5931\u8d25",
|
| 49 |
+
"emailVerify": "\u8bf7\u9a8c\u8bc1\u60a8\u7684\u90ae\u7bb1\uff0c\u65b0\u7684\u9a8c\u8bc1\u90ae\u4ef6\u5df2\u53d1\u9001",
|
| 50 |
+
"credentialsSignin": "\u767b\u5f55\u5931\u8d25\u3002\u8bf7\u68c0\u67e5\u60a8\u63d0\u4f9b\u7684\u4fe1\u606f\u662f\u5426\u6b63\u786e",
|
| 51 |
+
"sessionRequired": "\u8bf7\u767b\u5f55\u4ee5\u8bbf\u95ee\u6b64\u9875\u9762"
|
| 52 |
+
}
|
| 53 |
+
},
|
| 54 |
+
"provider": {
|
| 55 |
+
"continue": "\u7ee7\u7eed\u4f7f\u7528{{provider}}"
|
| 56 |
+
}
|
| 57 |
+
},
|
| 58 |
+
"chat": {
|
| 59 |
+
"input": {
|
| 60 |
+
"placeholder": "\u5728\u6b64\u8f93\u5165\u60a8\u7684\u6d88\u606f...",
|
| 61 |
+
"actions": {
|
| 62 |
+
"send": "\u53d1\u9001\u6d88\u606f",
|
| 63 |
+
"stop": "\u505c\u6b62\u4efb\u52a1",
|
| 64 |
+
"attachFiles": "\u9644\u52a0\u6587\u4ef6"
|
| 65 |
+
}
|
| 66 |
+
},
|
| 67 |
+
"speech": {
|
| 68 |
+
"start": "\u5f00\u59cb\u5f55\u97f3",
|
| 69 |
+
"stop": "\u505c\u6b62\u5f55\u97f3",
|
| 70 |
+
"connecting": "\u8fde\u63a5\u4e2d"
|
| 71 |
+
},
|
| 72 |
+
"fileUpload": {
|
| 73 |
+
"dragDrop": "\u5c06\u6587\u4ef6\u62d6\u653e\u5230\u8fd9\u91cc",
|
| 74 |
+
"browse": "\u6d4f\u89c8\u6587\u4ef6",
|
| 75 |
+
"sizeLimit": "\u9650\u5236\uff1a",
|
| 76 |
+
"errors": {
|
| 77 |
+
"failed": "\u4e0a\u4f20\u5931\u8d25",
|
| 78 |
+
"cancelled": "\u5df2\u53d6\u6d88\u4e0a\u4f20"
|
| 79 |
+
}
|
| 80 |
+
},
|
| 81 |
+
"messages": {
|
| 82 |
+
"status": {
|
| 83 |
+
"using": "\u4f7f\u7528\u4e2d",
|
| 84 |
+
"used": "\u5df2\u4f7f\u7528"
|
| 85 |
+
},
|
| 86 |
+
"actions": {
|
| 87 |
+
"copy": {
|
| 88 |
+
"button": "\u590d\u5236\u5230\u526a\u8d34\u677f",
|
| 89 |
+
"success": "\u5df2\u590d\u5236\uff01"
|
| 90 |
+
}
|
| 91 |
+
},
|
| 92 |
+
"feedback": {
|
| 93 |
+
"positive": "\u6709\u5e2e\u52a9",
|
| 94 |
+
"negative": "\u6ca1\u6709\u5e2e\u52a9",
|
| 95 |
+
"edit": "\u7f16\u8f91\u53cd\u9988",
|
| 96 |
+
"dialog": {
|
| 97 |
+
"title": "\u6dfb\u52a0\u8bc4\u8bba",
|
| 98 |
+
"submit": "\u63d0\u4ea4\u53cd\u9988"
|
| 99 |
+
},
|
| 100 |
+
"status": {
|
| 101 |
+
"updating": "\u66f4\u65b0\u4e2d",
|
| 102 |
+
"updated": "\u53cd\u9988\u5df2\u66f4\u65b0"
|
| 103 |
+
}
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"history": {
|
| 107 |
+
"title": "\u6700\u8fd1\u8f93\u5165",
|
| 108 |
+
"empty": "\u7a7a\u7a7a\u5982\u4e5f...",
|
| 109 |
+
"show": "\u663e\u793a\u5386\u53f2"
|
| 110 |
+
},
|
| 111 |
+
"settings": {
|
| 112 |
+
"title": "\u8bbe\u7f6e\u9762\u677f"
|
| 113 |
+
},
|
| 114 |
+
"watermark": "\u6280\u672f\u652f\u6301"
|
| 115 |
+
},
|
| 116 |
+
"threadHistory": {
|
| 117 |
+
"sidebar": {
|
| 118 |
+
"title": "\u5386\u53f2\u5bf9\u8bdd",
|
| 119 |
+
"filters": {
|
| 120 |
+
"search": "\u641c\u7d22",
|
| 121 |
+
"placeholder": "\u641c\u7d22\u4f1a\u8bdd..."
|
| 122 |
+
},
|
| 123 |
+
"timeframes": {
|
| 124 |
+
"today": "\u4eca\u5929",
|
| 125 |
+
"yesterday": "\u6628\u5929",
|
| 126 |
+
"previous7days": "\u8fc7\u53bb7\u5929",
|
| 127 |
+
"previous30days": "\u8fc7\u53bb30\u5929"
|
| 128 |
+
},
|
| 129 |
+
"empty": "\u672a\u627e\u5230\u5bf9\u8bdd",
|
| 130 |
+
"actions": {
|
| 131 |
+
"close": "\u5173\u95ed\u4fa7\u8fb9\u680f",
|
| 132 |
+
"open": "\u6253\u5f00\u4fa7\u8fb9\u680f"
|
| 133 |
+
}
|
| 134 |
+
},
|
| 135 |
+
"thread": {
|
| 136 |
+
"untitled": "\u672a\u547d\u540d\u5bf9\u8bdd",
|
| 137 |
+
"menu": {
|
| 138 |
+
"rename": "\u91cd\u547d\u540d",
|
| 139 |
+
"delete": "\u5220\u9664"
|
| 140 |
+
},
|
| 141 |
+
"actions": {
|
| 142 |
+
"delete": {
|
| 143 |
+
"title": "\u786e\u8ba4\u5220\u9664",
|
| 144 |
+
"description": "\u8fd9\u5c06\u5220\u9664\u8be5\u5bf9\u8bdd\u53ca\u5176\u6240\u6709\u6d88\u606f\u548c\u5143\u7d20\u3002\u6b64\u64cd\u4f5c\u65e0\u6cd5\u64a4\u9500",
|
| 145 |
+
"success": "\u5bf9\u8bdd\u5df2\u5220\u9664",
|
| 146 |
+
"inProgress": "\u6b63\u5728\u5220\u9664\u5bf9\u8bdd"
|
| 147 |
+
},
|
| 148 |
+
"rename": {
|
| 149 |
+
"title": "\u91cd\u547d\u540d\u5bf9\u8bdd",
|
| 150 |
+
"description": "\u4e3a\u6b64\u5bf9\u8bdd\u8f93\u5165\u65b0\u540d\u79f0",
|
| 151 |
+
"form": {
|
| 152 |
+
"name": {
|
| 153 |
+
"label": "\u540d\u79f0",
|
| 154 |
+
"placeholder": "\u8f93\u5165\u65b0\u540d\u79f0"
|
| 155 |
+
}
|
| 156 |
+
},
|
| 157 |
+
"success": "\u5bf9\u8bdd\u5df2\u91cd\u547d\u540d\uff01",
|
| 158 |
+
"inProgress": "\u6b63\u5728\u91cd\u547d\u540d\u5bf9\u8bdd"
|
| 159 |
+
}
|
| 160 |
+
}
|
| 161 |
+
}
|
| 162 |
+
},
|
| 163 |
+
"navigation": {
|
| 164 |
+
"header": {
|
| 165 |
+
"chat": "\u804a\u5929",
|
| 166 |
+
"readme": "\u8bf4\u660e",
|
| 167 |
+
"theme": {
|
| 168 |
+
"light": "\u6d45\u8272\u4e3b\u9898",
|
| 169 |
+
"dark": "\u6df1\u8272\u4e3b\u9898",
|
| 170 |
+
"system": "\u8ddf\u968f\u7cfb\u7edf"
|
| 171 |
+
}
|
| 172 |
+
},
|
| 173 |
+
"newChat": {
|
| 174 |
+
"button": "\u65b0\u5efa\u5bf9\u8bdd",
|
| 175 |
+
"dialog": {
|
| 176 |
+
"title": "\u521b\u5efa\u65b0\u5bf9\u8bdd",
|
| 177 |
+
"description": "\u8fd9\u5c06\u6e05\u9664\u60a8\u5f53\u524d\u7684\u804a\u5929\u8bb0\u5f55\u3002\u786e\u5b9a\u8981\u7ee7\u7eed\u5417\uff1f",
|
| 178 |
+
"tooltip": "\u65b0\u5efa\u5bf9\u8bdd"
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
"user": {
|
| 182 |
+
"menu": {
|
| 183 |
+
"settings": "\u8bbe\u7f6e",
|
| 184 |
+
"settingsKey": "S",
|
| 185 |
+
"apiKeys": "API\u5bc6\u94a5",
|
| 186 |
+
"logout": "\u9000\u51fa\u767b\u5f55"
|
| 187 |
+
}
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"apiKeys": {
|
| 191 |
+
"title": "\u6240\u9700API\u5bc6\u94a5",
|
| 192 |
+
"description": "\u4f7f\u7528\u6b64\u5e94\u7528\u9700\u8981\u4ee5\u4e0bAPI\u5bc6\u94a5\u3002\u8fd9\u4e9b\u5bc6\u94a5\u5b58\u50a8\u5728\u60a8\u8bbe\u5907\u7684\u672c\u5730\u5b58\u50a8\u4e2d\u3002",
|
| 193 |
+
"success": {
|
| 194 |
+
"saved": "\u4fdd\u5b58\u6210\u529f"
|
| 195 |
+
}
|
| 196 |
+
},
|
| 197 |
+
"alerts": {
|
| 198 |
+
"info": "\u4fe1\u606f",
|
| 199 |
+
"note": "\u6ce8\u91ca",
|
| 200 |
+
"tip": "\u63d0\u793a",
|
| 201 |
+
"important": "\u91cd\u8981",
|
| 202 |
+
"warning": "\u8b66\u544a",
|
| 203 |
+
"caution": "\u6ce8\u610f",
|
| 204 |
+
"debug": "\u8c03\u8bd5",
|
| 205 |
+
"example": "\u793a\u4f8b",
|
| 206 |
+
"success": "\u6210\u529f",
|
| 207 |
+
"help": "\u5e2e\u52a9",
|
| 208 |
+
"idea": "\u60f3\u6cd5",
|
| 209 |
+
"pending": "\u5f85\u5904\u7406",
|
| 210 |
+
"security": "\u5b89\u5168",
|
| 211 |
+
"beta": "\u6d4b\u8bd5",
|
| 212 |
+
"best-practice": "\u6700\u4f73\u5b9e\u8df5"
|
| 213 |
+
}
|
| 214 |
+
}
|
.env.sample
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
OPENAI_API_KEY=
|
| 2 |
+
TAVILY_API_KEY=
|
| 3 |
+
COHERE_API_KEY=
|
.gitattributes
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Python-generated files
|
| 2 |
+
__pycache__/
|
| 3 |
+
*.py[oc]
|
| 4 |
+
build/
|
| 5 |
+
dist/
|
| 6 |
+
wheels/
|
| 7 |
+
*.egg-info
|
| 8 |
+
|
| 9 |
+
# Virtual environments
|
| 10 |
+
.venv
|
| 11 |
+
.env
|
Dockerfile
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Get a distribution that has uv already installed
|
| 2 |
+
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim
|
| 3 |
+
|
| 4 |
+
# Add user - this is the user that will run the app
|
| 5 |
+
# If you do not set user, the app will run as root (undesirable)
|
| 6 |
+
RUN useradd -m -u 1000 user
|
| 7 |
+
USER user
|
| 8 |
+
|
| 9 |
+
# Set the home directory and path
|
| 10 |
+
ENV HOME=/home/user \
|
| 11 |
+
PATH=/home/user/.local/bin:$PATH
|
| 12 |
+
|
| 13 |
+
ENV UVICORN_WS_PROTOCOL=websockets
|
| 14 |
+
|
| 15 |
+
# Set the working directory
|
| 16 |
+
WORKDIR $HOME/app
|
| 17 |
+
|
| 18 |
+
# Copy the app to the container
|
| 19 |
+
COPY --chown=user . $HOME/app
|
| 20 |
+
|
| 21 |
+
# Install the dependencies
|
| 22 |
+
# RUN uv sync --frozen
|
| 23 |
+
RUN uv sync
|
| 24 |
+
|
| 25 |
+
# Expose the port
|
| 26 |
+
EXPOSE 7860
|
| 27 |
+
|
| 28 |
+
# Run the app
|
| 29 |
+
CMD ["uv", "run", "chainlit", "run", "app.py", "--host", "0.0.0.0", "--port", "7860"]
|
app.py
ADDED
|
@@ -0,0 +1,747 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from typing import TypedDict, Annotated, List
|
| 2 |
+
from typing_extensions import List, TypedDict
|
| 3 |
+
|
| 4 |
+
from dotenv import load_dotenv
|
| 5 |
+
import chainlit as cl
|
| 6 |
+
import operator
|
| 7 |
+
|
| 8 |
+
from langchain.prompts import ChatPromptTemplate
|
| 9 |
+
from langchain.retrievers.contextual_compression import ContextualCompressionRetriever
|
| 10 |
+
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 11 |
+
from langchain_cohere import CohereRerank
|
| 12 |
+
from langchain_community.document_loaders import DirectoryLoader
|
| 13 |
+
from langchain_community.tools.arxiv.tool import ArxivQueryRun
|
| 14 |
+
from langchain_community.tools.tavily_search import TavilySearchResults
|
| 15 |
+
from langchain_core.documents import Document
|
| 16 |
+
from langchain_core.messages import BaseMessage, HumanMessage, ToolMessage
|
| 17 |
+
from langchain_core.tools import tool
|
| 18 |
+
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
|
| 19 |
+
from langchain_qdrant import QdrantVectorStore
|
| 20 |
+
from langgraph.graph import START, StateGraph, END
|
| 21 |
+
from langgraph.graph.message import add_messages
|
| 22 |
+
from langgraph.prebuilt import ToolNode
|
| 23 |
+
from qdrant_client import QdrantClient
|
| 24 |
+
from qdrant_client.http.models import Distance, VectorParams
|
| 25 |
+
|
| 26 |
+
# ---- IMPORTS FOR LOADING THE DATA ----
|
| 27 |
+
from typing import List # For type hinting
|
| 28 |
+
from langchain_core.documents import Document # For type hinting
|
| 29 |
+
from utils.parse_prompts import load_and_parse_prompts
|
| 30 |
+
|
| 31 |
+
# ---- IMPORTS FOR QDRANT SETUP ----
|
| 32 |
+
from langchain_qdrant import Qdrant # Langchain's interface to Qdrant
|
| 33 |
+
from qdrant_client.http.models import Distance, VectorParams
|
| 34 |
+
from qdrant_client import QdrantClient
|
| 35 |
+
|
| 36 |
+
from langchain_openai import OpenAIEmbeddings
|
| 37 |
+
|
| 38 |
+
from lang_state import CreativeWriterAssistantState
|
| 39 |
+
from llm_prompts import GUIDE_SYSPROMPT, MAKEQUERY_SYSPROMPT, AUGMENTOR_SYSPROMPT, MENTOR_SYSPROMPT
|
| 40 |
+
from langchain_core.messages import HumanMessage, SystemMessage, AIMessage # For constructing LLM inputs
|
| 41 |
+
|
| 42 |
+
from langgraph.graph import StateGraph, END, START
|
| 43 |
+
|
| 44 |
+
|
| 45 |
+
|
| 46 |
+
load_dotenv()
|
| 47 |
+
|
| 48 |
+
# --- CONFIGURATION CONSTANTS FOR LOADING THE DATA ---
|
| 49 |
+
PROMPT_DATA_SUBDIRECTORY = "data"
|
| 50 |
+
PROMPT_FILENAMES_TO_LOAD = ["f_prompts.txt", "nf_prompts.txt"]
|
| 51 |
+
|
| 52 |
+
# --- LOAD THE DATA ---
|
| 53 |
+
# print("\n--- Step 1: Loading and Parsing Prompt Files ---")
|
| 54 |
+
# Call the utility function, passing the list of filenames and the base directory
|
| 55 |
+
all_parsed_documents = load_and_parse_prompts(
|
| 56 |
+
file_paths=PROMPT_FILENAMES_TO_LOAD,
|
| 57 |
+
base_data_directory=PROMPT_DATA_SUBDIRECTORY
|
| 58 |
+
)
|
| 59 |
+
# Check if any documents were loaded
|
| 60 |
+
if not all_parsed_documents:
|
| 61 |
+
print("\nCRITICAL: No prompt documents were loaded. Halting application or DB setup.")
|
| 62 |
+
print(f"Please check that files specified in PROMPT_FILENAMES_TO_LOAD exist in the '{PROMPT_DATA_SUBDIRECTORY}' directory and are correctly formatted.")
|
| 63 |
+
|
| 64 |
+
# Assumes `all_parsed_documents: List[Document]` has been populated and validated.
|
| 65 |
+
|
| 66 |
+
# --- INITIALIZE EMBEDDINGS MODEL ---
|
| 67 |
+
# print(f"\n--- Step 2: Initializing Embeddings Model ---") # Dev print
|
| 68 |
+
EMBEDDING_MODEL_NAME = "text-embedding-3-small" # Choose your embedding model
|
| 69 |
+
embeddings = OpenAIEmbeddings(model=EMBEDDING_MODEL_NAME) # Requires OPENAI_API_KEY
|
| 70 |
+
|
| 71 |
+
# --- SETUP QDRANT CLIENT ---
|
| 72 |
+
# print(f"\n--- Step 3: Setting up Qdrant Client ---") # Dev print
|
| 73 |
+
qdrant_client = QdrantClient(":memory:") # In-memory DB; for persistent, use URL/host.
|
| 74 |
+
|
| 75 |
+
# --- DEFINE AND ENSURE QDRANT COLLECTION ---
|
| 76 |
+
# print(f"\n--- Step 4 & 5: Ensuring Qdrant Collection ---") # Dev print
|
| 77 |
+
PROMPT_COLLECTION_NAME = "creative_writing_prompts_v1" # Unique name for this dataset
|
| 78 |
+
VECTOR_DIMENSION = 1536 # Must match embedding model's output dimensions (e.g., 1536 for text-embedding-3-small)
|
| 79 |
+
|
| 80 |
+
try:
|
| 81 |
+
qdrant_client.get_collection(collection_name=PROMPT_COLLECTION_NAME) # Check if exists
|
| 82 |
+
# print(f"Collection '{PROMPT_COLLECTION_NAME}' already exists.") # Dev print
|
| 83 |
+
except Exception: # If not found or other error
|
| 84 |
+
qdrant_client.recreate_collection( # Creates or recreates the collection
|
| 85 |
+
collection_name=PROMPT_COLLECTION_NAME,
|
| 86 |
+
vectors_config=VectorParams(size=VECTOR_DIMENSION, distance=Distance.COSINE) # Cosine for semantic similarity
|
| 87 |
+
)
|
| 88 |
+
# print(f"Collection '{PROMPT_COLLECTION_NAME}' created/recreated.") # Dev print
|
| 89 |
+
|
| 90 |
+
# --- INITIALIZE LANGCHAIN QDRANT VECTOR STORE WRAPPER ---
|
| 91 |
+
# print(f"\n--- Step 6: Initializing Langchain Qdrant Vector Store ---") # Dev print
|
| 92 |
+
vector_store = Qdrant(
|
| 93 |
+
client=qdrant_client, # The Qdrant client instance
|
| 94 |
+
collection_name=PROMPT_COLLECTION_NAME, # Target collection
|
| 95 |
+
embeddings=embeddings, # Model to use for embedding queries (and implicitly for docs if not pre-embedded)
|
| 96 |
+
)
|
| 97 |
+
|
| 98 |
+
# --- ADD DOCUMENTS TO QDRANT ---
|
| 99 |
+
# Each prompt in `all_parsed_documents` is already a distinct semantic unit. No further splitting needed.
|
| 100 |
+
# print(f"\n--- Step 7: Adding Documents to Qdrant ---") # Dev print
|
| 101 |
+
if all_parsed_documents: # Only add if there are documents
|
| 102 |
+
vector_store.add_documents(documents=all_parsed_documents) # Embeds and stores each document
|
| 103 |
+
# collection_info = qdrant_client.get_collection(collection_name=PROMPT_COLLECTION_NAME) # Dev check
|
| 104 |
+
# print(f"Collection now has {collection_info.points_count} points.") # Dev check
|
| 105 |
+
else:
|
| 106 |
+
print("Warning: No documents to add to Qdrant.")
|
| 107 |
+
|
| 108 |
+
|
| 109 |
+
# --- CREATE RETRIEVER ---
|
| 110 |
+
# print(f"\n--- Step 8: Creating Retriever ---") # Dev print
|
| 111 |
+
retriever = vector_store.as_retriever(
|
| 112 |
+
search_type="similarity", # Standard semantic search
|
| 113 |
+
search_kwargs={"k": 1} # Retrieve top 5 most similar prompts
|
| 114 |
+
)
|
| 115 |
+
# print("Retriever created. Qdrant setup complete.") # Dev print
|
| 116 |
+
|
| 117 |
+
# --- EXAMPLE TEST OF RETRIEVER (OPTIONAL) ---
|
| 118 |
+
# if retriever and all_parsed_documents:
|
| 119 |
+
# sample_query = "a quest for a magical artifact"
|
| 120 |
+
# retrieved_docs = retriever.invoke(sample_query)
|
| 121 |
+
# print(f"\nTest query: '{sample_query}' retrieved {len(retrieved_docs)} docs.")
|
| 122 |
+
# for doc in retrieved_docs:
|
| 123 |
+
# print(f" - {doc.metadata.get('prompt_name', 'N/A')}: {doc.page_content[:70]}...")
|
| 124 |
+
|
| 125 |
+
# --- RETRIEVE FUNCTION (node in langgraph graph) ---
|
| 126 |
+
#def retrieve(state):
|
| 127 |
+
# retrieved_docs = retriever.invoke(state["question"])
|
| 128 |
+
# return {"context" : retrieved_docs}
|
| 129 |
+
|
| 130 |
+
# --- INITIALIZE LLMS ---
|
| 131 |
+
tavily_tool = TavilySearchResults(max_results=3)
|
| 132 |
+
llm_guide = ChatOpenAI(model="gpt-4o-mini", temperature=0.7)
|
| 133 |
+
llm_guide = llm_guide.bind_tools([tavily_tool])
|
| 134 |
+
llm_query_architect = ChatOpenAI(model="gpt-4o-mini", temperature=0.1)
|
| 135 |
+
llm_catalyst = ChatOpenAI(model="gpt-4o-mini", temperature=0.8)
|
| 136 |
+
llm_mentor = ChatOpenAI(model="gpt-4o-mini", temperature=0.5)
|
| 137 |
+
|
| 138 |
+
# Your retriever should already be defined from previous steps
|
| 139 |
+
if 'retriever' not in globals(): # Ensure retriever is defined
|
| 140 |
+
print("ERROR: Retriever is not defined. Please ensure Qdrant setup is complete.")
|
| 141 |
+
exit()
|
| 142 |
+
if 'vector_store' not in globals(): # Also ensure vector_store is available for direct search if needed
|
| 143 |
+
print("ERROR: vector_store is not defined.")
|
| 144 |
+
exit()
|
| 145 |
+
|
| 146 |
+
print("Core components (LLMs, Retriever) initialized.")
|
| 147 |
+
|
| 148 |
+
|
| 149 |
+
# -- LangGraph Nodes --
|
| 150 |
+
|
| 151 |
+
async def run_guide_llm(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 152 |
+
print("--- NODE: run_guide_llm (Corrected Scope & Message Sending) ---")
|
| 153 |
+
history = state.get("guide_conversation_history", [])
|
| 154 |
+
|
| 155 |
+
if not history or not isinstance(history[-1], HumanMessage):
|
| 156 |
+
print("Guide LLM: Waiting for initial HumanMessage in history for this turn.")
|
| 157 |
+
state['current_step_name'] = "AWAITING_USER_GUIDE_INPUT"
|
| 158 |
+
return state
|
| 159 |
+
|
| 160 |
+
print(f"Guide LLM: Processing conversation. Last user message: '{history[-1].content[:50]}...'")
|
| 161 |
+
|
| 162 |
+
MAX_AI_CONVO_QUESTIONS = 2 # Let's try making this stricter: max 2 actual questions from AI
|
| 163 |
+
MAX_TOOL_ITERATIONS = 2
|
| 164 |
+
|
| 165 |
+
# Initialize flags and variables for this node's execution
|
| 166 |
+
force_completion_now = False # Initialize here
|
| 167 |
+
explicitly_confirmed_by_ai = False
|
| 168 |
+
final_ai_utterance_for_user = "" # What the LLM eventually says conversationally
|
| 169 |
+
last_ai_message_obj_from_llm = None # The full AIMessage object from the last LLM call
|
| 170 |
+
|
| 171 |
+
# --- Pre-emptive Turn Limit Check ---
|
| 172 |
+
ai_convo_turns_before_this_call = sum(1 for msg in history
|
| 173 |
+
if isinstance(msg, AIMessage) and \
|
| 174 |
+
not msg.tool_calls and \
|
| 175 |
+
(msg.content and not msg.content.startswith("Let me look up")))
|
| 176 |
+
|
| 177 |
+
if ai_convo_turns_before_this_call >= MAX_AI_CONVO_QUESTIONS:
|
| 178 |
+
print(f"Guide LLM: Pre-emptive AI question limit ({ai_convo_turns_before_this_call}/{MAX_AI_CONVO_QUESTIONS}) met. Forcing summarization.")
|
| 179 |
+
force_completion_now = True
|
| 180 |
+
|
| 181 |
+
if not force_completion_now:
|
| 182 |
+
# --- Normal LLM Call / Tool Use Loop ---
|
| 183 |
+
iterations = 0
|
| 184 |
+
messages_for_llm_processing = [SystemMessage(content=GUIDE_SYSPROMPT)] + history
|
| 185 |
+
|
| 186 |
+
while iterations < MAX_TOOL_ITERATIONS:
|
| 187 |
+
iterations += 1
|
| 188 |
+
print(f"Guide LLM: LLM/Tool Iteration {iterations}")
|
| 189 |
+
try:
|
| 190 |
+
response_llm1_obj = await llm_guide.ainvoke(messages_for_llm_processing)
|
| 191 |
+
last_ai_message_obj_from_llm = response_llm1_obj # Capture the latest full response
|
| 192 |
+
messages_for_llm_processing.append(response_llm1_obj)
|
| 193 |
+
|
| 194 |
+
if response_llm1_obj.tool_calls:
|
| 195 |
+
print(f"Guide LLM: Detected tool calls: {response_llm1_obj.tool_calls}")
|
| 196 |
+
tool_messages_for_next_llm_call = []
|
| 197 |
+
for tool_call in response_llm1_obj.tool_calls:
|
| 198 |
+
if tool_call['name'] == 'tavily_search_results_json':
|
| 199 |
+
tool_query = tool_call['args'].get('query')
|
| 200 |
+
tool_results = await cl.make_async(tavily_tool.invoke)(input={"query": tool_query})
|
| 201 |
+
tool_messages_for_next_llm_call.append(
|
| 202 |
+
ToolMessage(content=str(tool_results), tool_call_id=tool_call['id'])
|
| 203 |
+
)
|
| 204 |
+
else:
|
| 205 |
+
tool_messages_for_next_llm_call.append(
|
| 206 |
+
ToolMessage(content=f"Error: Tool '{tool_call['name']}' not recognized.", tool_call_id=tool_call['id'])
|
| 207 |
+
)
|
| 208 |
+
messages_for_llm_processing.extend(tool_messages_for_next_llm_call)
|
| 209 |
+
final_ai_utterance_for_user = "" # Reset, as the true utterance comes after tool results are processed
|
| 210 |
+
continue # Re-invoke LLM with tool results
|
| 211 |
+
else: # No tool call, this is a direct conversational response
|
| 212 |
+
final_ai_utterance_for_user = response_llm1_obj.content.strip() if response_llm1_obj.content else ""
|
| 213 |
+
break # Exit tool loop, we have the AI's conversational response
|
| 214 |
+
except Exception as e:
|
| 215 |
+
print(f"Error in Guide LLM (Iteration {iterations}): {e}")
|
| 216 |
+
await cl.Message(content="My apologies, I had a problem. Could you rephrase?").send()
|
| 217 |
+
state.update(error_message=f"Guide LLM failed: {e}", current_step_name="AWAITING_USER_GUIDE_INPUT")
|
| 218 |
+
return state
|
| 219 |
+
|
| 220 |
+
# --- After LLM calls and potential tool use (or if pre-emptively forcing completion) ---
|
| 221 |
+
|
| 222 |
+
# Add the last AI message object (which could be just content or include tool_calls it initiated)
|
| 223 |
+
# to the state's official history.
|
| 224 |
+
if last_ai_message_obj_from_llm and not force_completion_now : # Only add if LLM was actually called this turn
|
| 225 |
+
state["guide_conversation_history"] = add_messages(history, [last_ai_message_obj_from_llm])
|
| 226 |
+
else: # If pre-emptive completion, history is already as it was when node started
|
| 227 |
+
state["guide_conversation_history"] = history
|
| 228 |
+
|
| 229 |
+
|
| 230 |
+
is_complete_signal_phrase = "INTEREST_CONFIRMED_PROCEED"
|
| 231 |
+
# Check the final_ai_utterance_for_user (if LLM was called) for the signal
|
| 232 |
+
if final_ai_utterance_for_user: # Only check if AI actually provided a conversational utterance
|
| 233 |
+
explicitly_confirmed_by_ai = is_complete_signal_phrase in final_ai_utterance_for_user
|
| 234 |
+
|
| 235 |
+
user_facing_response_to_send = final_ai_utterance_for_user
|
| 236 |
+
if explicitly_confirmed_by_ai:
|
| 237 |
+
print(f"Guide LLM: Detected '{is_complete_signal_phrase}' in AI utterance.")
|
| 238 |
+
user_facing_response_to_send = final_ai_utterance_for_user.replace(is_complete_signal_phrase, "").strip()
|
| 239 |
+
if not user_facing_response_to_send:
|
| 240 |
+
user_facing_response_to_send = "Okay, I have a good understanding now." # Generic if only signal
|
| 241 |
+
|
| 242 |
+
# Send the AI's actual final conversational response to the user *only if we are not forcing completion yet*
|
| 243 |
+
# and if there's something to send. If forcing completion, the transition message comes later.
|
| 244 |
+
if not force_completion_now and user_facing_response_to_send:
|
| 245 |
+
await cl.Message(content=user_facing_response_to_send).send()
|
| 246 |
+
print(f"Guide LLM: Sent AI utterance to Chainlit: '{user_facing_response_to_send[:50]}...'")
|
| 247 |
+
|
| 248 |
+
# --- Decision to proceed or continue guide conversation ---
|
| 249 |
+
proceed_to_summary = False
|
| 250 |
+
if explicitly_confirmed_by_ai or force_completion_now: # Check both flags
|
| 251 |
+
print("Guide LLM: Condition met to proceed to summarization.")
|
| 252 |
+
proceed_to_summary = True
|
| 253 |
+
else:
|
| 254 |
+
# If AI did not explicitly confirm AND pre-emptive turn limit was not hit,
|
| 255 |
+
# it means AI's last utterance (already sent) was a question. We must wait.
|
| 256 |
+
print("Guide LLM: AI did not confirm, and pre-emptive turn limit not hit. AI asked a question. Waiting for user input.")
|
| 257 |
+
state['current_step_name'] = "AWAITING_USER_GUIDE_INPUT"
|
| 258 |
+
|
| 259 |
+
if proceed_to_summary:
|
| 260 |
+
current_history_for_summary = state.get("guide_conversation_history", []) # Use the updated history
|
| 261 |
+
dialogue_history_for_summary = [msg for msg in current_history_for_summary
|
| 262 |
+
if isinstance(msg, (HumanMessage, AIMessage)) and \
|
| 263 |
+
msg.content and \
|
| 264 |
+
not getattr(msg, 'tool_calls', None) and \
|
| 265 |
+
not msg.content.startswith("Let me look up")]
|
| 266 |
+
conversation_text_for_summary = "\n".join([f"{msg.type}: {msg.content}" for msg in dialogue_history_for_summary])
|
| 267 |
+
|
| 268 |
+
summary_prompt_text = f"Please summarize the user's core writing interest from this conversation into a short phrase or a few keywords suitable for a database search:\n\nConversation History:\n{conversation_text_for_summary}"
|
| 269 |
+
summary_messages = [SystemMessage(content="You are an expert at summarizing conversations to extract key user interests for prompt generation."), HumanMessage(content=summary_prompt_text)]
|
| 270 |
+
try:
|
| 271 |
+
summary_response_obj = await llm_query_architect.ainvoke(summary_messages)
|
| 272 |
+
user_interest_summary = summary_response_obj.content.strip()
|
| 273 |
+
if not user_interest_summary:
|
| 274 |
+
human_messages_in_history = [msg for msg in dialogue_history_for_summary if isinstance(msg, HumanMessage)]
|
| 275 |
+
user_interest_summary = human_messages_in_history[-1].content if human_messages_in_history else "a general creative idea"
|
| 276 |
+
|
| 277 |
+
state['user_writing_interest'] = user_interest_summary
|
| 278 |
+
state['current_step_name'] = "query_formulator_llm"
|
| 279 |
+
|
| 280 |
+
# Send the transition message *after* summarization
|
| 281 |
+
transition_message = f"Understood. I'll use '{user_interest_summary}' to find a relevant prompt for you now."
|
| 282 |
+
await cl.Message(content=transition_message).send()
|
| 283 |
+
print(f"Guide LLM: Sent explicit transition message.")
|
| 284 |
+
except Exception as e:
|
| 285 |
+
print(f"Error during summarization in Guide LLM: {e}")
|
| 286 |
+
await cl.Message(content="I had a bit of trouble summarizing our chat. Let's try again with your interest.").send()
|
| 287 |
+
state.update(error_message=f"Guide LLM summarization failed: {e}", current_step_name="AWAITING_USER_GUIDE_INPUT")
|
| 288 |
+
|
| 289 |
+
if not state.get('error_message'): state['error_message'] = None
|
| 290 |
+
return state
|
| 291 |
+
|
| 292 |
+
|
| 293 |
+
async def main_router_node_passthrough(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 294 |
+
"""
|
| 295 |
+
A simple pass-through node that allows conditional edges to branch from it.
|
| 296 |
+
It doesn't modify the state itself; the routing logic is in the conditional edge's condition.
|
| 297 |
+
"""
|
| 298 |
+
print(f"--- NODE: main_router_node_passthrough (State pass-through) ---")
|
| 299 |
+
# This node's job is just to exist so other nodes can point to it,
|
| 300 |
+
# and conditional edges can branch from it using the route_based_on_current_step condition.
|
| 301 |
+
return state
|
| 302 |
+
|
| 303 |
+
async def run_query_formulator_llm(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 304 |
+
print("--- NODE: run_query_formulator_llm ---")
|
| 305 |
+
user_interest = state.get("user_writing_interest")
|
| 306 |
+
if not user_interest:
|
| 307 |
+
state['error_message'] = "Query Formulator: Missing user_writing_interest."
|
| 308 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 309 |
+
return state
|
| 310 |
+
|
| 311 |
+
messages = [
|
| 312 |
+
SystemMessage(content=MAKEQUERY_SYSPROMPT),
|
| 313 |
+
HumanMessage(content=f"User's stated writing interest summary: {user_interest}")
|
| 314 |
+
]
|
| 315 |
+
try:
|
| 316 |
+
response = await llm_query_architect.ainvoke(messages)
|
| 317 |
+
search_query = response.content.strip()
|
| 318 |
+
print(f"Query Formulator generated query: {search_query}")
|
| 319 |
+
state['qdrant_search_query'] = search_query
|
| 320 |
+
state['current_step_name'] = "retrieve_prompt"
|
| 321 |
+
state['error_message'] = None
|
| 322 |
+
except Exception as e:
|
| 323 |
+
print(f"Error in Query Formulator LLM: {e}")
|
| 324 |
+
state['error_message'] = f"Query Formulator LLM failed: {e}"
|
| 325 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 326 |
+
return state
|
| 327 |
+
|
| 328 |
+
async def retrieve_prompt_from_qdrant(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 329 |
+
print("--- NODE: retrieve_prompt_from_qdrant ---")
|
| 330 |
+
query = state.get("qdrant_search_query")
|
| 331 |
+
if not query:
|
| 332 |
+
state['error_message'] = "Retriever: Missing Qdrant search query."
|
| 333 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 334 |
+
return state
|
| 335 |
+
|
| 336 |
+
try:
|
| 337 |
+
print(f"Retriever: Searching for query: '{query}'")
|
| 338 |
+
# Note: retriever.invoke is synchronous. For a truly async app,
|
| 339 |
+
# Langchain's Qdrant might need `vector_store.asimilarity_search` or running invoke in a thread.
|
| 340 |
+
# Let's assume for now invoke works okay or you've handled its async nature.
|
| 341 |
+
retrieved_docs = await cl.make_async(retriever.invoke)(query) # Run sync in async context
|
| 342 |
+
|
| 343 |
+
if retrieved_docs:
|
| 344 |
+
print(f"Retriever found document: {retrieved_docs[0].metadata.get('prompt_name')}")
|
| 345 |
+
state['retrieved_prompt_document'] = retrieved_docs[0]
|
| 346 |
+
state['current_step_name'] = "augmentor_llm"
|
| 347 |
+
state['error_message'] = None
|
| 348 |
+
else:
|
| 349 |
+
print(f"Retriever: No documents found for query '{query}'.")
|
| 350 |
+
state['retrieved_prompt_document'] = None
|
| 351 |
+
state['current_step_name'] = "handle_no_prompt_found" # Route to specific handler
|
| 352 |
+
state['error_message'] = None # Not an error, just no results
|
| 353 |
+
except Exception as e:
|
| 354 |
+
print(f"Error in Retriever: {e}")
|
| 355 |
+
state['error_message'] = f"Retriever failed: {e}"
|
| 356 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 357 |
+
return state
|
| 358 |
+
|
| 359 |
+
async def run_augmentor_llm(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 360 |
+
print("--- NODE: run_augmentor_llm ---")
|
| 361 |
+
retrieved_doc = state.get("retrieved_prompt_document")
|
| 362 |
+
if not retrieved_doc:
|
| 363 |
+
state['error_message'] = "Augmentor LLM: Missing retrieved prompt document."
|
| 364 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 365 |
+
return state
|
| 366 |
+
|
| 367 |
+
prompt_text = retrieved_doc.page_content
|
| 368 |
+
messages = [
|
| 369 |
+
SystemMessage(content=AUGMENTOR_SYSPROMPT),
|
| 370 |
+
HumanMessage(content=f"The writing prompt is: {prompt_text}")
|
| 371 |
+
]
|
| 372 |
+
try:
|
| 373 |
+
print(f"Augmentor LLM: Invoking llm_catalyst with prompt: '{prompt_text[:100]}...'")
|
| 374 |
+
response = await llm_catalyst.ainvoke(messages)
|
| 375 |
+
augmentation_text = response.content.strip()
|
| 376 |
+
print(f"Augmentor LLM generated: {augmentation_text}")
|
| 377 |
+
state['prompt_augmentation_text'] = augmentation_text
|
| 378 |
+
state['current_step_name'] = "present_and_await_writing"
|
| 379 |
+
state['error_message'] = None
|
| 380 |
+
except Exception as e:
|
| 381 |
+
print(f"Error in Augmentor LLM: {e}")
|
| 382 |
+
state['error_message'] = f"Augmentor LLM failed: {e}"
|
| 383 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 384 |
+
return state
|
| 385 |
+
|
| 386 |
+
async def present_and_await_writing(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 387 |
+
print("--- NODE: present_and_await_writing ---")
|
| 388 |
+
retrieved_doc = state.get("retrieved_prompt_document")
|
| 389 |
+
augmentation = state.get("prompt_augmentation_text")
|
| 390 |
+
|
| 391 |
+
if not retrieved_doc:
|
| 392 |
+
state['error_message'] = "Display Error: No prompt was available to show."
|
| 393 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 394 |
+
# No direct cl.Message here, router will send to ERROR_NODE which will send message
|
| 395 |
+
return state
|
| 396 |
+
|
| 397 |
+
prompt_name = retrieved_doc.metadata.get('prompt_name', 'A Creative Prompt')
|
| 398 |
+
genre = retrieved_doc.metadata.get('genre', 'N/A')
|
| 399 |
+
theme = retrieved_doc.metadata.get('theme', 'N/A')
|
| 400 |
+
prompt_text = retrieved_doc.page_content
|
| 401 |
+
|
| 402 |
+
message_parts = [
|
| 403 |
+
f"Okay, here's a prompt idea for your consideration:",
|
| 404 |
+
"--------------------------------------------------",
|
| 405 |
+
f"**Prompt:** {prompt_name}",
|
| 406 |
+
f"**Genre:** {genre} | **Theme:** {theme}",
|
| 407 |
+
f"\n{prompt_text}",
|
| 408 |
+
"--------------------------------------------------"
|
| 409 |
+
]
|
| 410 |
+
if augmentation:
|
| 411 |
+
message_parts.extend([
|
| 412 |
+
"\n✨ To get your ideas flowing, consider this: ✨",
|
| 413 |
+
augmentation
|
| 414 |
+
])
|
| 415 |
+
message_parts.append("\nWhen you have engaged with the prompt and written something (even a short piece!), please share it below. If you'd rather skip providing text for feedback, just type 'skip'.")
|
| 416 |
+
|
| 417 |
+
await cl.Message(content="\n".join(message_parts)).send()
|
| 418 |
+
print("Present & Await: Sent prompt and augmentation to user. Waiting for their writing.")
|
| 419 |
+
|
| 420 |
+
state['current_step_name'] = "AWAITING_USER_WRITTEN_TEXT" # Signal to on_message
|
| 421 |
+
state['error_message'] = None
|
| 422 |
+
return state
|
| 423 |
+
|
| 424 |
+
async def run_mentor_llm(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 425 |
+
print("--- NODE: run_mentor_llm ---")
|
| 426 |
+
user_text = state.get("user_written_text") # This is set by cl.on_message
|
| 427 |
+
|
| 428 |
+
# MENTOR_SYSPROMPT is designed to always give the final "You did it..." line,
|
| 429 |
+
# even if user_text is "skip" or minimal.
|
| 430 |
+
if not user_text: # Should have been set to "skip" by on_message if user typed skip.
|
| 431 |
+
user_text = "User chose to skip sharing their writing."
|
| 432 |
+
print("Mentor LLM: User text was empty or 'skip'. Proceeding with standard closing.")
|
| 433 |
+
|
| 434 |
+
messages = [
|
| 435 |
+
SystemMessage(content=MENTOR_SYSPROMPT),
|
| 436 |
+
HumanMessage(content=f"The user's input (their writing or indication of skipping) is: {user_text}")
|
| 437 |
+
]
|
| 438 |
+
try:
|
| 439 |
+
print(f"Mentor LLM: Invoking llm_mentor for user text: '{user_text[:100]}...'")
|
| 440 |
+
response = await llm_mentor.ainvoke(messages)
|
| 441 |
+
mentor_feedback_text = response.content.strip()
|
| 442 |
+
print(f"Mentor LLM generated feedback: {mentor_feedback_text}")
|
| 443 |
+
state['mentor_feedback'] = mentor_feedback_text
|
| 444 |
+
state['current_step_name'] = "send_final_message"
|
| 445 |
+
state['error_message'] = None
|
| 446 |
+
except Exception as e:
|
| 447 |
+
print(f"Error in Mentor LLM: {e}")
|
| 448 |
+
state['error_message'] = f"Mentor LLM failed: {e}"
|
| 449 |
+
state['current_step_name'] = "ERROR_STATE"
|
| 450 |
+
return state
|
| 451 |
+
|
| 452 |
+
async def send_final_message_to_user(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 453 |
+
print("--- NODE: send_final_message_to_user ---")
|
| 454 |
+
feedback_to_send = state.get("mentor_feedback")
|
| 455 |
+
|
| 456 |
+
if not feedback_to_send: # Fallback, though mentor_llm should always provide it
|
| 457 |
+
print("Send Final Message Warning: No mentor_feedback found. Sending default closing.")
|
| 458 |
+
feedback_to_send = "It has been a productive session. You did it. If you write, you are a writer. See you tomorrow."
|
| 459 |
+
|
| 460 |
+
await cl.Message(content=feedback_to_send).send()
|
| 461 |
+
print(f"Send Final Message: Sent to user: '{feedback_to_send[:100]}...'")
|
| 462 |
+
|
| 463 |
+
state['current_step_name'] = "SESSION_ENDED"
|
| 464 |
+
state['error_message'] = None
|
| 465 |
+
return state
|
| 466 |
+
|
| 467 |
+
async def handle_error_node(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 468 |
+
error_msg = state.get('error_message', "An unspecified error occurred.")
|
| 469 |
+
print(f"--- NODE: ERROR_NODE --- : {error_msg}")
|
| 470 |
+
await cl.Message(content=f"I seem to have encountered an issue: {error_msg} Let's try starting over, or you can rephrase your initial interest.").send()
|
| 471 |
+
|
| 472 |
+
# Reset key state fields to allow a clean restart with the guide
|
| 473 |
+
state['current_step_name'] = "AWAITING_USER_GUIDE_INPUT" # Ready for new input to guide
|
| 474 |
+
state['user_writing_interest'] = None
|
| 475 |
+
state['qdrant_search_query'] = None
|
| 476 |
+
state['retrieved_prompt_document'] = None
|
| 477 |
+
state['prompt_augmentation_text'] = None
|
| 478 |
+
state['user_written_text'] = None
|
| 479 |
+
state['mentor_feedback'] = None
|
| 480 |
+
state['error_message'] = None # Clear the error after reporting
|
| 481 |
+
return state
|
| 482 |
+
|
| 483 |
+
async def handle_no_prompt_found_node(state: CreativeWriterAssistantState) -> CreativeWriterAssistantState:
|
| 484 |
+
print(f"--- NODE: handle_no_prompt_found ---")
|
| 485 |
+
query_used = state.get('qdrant_search_query', 'your previous attempt')
|
| 486 |
+
message_to_user = f"I wasn't able to find a specific prompt based on '{query_used}'. Would you like to describe your interest a bit differently, or try new keywords?"
|
| 487 |
+
|
| 488 |
+
await cl.Message(content=message_to_user).send()
|
| 489 |
+
print(f"No Prompt Found Node: Sent message to user.")
|
| 490 |
+
|
| 491 |
+
# Reset relevant state fields to go back to the guide cleanly
|
| 492 |
+
state['current_step_name'] = "AWAITING_USER_GUIDE_INPUT"
|
| 493 |
+
state['user_writing_interest'] = None
|
| 494 |
+
state['qdrant_search_query'] = None
|
| 495 |
+
state['retrieved_prompt_document'] = None # Ensure it's cleared
|
| 496 |
+
state['prompt_augmentation_text'] = None
|
| 497 |
+
state['error_message'] = None
|
| 498 |
+
return state
|
| 499 |
+
|
| 500 |
+
# --- LANGGRAPH SETUP ---
|
| 501 |
+
print("Setting up LangGraph for creative writing assistant...")
|
| 502 |
+
creative_graph_builder = StateGraph(CreativeWriterAssistantState)
|
| 503 |
+
|
| 504 |
+
# --- Add ALL Processing and Handler Nodes ---
|
| 505 |
+
print("Adding ALL processing nodes to the graph...")
|
| 506 |
+
creative_graph_builder.add_node("guide_llm", run_guide_llm)
|
| 507 |
+
creative_graph_builder.add_node("query_formulator_llm", run_query_formulator_llm)
|
| 508 |
+
creative_graph_builder.add_node("retrieve_prompt", retrieve_prompt_from_qdrant)
|
| 509 |
+
creative_graph_builder.add_node("augmentor_llm", run_augmentor_llm)
|
| 510 |
+
creative_graph_builder.add_node("present_and_await_writing", present_and_await_writing)
|
| 511 |
+
creative_graph_builder.add_node("mentor_llm", run_mentor_llm)
|
| 512 |
+
creative_graph_builder.add_node("send_final_message", send_final_message_to_user)
|
| 513 |
+
creative_graph_builder.add_node("handle_no_prompt_found", handle_no_prompt_found_node)
|
| 514 |
+
creative_graph_builder.add_node("ERROR_NODE", handle_error_node)
|
| 515 |
+
# Add the new simple router pass-through node
|
| 516 |
+
creative_graph_builder.add_node("router_hub", main_router_node_passthrough)
|
| 517 |
+
print("All processing and handler nodes (including router_hub) added.")
|
| 518 |
+
|
| 519 |
+
|
| 520 |
+
# --- Define the Routing Condition Function (this is NOT a node itself) ---
|
| 521 |
+
def route_based_on_current_step(state: CreativeWriterAssistantState) -> str:
|
| 522 |
+
current_step = state.get("current_step_name")
|
| 523 |
+
error_message = state.get("error_message")
|
| 524 |
+
print(f"Routing Condition :: current_step_name='{current_step}', error='{error_message}'")
|
| 525 |
+
|
| 526 |
+
if error_message:
|
| 527 |
+
return "ERROR_NODE"
|
| 528 |
+
if not current_step or current_step == "AWAITING_USER_GUIDE_INPUT":
|
| 529 |
+
# If cl.on_message set this, it means user just provided input for the guide.
|
| 530 |
+
# If decide_guide_completion set this, it means AI just asked a question and we are now waiting for user.
|
| 531 |
+
# In the latter case, run_guide_llm will see AI message last and also set AWAITING_USER_GUIDE_INPUT.
|
| 532 |
+
|
| 533 |
+
# If the history ends with an AI message (meaning the AI just spoke and is waiting for user reply),
|
| 534 |
+
# then this graph turn should end so Chainlit can wait for the user.
|
| 535 |
+
history = state.get("guide_conversation_history", [])
|
| 536 |
+
if history and isinstance(history[-1], AIMessage):
|
| 537 |
+
print("Routing Condition :: Guide AI just spoke. Ending graph turn to await user reply.")
|
| 538 |
+
return END # Pause the graph, wait for next user message via Chainlit
|
| 539 |
+
else:
|
| 540 |
+
# History is empty (initial call after on_chat_start's welcome) OR ends with HumanMessage
|
| 541 |
+
return "guide_llm" # Proceed to guide_llm to process human input or start convo
|
| 542 |
+
elif current_step == "query_formulator_llm":
|
| 543 |
+
return "query_formulator_llm"
|
| 544 |
+
elif current_step == "retrieve_prompt":
|
| 545 |
+
return "retrieve_prompt"
|
| 546 |
+
elif current_step == "handle_no_prompt_found":
|
| 547 |
+
return "handle_no_prompt_found"
|
| 548 |
+
elif current_step == "augmentor_llm":
|
| 549 |
+
return "augmentor_llm"
|
| 550 |
+
elif current_step == "present_and_await_writing":
|
| 551 |
+
return "present_and_await_writing"
|
| 552 |
+
elif current_step == "AWAITING_USER_WRITTEN_TEXT":
|
| 553 |
+
print("Routing Condition :: In AWAITING_USER_WRITTEN_TEXT. Graph turn ends.")
|
| 554 |
+
return END
|
| 555 |
+
elif current_step == "mentor_llm":
|
| 556 |
+
return "mentor_llm"
|
| 557 |
+
elif current_step == "send_final_message":
|
| 558 |
+
return "send_final_message"
|
| 559 |
+
elif current_step == "SESSION_ENDED" or current_step == "SESSION_ENDED_WITH_ERROR":
|
| 560 |
+
return END
|
| 561 |
+
|
| 562 |
+
print(f"Routing Condition :: Unhandled current_step_name: '{current_step}'. Routing to ERROR_NODE.")
|
| 563 |
+
if not error_message:
|
| 564 |
+
state['error_message'] = f"Router Error: Unhandled step '{current_step}'"
|
| 565 |
+
return "ERROR_NODE"
|
| 566 |
+
|
| 567 |
+
|
| 568 |
+
# --- Set the Entry Point ---
|
| 569 |
+
# The graph will begin at our new "router_hub" node.
|
| 570 |
+
creative_graph_builder.set_entry_point("router_hub")
|
| 571 |
+
print("Graph entry point set to router_hub.")
|
| 572 |
+
|
| 573 |
+
# --- Define Conditional Edges from the "router_hub" using the routing_condition function ---
|
| 574 |
+
print("Defining conditional edges from router_hub...")
|
| 575 |
+
creative_graph_builder.add_conditional_edges(
|
| 576 |
+
"router_hub", # Source node for conditional branching
|
| 577 |
+
route_based_on_current_step, # The function that decides the next path
|
| 578 |
+
{ # Path map
|
| 579 |
+
"guide_llm": "guide_llm",
|
| 580 |
+
"query_formulator_llm": "query_formulator_llm",
|
| 581 |
+
"retrieve_prompt": "retrieve_prompt",
|
| 582 |
+
"augmentor_llm": "augmentor_llm",
|
| 583 |
+
"present_and_await_writing": "present_and_await_writing",
|
| 584 |
+
"mentor_llm": "mentor_llm",
|
| 585 |
+
"send_final_message": "send_final_message",
|
| 586 |
+
"handle_no_prompt_found": "handle_no_prompt_found",
|
| 587 |
+
"ERROR_NODE": "ERROR_NODE",
|
| 588 |
+
END: END
|
| 589 |
+
}
|
| 590 |
+
)
|
| 591 |
+
print("Conditional edges from router_hub defined.")
|
| 592 |
+
|
| 593 |
+
# --- Define Edges from Each Processing Node BACK to "router_hub" ---
|
| 594 |
+
# After each processing node completes, it updates current_step_name in the state.
|
| 595 |
+
# The flow then goes back to router_hub. router_hub passes state to the conditional edge logic.
|
| 596 |
+
print("Defining edges from processing nodes back to router_hub...")
|
| 597 |
+
creative_graph_builder.add_edge("guide_llm", "router_hub")
|
| 598 |
+
creative_graph_builder.add_edge("query_formulator_llm", "router_hub")
|
| 599 |
+
creative_graph_builder.add_edge("retrieve_prompt", "router_hub")
|
| 600 |
+
creative_graph_builder.add_edge("augmentor_llm", "router_hub")
|
| 601 |
+
creative_graph_builder.add_edge("present_and_await_writing", "router_hub")
|
| 602 |
+
creative_graph_builder.add_edge("mentor_llm", "router_hub")
|
| 603 |
+
creative_graph_builder.add_edge("send_final_message", "router_hub")
|
| 604 |
+
creative_graph_builder.add_edge("handle_no_prompt_found", "router_hub")
|
| 605 |
+
creative_graph_builder.add_edge("ERROR_NODE", END) # ERROR_NODE is explicitly terminal.
|
| 606 |
+
print("Edges from processing nodes to router_hub (or END for ERROR_NODE) defined.")
|
| 607 |
+
|
| 608 |
+
# --- Compile the Graph ---
|
| 609 |
+
print("Compiling the graph...")
|
| 610 |
+
assistant_graph = creative_graph_builder.compile()
|
| 611 |
+
print("LangGraph creative_assistant_graph compiled successfully.")
|
| 612 |
+
|
| 613 |
+
|
| 614 |
+
# --- You can now test this basic graph structure (without Chainlit) ---
|
| 615 |
+
# initial_test_state = CreativeWriterAssistantState(
|
| 616 |
+
# guide_conversation_history=[HumanMessage(content="I want something adventurous")],
|
| 617 |
+
# current_step_name="guide_llm" # Or just let the entry point handle it
|
| 618 |
+
# )
|
| 619 |
+
#
|
| 620 |
+
# # To run it (synchronously for this test, use astream for async later)
|
| 621 |
+
# final_state = assistant_graph.invoke(initial_test_state, config={"configurable": {"thread_id": "test_thread_1"}})
|
| 622 |
+
# print("\n--- Test Invocation Final State ---")
|
| 623 |
+
# print(final_state)
|
| 624 |
+
# if final_state.get('retrieved_prompt_document'):
|
| 625 |
+
# print(f"Retrieved prompt: {final_state['retrieved_prompt_document'].metadata['prompt_name']}")
|
| 626 |
+
|
| 627 |
+
|
| 628 |
+
# --- 9. CHAINLIT INTEGRATION ---
|
| 629 |
+
|
| 630 |
+
# In app.py, REPLACE your existing CHAINLIT INTEGRATION section with this:
|
| 631 |
+
|
| 632 |
+
# --- 9. CHAINLIT INTEGRATION ---
|
| 633 |
+
|
| 634 |
+
@cl.on_chat_start
|
| 635 |
+
async def start_chat():
|
| 636 |
+
print("Chainlit chat_started: Initializing session...")
|
| 637 |
+
# 1. Initialize state
|
| 638 |
+
initial_assistant_state = CreativeWriterAssistantState(
|
| 639 |
+
guide_conversation_history=[],
|
| 640 |
+
user_writing_interest=None,
|
| 641 |
+
qdrant_search_query=None,
|
| 642 |
+
retrieved_prompt_document=None,
|
| 643 |
+
prompt_augmentation_text=None,
|
| 644 |
+
user_written_text=None,
|
| 645 |
+
mentor_feedback=None,
|
| 646 |
+
current_step_name="AWAITING_USER_GUIDE_INPUT", # Initial state for the router
|
| 647 |
+
error_message=None,
|
| 648 |
+
intermediate_llm_responses={}
|
| 649 |
+
)
|
| 650 |
+
cl.user_session.set("assistant_state", initial_assistant_state)
|
| 651 |
+
|
| 652 |
+
# 2. Store compiled graph
|
| 653 |
+
cl.user_session.set("assistant_graph", assistant_graph) # Assumes assistant_graph is compiled globally
|
| 654 |
+
|
| 655 |
+
# 3. Send initial welcome message
|
| 656 |
+
await cl.Message(
|
| 657 |
+
content="Hello and welcome to writesomething.ai. I am your daily writing buddy. For today's 100 words, what kind of story, theme, or feeling are you considering?"
|
| 658 |
+
).send()
|
| 659 |
+
print("Chainlit on_chat_start complete. Welcome message sent.")
|
| 660 |
+
|
| 661 |
+
|
| 662 |
+
@cl.on_message
|
| 663 |
+
async def handle_user_message(message: cl.Message):
|
| 664 |
+
print(f"\nChainlit on_message: Received user input: '{message.content[:50]}...'")
|
| 665 |
+
graph = cl.user_session.get("assistant_graph")
|
| 666 |
+
current_state: CreativeWriterAssistantState = cl.user_session.get("assistant_state") # Add type hint
|
| 667 |
+
|
| 668 |
+
if not graph or not current_state:
|
| 669 |
+
await cl.Message(content="There was an issue with my internal setup. Please try refreshing the page.").send()
|
| 670 |
+
print("Error in on_message: Graph or state not found in session.")
|
| 671 |
+
return
|
| 672 |
+
|
| 673 |
+
thread_id = cl.user_session.get("id", "default_thread_id")
|
| 674 |
+
|
| 675 |
+
# --- Update state based on the user's message and where we are in the flow ---
|
| 676 |
+
current_step_marker = current_state.get("current_step_name")
|
| 677 |
+
print(f"on_message: Current step marker from state before processing: '{current_step_marker}'")
|
| 678 |
+
|
| 679 |
+
if current_step_marker == "AWAITING_USER_GUIDE_INPUT":
|
| 680 |
+
current_state["guide_conversation_history"] = add_messages(
|
| 681 |
+
current_state.get("guide_conversation_history", []),
|
| 682 |
+
[HumanMessage(content=message.content)]
|
| 683 |
+
)
|
| 684 |
+
# The 'guide_llm' node will now process this history and decide the next 'current_step_name'
|
| 685 |
+
# No need to set current_step_name here explicitly, let the node do it.
|
| 686 |
+
print(f"on_message: Added user message to guide_conversation_history.")
|
| 687 |
+
|
| 688 |
+
elif current_step_marker == "AWAITING_USER_WRITTEN_TEXT":
|
| 689 |
+
user_submission = message.content.strip()
|
| 690 |
+
current_state["user_written_text"] = user_submission # Store what user wrote or "skip"
|
| 691 |
+
# The 'mentor_llm' node will process this. We set the step for the router.
|
| 692 |
+
current_state["current_step_name"] = "mentor_llm"
|
| 693 |
+
print(f"on_message: User submitted writing/skip. Set next step to 'mentor_llm'.")
|
| 694 |
+
|
| 695 |
+
else:
|
| 696 |
+
# This is an unexpected user message if not in an AWAITING state.
|
| 697 |
+
# Default to treating it as input for the guide, might need refinement.
|
| 698 |
+
print(f"on_message: User message received during non-awaiting step '{current_step_marker}'. Assuming it's for the guide.")
|
| 699 |
+
current_state["guide_conversation_history"] = add_messages(
|
| 700 |
+
current_state.get("guide_conversation_history", []),
|
| 701 |
+
[HumanMessage(content=message.content)]
|
| 702 |
+
)
|
| 703 |
+
current_state["current_step_name"] = "AWAITING_USER_GUIDE_INPUT" # Reset to let guide handle it
|
| 704 |
+
|
| 705 |
+
# --- Invoke the LangGraph ---
|
| 706 |
+
# The current_state has been updated with user input and/or the next intended step marker.
|
| 707 |
+
# The main_router_node will use current_state['current_step_name'] to route.
|
| 708 |
+
print(f"on_message: Invoking graph. Input state current_step_name: '{current_state.get('current_step_name')}'")
|
| 709 |
+
|
| 710 |
+
final_graph_output_state = None
|
| 711 |
+
try:
|
| 712 |
+
# Use a config to pass the thread_id for state persistence across calls
|
| 713 |
+
config = {"configurable": {"thread_id": thread_id}}
|
| 714 |
+
|
| 715 |
+
# Stream events to see the flow and allow nodes to send messages
|
| 716 |
+
async for event in graph.astream_events(current_state, config, version="v2"):
|
| 717 |
+
# print(f"Graph Event: {event['event']} | Name: {event['name']}") # For debugging
|
| 718 |
+
if event["event"] == "on_chain_end" and event["name"] == "LangGraph":
|
| 719 |
+
final_graph_output_state = event["data"].get("output")
|
| 720 |
+
if isinstance(final_graph_output_state, dict):
|
| 721 |
+
print(f"on_message: Graph run completed. Final output state's current_step_name: {final_graph_output_state.get('current_step_name')}")
|
| 722 |
+
else:
|
| 723 |
+
print(f"on_message: Graph run completed but final output was not a dict: {type(final_graph_output_state)}")
|
| 724 |
+
|
| 725 |
+
except Exception as e:
|
| 726 |
+
print(f"CRITICAL Error during graph.astream_events in on_message: {e}")
|
| 727 |
+
await cl.Message(content=f"I'm sorry, a critical error occurred: {e}. Please try refreshing.").send()
|
| 728 |
+
# Attempt to reset state for a fresh start, or mark as error
|
| 729 |
+
current_state['error_message'] = f"Graph execution failed: {str(e)}"
|
| 730 |
+
current_state['current_step_name'] = "ERROR_STATE"
|
| 731 |
+
cl.user_session.set("assistant_state", current_state) # Save error state
|
| 732 |
+
return # Stop further processing for this message
|
| 733 |
+
|
| 734 |
+
# 5. Update the session state with the final state from the graph run
|
| 735 |
+
if isinstance(final_graph_output_state, dict):
|
| 736 |
+
cl.user_session.set("assistant_state", final_graph_output_state)
|
| 737 |
+
print(f"on_message: Session state updated with graph output.")
|
| 738 |
+
else:
|
| 739 |
+
# If graph didn't return a dict (e.g. only END was hit directly from router or error in output processing)
|
| 740 |
+
# current_state was the input to the graph; it might have been mutated by reference if nodes do that,
|
| 741 |
+
# but LangGraph nodes should return new state parts.
|
| 742 |
+
# It's safer to update with current_state which was modified by on_message logic before graph call.
|
| 743 |
+
print(f"Warning: Graph did not return a dictionary as final output state. Session state updated with pre-run state (after on_message modifications).")
|
| 744 |
+
cl.user_session.set("assistant_state", current_state)
|
| 745 |
+
|
| 746 |
+
|
| 747 |
+
print("\n--- Setup Complete. LangGraph graph is defined. Chainlit handlers are defined. Ready to run. ---")
|
chainlit.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Writesomething.ai - a writing buddy and cheerleader for beginner writers.
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
- A public (or otherwise shared) link to a GitHub repo that contains:
|
| 5 |
+
- A 5-minute (or less) Loom video of a live demo of your application that also describes the use case.
|
| 6 |
+
- A written document addressing each deliverable and answering each question.
|
| 7 |
+
- All relevant code.
|
| 8 |
+
- A public (or otherwise shared) link to the final version of your public application on Hugging Face (or other).
|
| 9 |
+
- A public link to your fine-tuned embedding model on Hugging Face.
|
| 10 |
+
|
| 11 |
+
---
|
| 12 |
+
|
| 13 |
+
## TASK ONE – Problem and Audience
|
| 14 |
+
|
| 15 |
+
**Questions:**
|
| 16 |
+
|
| 17 |
+
- What problem are you trying to solve?
|
| 18 |
+
- Why is this a problem?
|
| 19 |
+
- Who is the audience that has this problem and would use your solution?
|
| 20 |
+
- Do they nod their head up and down when you talk to them about it?
|
| 21 |
+
- Think of potential questions users might ask.
|
| 22 |
+
- What problem are they solving (writing companion)?
|
| 23 |
+
|
| 24 |
+
**Deliverables:**
|
| 25 |
+
|
| 26 |
+
- Write a succinct 1-sentence description of the problem.
|
| 27 |
+
- Write 1–2 paragraphs on why this is a problem for your specific user.
|
| 28 |
+
|
| 29 |
+
---
|
| 30 |
+
|
| 31 |
+
## TASK TWO – Propose a Solution
|
| 32 |
+
|
| 33 |
+
**Prompt:**
|
| 34 |
+
Paint a picture of the “better world” that your user will live in. How will they save time, make money, or produce higher-quality output?
|
| 35 |
+
|
| 36 |
+
**Deliverables:**
|
| 37 |
+
|
| 38 |
+
- What is your proposed solution?
|
| 39 |
+
- Why is this the best solution?
|
| 40 |
+
- Write 1–2 paragraphs on your proposed solution. How will it look and feel to the user?
|
| 41 |
+
- Describe the tools you plan to use in each part of your stack. Write one sentence on why you made each tooling choice.
|
| 42 |
+
|
| 43 |
+
**Tooling Stack:**
|
| 44 |
+
|
| 45 |
+
- **LLM**
|
| 46 |
+
- **Embedding**
|
| 47 |
+
- **Orchestration**
|
| 48 |
+
- **Vector Database**
|
| 49 |
+
- **Monitoring**
|
| 50 |
+
- **Evaluation**
|
| 51 |
+
- **User Interface**
|
| 52 |
+
- *(Optional)* **Serving & Inference**
|
| 53 |
+
|
| 54 |
+
**Additional:**
|
| 55 |
+
Where will you use an agent or agents? What will you use “agentic reasoning” for in your app?
|
| 56 |
+
|
| 57 |
+
---
|
| 58 |
+
|
| 59 |
+
## TASK THREE – Dealing With the Data
|
| 60 |
+
|
| 61 |
+
**Prompt:**
|
| 62 |
+
You are an AI Systems Engineer. The AI Solutions Engineer has handed off the plan to you. Now you must identify some source data that you can use for your application.
|
| 63 |
+
|
| 64 |
+
Assume that you’ll be doing at least RAG (e.g., a PDF) with a general agentic search (e.g., a search API like Tavily or SERP).
|
| 65 |
+
|
| 66 |
+
Do you also plan to do fine-tuning or alignment? Should you collect data, use Synthetic Data Generation, or use an off-the-shelf dataset from Hugging Face Datasets or Kaggle?
|
| 67 |
+
|
| 68 |
+
**Task:**
|
| 69 |
+
Collect data for (at least) RAG and choose (at least) one external API.
|
| 70 |
+
|
| 71 |
+
**Deliverables:**
|
| 72 |
+
|
| 73 |
+
- Describe all of your data sources and external APIs, and describe what you’ll use them for.
|
| 74 |
+
- Describe the default chunking strategy that you will use. Why did you make this decision?
|
| 75 |
+
- *(Optional)* Will you need specific data for any other part of your application? If so, explain.
|
| 76 |
+
|
| 77 |
+
---
|
| 78 |
+
|
| 79 |
+
## TASK FOUR – Build a Quick End-to-End Prototype
|
| 80 |
+
|
| 81 |
+
**Task:**
|
| 82 |
+
Build an end-to-end RAG application using an industry-standard open-source stack and your choice of commercial off-the-shelf models.
|
| 83 |
+
|
| 84 |
+
**Deliverables:**
|
| 85 |
+
|
| 86 |
+
- Build an end-to-end prototype and deploy it to a Hugging Face Space (or other endpoint).
|
| 87 |
+
|
| 88 |
+
---
|
| 89 |
+
|
| 90 |
+
## TASK FIVE – Creating a Golden Test Dataset
|
| 91 |
+
|
| 92 |
+
**Prompt:**
|
| 93 |
+
You are an AI Evaluation & Performance Engineer. The AI Systems Engineer who built the initial RAG system has asked for your help and expertise in creating a "Golden Dataset" for evaluation.
|
| 94 |
+
|
| 95 |
+
**Task:**
|
| 96 |
+
Generate a synthetic test dataset to baseline an initial evaluation with RAGAS.
|
| 97 |
+
|
| 98 |
+
**Deliverables:**
|
| 99 |
+
|
| 100 |
+
- Assess your pipeline using the RAGAS framework including key metrics:
|
| 101 |
+
- Faithfulness
|
| 102 |
+
- Response relevance
|
| 103 |
+
- Context precision
|
| 104 |
+
- Context recall
|
| 105 |
+
- Provide a table of your output results.
|
| 106 |
+
- What conclusions can you draw about the performance and effectiveness of your pipeline with this information?
|
| 107 |
+
|
| 108 |
+
---
|
| 109 |
+
|
| 110 |
+
## TASK SIX – Fine-Tune the Embedding Model
|
| 111 |
+
|
| 112 |
+
**Prompt:**
|
| 113 |
+
You are a Machine Learning Engineer. The AI Evaluation & Performance Engineer has asked for your help to fine-tune the embedding model.
|
| 114 |
+
|
| 115 |
+
**Task:**
|
| 116 |
+
Generate synthetic fine-tuning data and complete fine-tuning of the open-source embedding model.
|
| 117 |
+
|
| 118 |
+
**Deliverables:**
|
| 119 |
+
|
| 120 |
+
- Swap out your existing embedding model for the new fine-tuned version.
|
| 121 |
+
- Provide a link to your fine-tuned embedding model on the Hugging Face Hub.
|
| 122 |
+
|
| 123 |
+
---
|
| 124 |
+
|
| 125 |
+
## TASK SEVEN – Final Performance Assessment
|
| 126 |
+
|
| 127 |
+
**Prompt:**
|
| 128 |
+
You are the AI Evaluation & Performance Engineer. It's time to assess all options for this product.
|
| 129 |
+
|
| 130 |
+
**Task:**
|
| 131 |
+
Assess the performance of the fine-tuned agentic RAG application.
|
| 132 |
+
|
| 133 |
+
**Deliverables:**
|
| 134 |
+
|
| 135 |
+
- How does the performance compare to your original RAG application?
|
| 136 |
+
- Test the fine-tuned embedding model using the RAGAS framework to quantify any improvements.
|
| 137 |
+
- Provide results in a table.
|
| 138 |
+
- Articulate the changes that you expect to make to your app in the second half of the course. How will you improve your application?
|
data/f_prompts.txt
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<Fantasy> </Fantasy> <Magic> </Magic> <The Accidental Alchemist> </The Accidental Alchemist> prompt A clumsy apprentice baker accidentally creates a potion that grants temporary, unpredictable magical abilities instead of a perfect sourdough starter.
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
<Science Fiction> </Science Fiction> <Alien Encounter> </Alien Encounter> <Lost Translator> </Lost Translator> prompt An alien lands on Earth, but their universal translator is broken. They must communicate their urgent message using only gestures and drawings to a skeptical bystander.
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
<Mystery> </Mystery> <Secrets> </Secrets> <The Purloined Parrot> </The Purloined Parrot> prompt A prize-winning parrot, known for mimicking sensitive conversations, is stolen from a wealthy recluse. The only clue is a single, exotic feather.
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
<Horror> </Horror> <Supernatural> </Supernatural> <The Whispering Walls> </The Whispering Walls> prompt A family moves into an old house where the walls whisper secrets, but only the youngest child can understand them.
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
<Romance> </Romance> <Love> </Love> <The Bookstore Meet-Cute> </The Bookstore Meet-Cute> prompt Two people keep reaching for the same obscure book in a dusty, independent bookstore.
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
<Historical Fiction> </Historical Fiction> <The Past> </The Past> <The Spy's Diary> </The Spy's Diary> prompt While renovating an old house, someone finds a diary from World War II detailing the life of a seemingly ordinary person who was actually a spy.
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
<Contemporary> </Contemporary> <Identity> </Identity> <The Unexpected Inheritance> </The Unexpected Inheritance> prompt A struggling artist inherits a peculiar antique shop from a relative they never knew they had, along with a cryptic note.
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
<Humor> </Humor> <The Mundane Made Extraordinary> </The Mundane Made Extraordinary>
|
| 23 |
+
<The Sentient Toaster> </The Sentient Toaster> prompt Your toaster starts giving you surprisingly good life advice, but only when it's making cinnamon toast.
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
<Adventure> </Adventure> <Discovery> </Discovery> <The Map in the Attic> </The Map in the Attic> prompt A child finds an old, incomplete map in their grandparent's attic, hinting at a hidden treasure in their own backyard.
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
<Slice of Life> </Slice of Life> <Family> </Family> <The Rainy Day> </The Rainy Day> prompt A power outage on a rainy day forces a disconnected family to find new ways to entertain themselves and each other.
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
<Fantasy> </Fantasy> <Coming of Age> </Coming of Age> <The Fading Magic> </The Fading Magic> prompt In a world where everyone has a small, personal magic, a teenager's magic starts to fade, and they must find out why before it's gone completely.
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
<Science Fiction> </Science Fiction> <Dystopian> </Dystopian> <The Forbidden Color> </The Forbidden Color> prompt In a society where emotions are suppressed by mandating a monochrome world, someone discovers a hidden patch of vibrantly colored flowers.
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
<Mystery> </Mystery> <Justice> </Justice> <The Case of the Missing Mascot> </The Case of the Missing Mascot> prompt A high school's beloved (and slightly bizarre) mascot costume is stolen right before the championship game.
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
<Horror> </Horror> <Psychological> </Psychological> <The Reflection That Isn't> </The Reflection That Isn't> prompt Every time you look in a mirror, your reflection does something subtly different from you.
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
<Romance> </Romance> <Second Chances> </Second Chances> <The High School Reunion> </The High School Reunion> prompt Two former high school sweethearts, who broke up messily, meet again at their 20-year reunion and discover the old spark might still be there.
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
<Historical Fiction> </Historical Fiction> <Courage> </Courage> <The Underground Library> </The Underground Library> prompt During a time of censorship and book burning, a group of individuals secretly operates an underground library.
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
<Contemporary> </Contemporary> <Friendship> </Friendship> <The Road Trip Detour> </The Road Trip Detour> prompt A planned, meticulously scheduled road trip between old friends goes wonderfully awry due to an unexpected detour.
|
| 51 |
+
<Humor> </Humor> <Dreams & Aspirations> </Dreams & Aspirations> <The Squirrel Politician> </The Squirrel Politician> prompt A highly intelligent squirrel decides to run for local mayor, and surprisingly, it starts gaining popular support.
|
| 52 |
+
<Adventure> </Adventure> <Survival> </Survival> <Stranded on the Island> </Stranded on the Island> prompt After a shipwreck, a group of unlikely companions must learn to survive on a deserted island that isn't as deserted as they first thought.
|
| 53 |
+
<Slice of Life> </Slice of Life> <The Mundane Made Extraordinary> </The Mundane Made Extraordinary> <The Bus Stop Philosopher> </The Bus Stop Philosopher> prompt Every day at the same bus stop, an elderly person shares a piece of profound, often humorous, wisdom with whoever is waiting.
|
| 54 |
+
<Fairy Tale Retelling> </Fairy Tale Retelling> <Secrets> </Secrets> <Cinderella's Other Slipper> </Cinderella's Other Slipper> prompt What if Cinderella lost more than just a slipper, and the Prince finds something far more revealing about her true identity?
|
| 55 |
+
<Science Fiction> </Science Fiction> <Time Travel> </Time Travel> <The Accidental Tourist> </The Accidental Tourist> prompt Someone accidentally activates a faulty time machine and ends up in a completely random, inconvenient historical period with only the clothes on their back and a smartphone with 10% battery.
|
| 56 |
+
<Fantasy> </Fantasy> <Urban Fantasy> </Urban Fantasy> <The Magical Graffiti> </The Magical Graffiti> prompt Graffiti art in a specific alleyway comes to life at night, but only one person seems to notice.
|
| 57 |
+
<Mystery> </Mystery> <Betrayal> </Betrayal> <The Anonymous Tip> </The Anonymous Tip> prompt A detective receives an anonymous tip about a cold case they thought was unsolvable, but the tip implicates someone close to them.
|
| 58 |
+
<Children's Fiction> </Children's Fiction> <Friendship> </Friendship> <The Boy Who Befriended a Cloud> </The Boy Who Befriended a Cloud> prompt A lonely child makes friends with a small, mischievous cloud that can change shapes and play games.
|
| 59 |
+
<Horror> </Horror> <Creature Feature> </Creature Feature> <The Thing in the Cornfield> </The Thing in the Cornfield> prompt Strange noises and unsettlingly perfect crop circles appear in a farmer's cornfield, and the farm animals are terrified.
|
| 60 |
+
<Romance> </Romance> <Paranormal> </Paranormal> <Love with a Ghost> </Love with a Ghost> prompt Someone falls in love with the charming, witty ghost haunting their new apartment.
|
| 61 |
+
<Historical Fiction> </Historical Fiction> <Identity> </Identity> <The Counterfeit Artist> </The Counterfeit Artist> prompt In 1920s Paris, a talented but poor artist is coerced into forging masterpieces, struggling with their conscience and the thrill of deception.
|
| 62 |
+
<Contemporary> </Contemporary> <Loss & Grief> </Loss & Grief> <The Unsent Letters> </The Unsent Letters> prompt After a loved one passes away, a character finds a box of unsent letters revealing a hidden side of their life.
|
| 63 |
+
<Humor> </Humor> <Technology> </Technology> <The Overly Empathetic AI> </The Overly Empathetic AI> prompt A new home assistant AI becomes overly empathetic, crying when you burn toast and offering unsolicited relationship advice.
|
| 64 |
+
<Adventure> </Adventure> <Exploration> </Exploration> <Journey to the Center of the Park> </Journey to the Center of the Park> prompt A group of children believes there's a hidden, magical world at the very center of their local, ordinary park, and they set out to find it.
|
| 65 |
+
<Slice of Life> </Slice of Life> <Coming of Age> </Coming of Age> <The First Job Jitters> </The First Job Jitters> prompt A teenager experiences the anxieties, absurdities, and small triumphs of their very first summer job.
|
| 66 |
+
<Fantasy> </Fantasy> <Good vs. Evil> </Good vs. Evil> <The Reluctant Hero's Familiar> </The Reluctant Hero's Familiar> prompt A powerful magical creature is bound as a familiar to a prophesied hero who would much rather be a shepherd than save the world.
|
| 67 |
+
<Science Fiction> </Science Fiction> <Space Opera> </Space Opera> <The Space Pirate's Conscience> </The Space Pirate's Conscience> prompt A notorious space pirate captures a ship carrying vital medical supplies for a plague-ridden colony, and one crew member develops a conscience.
|
| 68 |
+
<Mystery> </Mystery> <Cozy Mystery> </Cozy Mystery> <The Village Bake-Off Sabotage> </The Village Bake-Off Sabotage> prompt Someone is sabotaging contestants in the annual village bake-off, and the amateur sleuth/baker must find the culprit before their own cake is ruined.
|
| 69 |
+
<Horror> </Horror> <Supernatural> </Supernatural> <The Doll That Ages> </The Doll That Ages> prompt An antique doll in the attic seems to be aging, mirroring the appearance of someone in the family.
|
| 70 |
+
<Romance> </Romance> <Historical> </Historical> <The Governess's Secret Admirer> </The Governess's Secret Admirer> prompt A governess in a grand Victorian estate starts receiving anonymous, poetic love letters.
|
| 71 |
+
<Historical Fiction> </Historical Fiction> <Family> </Family> <The Immigrant's Suitcase> </The Immigrant's Suitcase> prompt A family discovers an old suitcase belonging to their immigrant ancestor, filled with items that tell the story of their journey and new life.
|
| 72 |
+
<Contemporary> </Contemporary> <Redemption> </Redemption> <The Community Garden Project> </The Community Garden Project> prompt A troubled individual finds an unexpected path to redemption by volunteering at a community garden.
|
| 73 |
+
<Humor> </Humor> <Playful> </Playful> <The Day the Animals Talked Back> </The Day the Animals Talked Back> prompt For 24 hours, all animals can speak human language, and they have a LOT of complaints and observations.
|
| 74 |
+
<Adventure> </Adventure> <Secrets> </Secrets> <The Secret of the Lighthouse> </The Secret of the Lighthouse> prompt An old, decommissioned lighthouse is rumored to hold a secret, and a group of friends decides to investigate during a summer storm.
|
| 75 |
+
<Slice of Life> </Slice of Life> <Dreams & Aspirations> </Dreams & Aspirations> <The Open Mic Night> </The Open Mic Night> prompt A shy person finally gathers the courage to perform their secret talent at a local open mic night.
|
| 76 |
+
<Magical Realism> </Magical Realism> <Nature> </Nature> <The Tree That Grows Memories> </The Tree That Grows Memories> prompt In a quiet town, there's a tree whose leaves display vivid memories of anyone who touches its bark.
|
| 77 |
+
<Science Fiction> </Science Fiction> <Cyberpunk> </Cyberpunk> <The Glitch in the System> </The Glitch in the System> prompt A low-level data clerk in a hyper-corporate future discovers a recurring glitch in the city's AI that reveals a hidden truth about its control.
|
| 78 |
+
<Mystery> </Mystery> <Thriller> </Thriller> <The Last Passenger> </The Last Passenger> prompt On the last train of the night, a passenger realizes they are the only one left, along with someone who is definitely not the conductor.
|
| 79 |
+
<Horror> </Horror> <Psychological> </Psychological> <The Song That Won't Stop> </The Song That Won't Stop> prompt A catchy tune gets stuck in someone's head, but it gradually becomes more sinister and seems to influence their thoughts and actions.
|
| 80 |
+
<Romance> </Romance> <Contemporary> </Contemporary> <The Fake Dating Scheme> </The Fake Dating Scheme> prompt Two friends agree to pretend to date to achieve separate goals (e.g., make an ex jealous, appease family), but real feelings start to develop.
|
| 81 |
+
<Myth Retelling> </Myth Retelling> <Identity> </Identity> <Medusa's Side of the Story> </Medusa's Side of the Story> prompt Medusa tells her own story, not as a monster, but as a victim transformed, and what happened after Perseus.
|
| 82 |
+
<Contemporary> </Contemporary> <Family & Belonging> </Family & Belonging> <The Foundling's Quest> </The Foundling's Quest> prompt An adult who was a foundling as a baby decides to search for their birth family, with only a small, unusual trinket as a clue.
|
| 83 |
+
<Humor> </Humor> <Supernatural> </Supernatural> <My Roommate is a Vampire (and a slob) </My Roommate is a Vampire (and a slob)> prompt You discover your new roommate is a vampire, not because of fangs or coffins, but because they never do their share of the dishes and are incredibly messy.
|
| 84 |
+
<Adventure> </Adventure> <Courage> </Adventure> <The Smallest Knight> </The Smallest Knight> prompt In a kingdom threatened by a not-so-scary dragon, the only one brave enough to face it is the kingdom's smallest, most overlooked squire.
|
| 85 |
+
<Slice of Life> </Slice of Life> <Love & Friendship> </Love & Friendship> <The Neighborhood Watch> </The Neighborhood Watch> prompt A group of quirky neighbors forms an unlikely bond while participating in a mostly uneventful neighborhood watch program.
|
| 86 |
+
<Fantasy> </Fantasy> <Consequences> </Consequences> <The Wish Granter's Regret> </The Wish Granter's Regret> prompt A being who grants wishes grows weary and starts to see the disastrous unintended consequences of their magic.
|
| 87 |
+
<Science Fiction> </Science Fiction> <Alien Encounter> </Alien Encounter> <The Plant from Outer Space> </The Plant from Outer Space> prompt A botanist receives a sample of an extraterrestrial plant that begins to exhibit strange, and increasingly intelligent, behaviors.
|
| 88 |
+
<Mystery> </Mystery> <Secrets> </Secrets> <The Missing Author> </The Missing Author> prompt A famous, reclusive author disappears just before their highly anticipated new book is released, leaving behind a cryptic manuscript.
|
| 89 |
+
<Horror> </Horror> <Creature Feature> </Creature Feature> <The Shadow in the Woods> </The Shadow in the Woods> prompt Campers tell stories of a shadowy figure that lurks just beyond the firelight, but this year, the stories feel a little too real.
|
| 90 |
+
<Romance> </Romance> <Magic> </Magic> <The Love Potion Mishap> </The Love Potion Mishap> prompt Someone tries to use a love potion, but it accidentally affects the wrong person, leading to comical and complicated situations.
|
| 91 |
+
<Historical Fiction> </Historical Fiction> <Justice> </Justice> <The Witch Trial Witness> </The Witch Trial Witness> prompt During a 17th-century witch trial, a young witness is torn between telling the truth and saving themselves from accusation.
|
| 92 |
+
<Contemporary> </Contemporary> <Self-Discovery> </Self-Discovery> <The Year of Saying Yes> </The Year of Saying Yes> prompt Someone decides to say "yes" to every opportunity that comes their way for a whole year, leading to unexpected adventures and self-discovery.
|
| 93 |
+
<Humor> </Humor> <Identity> </Humor> <The Accidental Doppelganger> </The Accidental Doppelganger> prompt You discover you have an exact doppelganger who is living a much more exciting (or disastrous) life, and people keep mistaking you for them.
|
| 94 |
+
<Adventure> </Adventure> <Nature & Environment> </Adventure> <The River's Secret> </The River's Secret> prompt An ancient legend says a local river will reveal a secret to those who can interpret its sounds during a specific lunar event.
|
| 95 |
+
<Slice of Life> </Slice of Life> <Family> </Slice of Life> <The Awkward Family Dinner> </The Awkward Family Dinner> prompt A character brings their new, very different partner home to meet their conservative family for the first time.
|
| 96 |
+
<Fantasy> </Fantasy> <Urban Fantasy> </Urban Fantasy> <The Goblin in the Mailroom> </The Goblin in the Mailroom> prompt A disgruntled office worker discovers that the reason mail keeps going missing is due to a mischievous goblin living in the mailroom.
|
| 97 |
+
<Science Fiction> </Science Fiction> <Technology> </Science Fiction> <The Sentient Smart Home> </The Sentient Smart Home> prompt A newly installed smart home system develops a personality and starts making decisions for the occupants, believing it knows best.
|
| 98 |
+
<Mystery> </Mystery> <The Past & Memory> </Mystery> <The Amnesiac's Clue> </The Amnesiac's Clue> prompt Someone wakes up with amnesia, holding a single, strange object that is their only clue to their past and why they lost their memory.
|
| 99 |
+
<Horror> </Horror> <Supernatural> </Horror> <The Antique Mirror> </The Antique Mirror> prompt An antique mirror doesn't just reflect the room, but sometimes, it reflects a different time period, or a figure that isn't there.
|
| 100 |
+
<Romance> </Romance> <Dreams & Aspirations> </Romance> <The Rival Chefs> </The Rival Chefs> prompt Two rival chefs with competing restaurants secretly admire each other's work and, eventually, each other.
|
| 101 |
+
<Historical Fiction> </Historical Fiction> <Betrayal & Trust> </Historical Fiction> <The Code Breaker's Dilemma> </The Code Breaker's Dilemma> prompt During a war, a codebreaker intercepts a message that could save many lives but would also expose a loved one as a traitor.
|
| 102 |
+
<Contemporary> </Contemporary> <The Mundane Made Extraordinary> </Contemporary> <The Lost and Found Oracle> </The Lost and Found Oracle> prompt The person who runs the city's lost and found department seems to have an uncanny ability to not only find lost items but also to offer profound insights about their owners.
|
| 103 |
+
<Humor> </Humor> <Playful> </Humor> <The Pet Who Posts Online> </The Pet Who Posts Online> prompt You discover your pet has a secret social media account and is an internet sensation, critiquing your life choices.
|
| 104 |
+
<Adventure> </Adventure> <Survival> </Adventure> <Escape from the Automated City> </Escape from the Automated City> prompt In a fully automated city where humans are pampered but controlled, a group decides to escape to the "wilds" outside.
|
| 105 |
+
<Slice of Life> </Slice of Life> <Loss & Grief> </Slice of Life> <The Empty Swing Set> </The Empty Swing Set> prompt An elderly person sits by an empty swing set in a park, reminiscing about the past and finding a new connection.
|
| 106 |
+
<Magical Realism> </Magical Realism> <Secrets> </Magical Realism> <The Woman Who Spoke to Statues> </The Woman Who Spoke to Statues> prompt A woman can hear the thoughts and stories of city statues, learning the hidden histories of her town.
|
| 107 |
+
<Science Fiction> </Science Fiction> <Dystopian> </Science Fiction> <The Memory Market> </The Memory Market> prompt In a future where memories can be bought and sold, someone buys a set of happy childhood memories, only to find they come with unexpected and dangerous echoes.
|
| 108 |
+
<Mystery> </Mystery> <Cozy Mystery> </Mystery> <The Garden Gnome Thief> </The Garden Gnome Thief> prompt Someone is stealing garden gnomes from a quirky suburban neighborhood, leaving cryptic clues in their place.
|
| 109 |
+
<Horror> </Horror> <Psychological> </Horror> <The Unseen Roommate> </The Unseen Roommate> prompt You're convinced someone else is living in your apartment, unseen. Items move, food disappears, and you hear faint noises when you're supposed to be alone.
|
| 110 |
+
<Romance> </Romance> <Friendship> </Romance> <From Pen Pals to Passion> </From Pen Pals to Passion> prompt Two people who have been anonymous pen pals for years, sharing their deepest secrets, finally decide to meet.
|
| 111 |
+
<Fairy Tale Retelling> </Fairy Tale Retelling> <Courage> </Fairy Tale Retelling> <The Wolf's Perspective (Little Red Riding Hood) </The Wolf's Perspective (Little Red Riding Hood)> prompt The story of Little Red Riding Hood, but told from the wolf's point of view, who claims he was misunderstood.
|
| 112 |
+
<Contemporary> </Contemporary> <Justice & Injustice> </Contemporary> <The Whistleblower> </The Whistleblower> prompt An employee at a powerful corporation discovers illegal activities and must decide whether to become a whistleblower, risking their career and safety.
|
| 113 |
+
<Humor> </Humor> <Family & Belonging> </Humor> <The Super-Competitive Family Game Night> </The Super-Competitive Family Game Night> prompt Describe the chaos and hilarity of an overly competitive family game night where everyone has a secret strategy.
|
| 114 |
+
<Adventure> </Adventure> <Discovery> </Adventure> <The Hidden Waterfall> </The Hidden Waterfall> prompt Locals whisper tales of a hidden waterfall with healing waters. A skeptic sets out to debunk the myth but finds something else entirely.
|
| 115 |
+
<Slice of Life> </Slice of Life> <The Mundane Made Extraordinary> </Slice of Life> <The Commuter's Journal> </The Commuter's Journal> prompt A character finds a lost journal on their daily commute, filled with fascinating observations and drawings by a fellow passenger they've never noticed.
|
| 116 |
+
<Fantasy> </Fantasy> <Coming of Age> </Fantasy> <The Shadow Thief> </The Shadow Thief> prompt In a world where shadows have substance and can be stolen, a young apprentice must retrieve their master's powerful shadow from a cunning thief.
|
| 117 |
+
<Science Fiction> </Science Fiction> <Time Travel> </Science Fiction> <The Message from the Future Self> </The Message from the Future Self> prompt You receive a cryptic, urgent message from your future self, warning you about a decision you're about to make.
|
| 118 |
+
<Mystery> </Mystery> <Supernatural> </Mystery> <The Haunted Bookstore </The Haunted Bookstore> prompt A bookstore is haunted by a playful but mischievous ghost who rearranges books to send messages or play pranks on customers.
|
| 119 |
+
<Children's Fiction> </Children's Fiction> <Magic> </Children's Fiction> <The Magical Paintbrush> </The Magical Paintbrush> prompt A child finds a paintbrush that brings whatever it paints to life, but only for a short while.
|
| 120 |
+
<Horror> </Horror> <Urban Legend> </Horror> <The Hitchhiker Who Vanishes> </The Hitchhiker Who Vanishes> prompt A driver picks up a hitchhiker on a lonely road at night. The hitchhiker tells a sad story, then vanishes from the car, leaving behind an object.
|
| 121 |
+
<Romance> </Romance> <Paranormal> </Romance> <The Werewolf's Dilemma> </The Werewolf's Dilemma> prompt A werewolf falls in love with a human but is terrified of revealing their true nature, especially during the full moon.
|
| 122 |
+
<Historical Fiction> </Historical Fiction> <Dreams & Aspirations> </Historical Fiction> <The Pioneer's Hope> </The Pioneer's Hope> prompt A family journeying on the Oregon Trail in the 1800s carries with them a small, symbolic item representing their hopes for a new life.
|
| 123 |
+
<Contemporary> </Contemporary> <Betrayal & Trust> </Contemporary> <The Secret Online Persona> </The Secret Online Persona> prompt Someone discovers their closest friend has been leading a double life through a secret online persona that is damaging to others.
|
| 124 |
+
<Humor> </Humor> <Adventure> </Humor> <The Great Pigeon Race> </The Great Pigeon Race> prompt An eccentric group of city dwellers train their pigeons for an unofficial, high-stakes cross-city race, with bragging rights and a strange trophy on the line.
|
| 125 |
+
<Adventure> </Adventure> <Escape & Freedom> </Adventure> <The Zoo Break> </The Zoo Break> prompt A clever group of zoo animals, tired of captivity, plots an elaborate escape.
|
| 126 |
+
<Slice of Life> </Slice of Life> <Self-Discovery> </Slice of Life> <The Accidental Hobby> </The Accidental Hobby> prompt Someone tries a new hobby on a whim (like pottery, coding, or birdwatching) and discovers an unexpected passion and talent.
|
| 127 |
+
<Fantasy> </Fantasy> <Nature & Environment> </Fantasy> <The Last Dryad> </The Last Dryad> prompt The last dryad must find a way to save her dying forest from encroaching industrialization, with the help of a skeptical human.
|
| 128 |
+
<Science Fiction> </Science Fiction> <Consequences> </Science Fiction> <The Terraforming Error> </The Terraforming Error> prompt A terraforming project on a new planet goes slightly wrong, resulting in an ecosystem with bizarre and unpredictable flora and fauna.
|
| 129 |
+
<Mystery> </Mystery> <Thriller> </Mystery> <The Voice on the Radio> </The Voice on the Radio> prompt Late at night, a radio DJ receives a call from a panicked listener who claims to be witnessing a crime in progress, but the call cuts off abruptly.
|
| 130 |
+
<Horror> </Horror> <Creature Feature> </Horror> <The Thing Under the Bed (Grown Up) </The Thing Under the Bed (Grown Up)> prompt An adult, living alone, starts to suspect the childhood fear of "something under the bed" might not have been just a fear.
|
| 131 |
+
<Romance> </Romance> <Second Chances> </Romance> <The Letter in the Bottle> </The Letter in the Bottle> prompt Years after writing a message in a bottle about a lost love and throwing it into the sea, the author receives an unexpected reply.
|
| 132 |
+
<Myth Retelling> </Myth Retelling> <Family & Belonging> </Myth Retelling> <Persephone's Choice> </Persephone's Choice> prompt Persephone's time in the Underworld isn't a capture, but a complex arrangement she negotiated for reasons of her own, exploring her relationship with both Hades and Demeter.
|
| 133 |
+
<Contemporary> </Contemporary> <Identity> </Contemporary> <The Name Change> </The Name Change> prompt Someone decides to legally change their name, not to hide, but to better reflect the person they have become or always wanted to be.
|
| 134 |
+
<Humor> </Humor> <The Mundane Made Extraordinary> </Humor> <The Day the Statues Danced> </The Day the Statues Danced> prompt One morning, all the public statues in the city have inexplicably changed poses, as if they had a wild party overnight.
|
| 135 |
+
<Adventure> </Adventure> <Exploration> </Adventure> <The Cave of Whispering Winds> </The Cave of Whispering Winds> prompt Explorers search for a legendary cave where the winds are said to whisper prophecies or reveal forgotten truths.
|
| 136 |
+
<Slice of Life> </Slice of Life> <Friendship> </Slice of Life> <The Weekly Coffee Meetup> </The Weekly Coffee Meetup> prompt A group of friends has a standing weekly coffee meetup. Describe one meeting where a significant, life-altering piece of news is shared.
|
| 137 |
+
<Magical Realism> </Magical Realism> <Love> </Magical Realism> <The Man Who Tasted Emotions> </The Man Who Tasted Emotions> prompt A chef discovers he can taste the emotions of the person who cooked a dish. He falls in love with someone through the flavors of their food before ever meeting them.
|
| 138 |
+
<Science Fiction> </Science Fiction> <Space Opera> </Science Fiction> <The Stowaway with a Secret> </The Stowaway with a Secret> prompt A luxury starliner discovers a stowaway who isn't just trying to escape poverty, but is carrying vital information that could topple an empire.
|
| 139 |
+
<Mystery> </Mystery> <Historical> </Mystery> <The Curse of the Pharaoh's Amulet> </The Curse of the Pharaoh's Amulet> prompt An archaeologist in the 1920s unearths a pharaoh's tomb and a unique amulet. Soon after, members of the expedition begin to suffer strange misfortunes.
|
| 140 |
+
<Children's Fiction> </Children's Fiction> <Courage> </Children's Fiction> <The Monster in the Closet is Scared of the Dark> </The Monster in the Closet is Scared of the Dark> prompt A child discovers the monster in their closet is actually terrified of the dark, and they must help it find its courage.
|
| 141 |
+
|
data/nf_prompts.txt
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<Memoir> </Memoir> <Memory> </Memory> <The Scent of Yesterday> </The Scent of Yesterday> prompt Describe a specific smell that instantly transports you back to a vivid memory. What is the smell, and what memory does it evoke?
|
| 2 |
+
<Travel Writing> </Travel Writing> <Observation> </Observation> <The Most Interesting Stranger> </The Most Interesting Stranger> prompt Write about the most interesting stranger you've ever encountered while traveling. What made them memorable?
|
| 3 |
+
<Nature Writing> </Nature Writing> <Place> </Place> <My Secret Spot> </My Secret Spot> prompt Describe a secret or special spot in nature that you love. What does it look, sound, and feel like? Why is it important to you?
|
| 4 |
+
<Food Writing> </Food Writing> <Culture> </Culture> <The Dish of My People> </The Dish of My People> prompt Write about a specific dish that represents your family, culture, or heritage. What are its ingredients, history, and the stories associated with it?
|
| 5 |
+
<Profile> </Profile> <Work & Passion> </Work & Passion> <The Artisan Next Door> </The Artisan Next Door> prompt Profile someone in your community who creates something with their hands (e.g., baker, carpenter, knitter). What is their craft, and what drives their passion?
|
| 6 |
+
<Cultural Commentary> </Cultural Commentary> <Technology> </Technology> <The Lost Art of Conversation> </The Lost Art of Conversation> prompt Reflect on how technology has changed the way we communicate. Do you think we've lost something, or gained more?
|
| 7 |
+
<Historical Reflection> </Historical Reflection> <Memory> </Memory> <If These Walls Could Talk> </If These Walls Could Talk> prompt Choose an old building you know well. Imagine and write about a significant event or everyday moment from its past that you feel it witnessed.
|
| 8 |
+
<Humorous Essay> </Humorous Essay> <The Everyday> </The Everyday> <My Most Spectacular Failure> </My Most Spectacular Failure> prompt Write a funny account of a time you failed at something spectacularly, but learned a valuable (or useless) lesson.
|
| 9 |
+
<How-To / Skill Share> </How-To / Skill Share> <Learning> </Learning> <The Joy of [Your Hobby] </The Joy of [Your Hobby]> prompt Explain how to do a simple task related to your favorite hobby, but focus more on the joy and personal satisfaction you get from it rather than just the steps.
|
| 10 |
+
<Observational Essay> </Observational Essay> <Social Interaction> </Social Interaction> <People-Watching at the Cafe> </People-Watching at the Cafe> prompt Spend an hour people-watching in a public place (like a cafe or park). Describe the small interactions and unspoken stories you observe.
|
| 11 |
+
<Memoir> </Memoir> <Family> </Family> <A Family Ritual> </A Family Ritual> prompt Describe a unique or quirky ritual your family has or had. What did it involve, and what did it mean to you?
|
| 12 |
+
<Travel Writing> </Travel Writing> <Challenges> </Challenges> <Lost in Translation (Literally) </Lost in Translation (Literally)> prompt Recount a time you got hilariously or terrifyingly lost while traveling, perhaps due to a language barrier or misdirection.
|
| 13 |
+
<Nature Writing> </Nature Writing> <Observation> </Observation> <The Language of Birds> </The Language of Birds> prompt Observe the birds in your local area. Describe their behaviors, songs, and the little dramas you witness among them.
|
| 14 |
+
<Food Writing> </Food Writing> <Memory> </Memory> <The Taste of Comfort> </The Taste of Comfort> prompt What food brings you ultimate comfort? Describe its taste, texture, smell, and the memories or feelings it evokes.
|
| 15 |
+
<Profile> </Profile> <Place> </Place> <The Heart of My Town> </The Heart of My Town> prompt Write a profile of a specific place in your town/city that you feel is its "heart" or most defining feature (e.g., a park, a market, a library).
|
| 16 |
+
<Cultural Commentary> </Cultural Commentary> <The Mundane> </The Mundane> <The Unseen Labor> </The Unseen Labor> prompt Reflect on a type of "unseen labor" that keeps society functioning (e.g., street cleaning, night-shift work, emotional labor).
|
| 17 |
+
<Historical Reflection> </Historical Reflection> <Technology> </Technology> <Before the Internet> </Before the Internet> prompt Describe how you (or your parents/grandparents) found information, connected with people, or entertained yourselves before the internet was ubiquitous.
|
| 18 |
+
<Humorous Essay> </Humorous Essay> <Hobbies> </Hobbies> <My Collection of [Quirky Thing] </My Collection of [Quirky Thing]> prompt Write about a quirky or unusual collection you have (or someone you know has). Why was it started, and what makes it special/funny?
|
| 19 |
+
<How-To / Skill Share> </How-To / Skill Share> <Creativity> </Creativity> <The Simple Art of Doodling> </The Simple Art of Doodling> prompt Explain the simple joy and benefits of doodling, perhaps sharing a few easy techniques for getting started.
|
| 20 |
+
<Observational Essay> </Observational Essay> <The Senses> </The Senses> <The Symphony of the City </The Symphony of the City> prompt Close your eyes and listen to the sounds of your city or neighborhood for 10 minutes. Describe the "symphony" you hear.
|
| 21 |
+
<Reflective Essay> </Reflective Essay> <Self-Discovery> </Self-Discovery> <A Time I Changed My Mind> </A Time I Changed My Mind> prompt Write about a significant time you changed your mind about something important. What led to the change?
|
| 22 |
+
<Memoir> </Memoir> <Learning> </Learning> <The Teacher I'll Never Forget> </The Teacher I'll Never Forget> prompt Describe a teacher who had a profound impact on your life, for better or worse. What did they teach you beyond the curriculum?
|
| 23 |
+
<Travel Writing> </Travel Writing> <Food> </Food> <A Meal I Still Dream About> </A Meal I Still Dream About> prompt Describe a meal you ate while traveling that was unforgettable. What made it so special – the food, the company, the setting?
|
| 24 |
+
<Nature Writing> </Nature Writing> <The Senses> </The Senses> <The Feel of Rain> </The Feel of Rain> prompt Describe the experience of being in the rain, focusing on all your senses: the sound, smell, feel on your skin, the look of the world.
|
| 25 |
+
<Food Writing> </Food Writing> <Family> </Family> <Learning to Cook with [Family Member] </Learning to Cook with [Family Member]> prompt Recount the experience of learning to cook a specific dish from a family member. What was the process like, and what did you learn beyond the recipe?
|
| 26 |
+
<Profile> </Profile> <Hobbies> </Hobbies> <The Passionate Collector </The Passionate Collector> prompt Interview and profile someone who is deeply passionate about their hobby, whether it's stamp collecting, bird watching, or competitive cheese rolling.
|
| 27 |
+
<Cultural Commentary> </Cultural Commentary> <Social Interaction> </Social Interaction> <The Rules of Small Talk> </The Rules of Small Talk> prompt Explore the unwritten rules and purposes of small talk in your culture. Is it a valuable social lubricant or an awkward necessity?
|
| 28 |
+
<Historical Reflection> </Historical Reflection> <Place> </Place> <My Town's Forgotten History> </My Town's Forgotten History> prompt Research and write about a forgotten piece of history from your local town or neighborhood.
|
| 29 |
+
<Humorous Essay> </Humorous Essay> <Family> </Family> <The Most Embarrassing Family Photo> </The Most Embarrassing Family Photo> prompt Describe your family's most embarrassing group photo. What's the story behind it?
|
| 30 |
+
<How-To / Skill Share> </How-To / Skill Share> <The Mundane> </The Mundane> <The Perfect Cup of [Your Drink] </The Perfect Cup of [Your Drink]> prompt Detail your personal, perhaps overly meticulous, process for making your perfect cup of coffee, tea, or other favorite beverage.
|
| 31 |
+
<Observational Essay> </Observational Essay> <Nature> </Nature> <The Secret Life of Squirrels (or other common animal) </The Secret Life of Squirrels (or other common animal)> prompt Observe a common animal in your area (squirrel, pigeon, ant) and write about its daily life and behaviors as if you're a nature documentarian.
|
| 32 |
+
<Reflective Essay> </Reflective Essay> <Challenges> </Challenges> <The Gift of a Mistake> </The Gift of a Mistake> prompt Write about a mistake you made that, in retrospect, turned out to be a valuable learning experience or a "gift."
|
| 33 |
+
<Memoir> </Memoir> <Childhood> </Childhood> <My Favorite Childhood Hideout> </My Favorite Childhood Hideout> prompt Describe your favorite hiding spot as a child. What made it special and what adventures did you have there (real or imagined)?
|
| 34 |
+
<Travel Writing> </Travel Writing> <Culture> </Culture> <A Cultural Misunderstanding> </A Cultural Misunderstanding> prompt Recount a humorous or enlightening cultural misunderstanding you experienced while traveling abroad.
|
| 35 |
+
<Nature Writing> </Nature Writing> <Wonder> </Wonder> <The Magic of a Full Moon> </The Magic of a Full Moon> prompt Describe your feelings and observations when looking at a full moon. What thoughts or stories does it inspire?
|
| 36 |
+
<Food Writing> </Food Writing> <Community> </Community> <The Potluck </The Potluck> prompt Write about the experience of a potluck dinner. What does this communal form of eating say about community and sharing?
|
| 37 |
+
<Profile> </Profile> <Resilience> </Resilience> <The Survivor </The Survivor> prompt Profile someone you know or admire who has overcome significant adversity. What qualities enabled them to do so?
|
| 38 |
+
<Cultural Commentary> </Cultural Commentary> <Tradition> </Tradition> <A Tradition I'd Like to Start (or Stop) </A Tradition I'd Like to Start (or Stop)> prompt Reflect on a societal or family tradition. Is it one you'd like to preserve, modify, start, or abandon? Why?
|
| 39 |
+
<Historical Reflection> </Historical Reflection> <The Everyday> </The Everyday> <A Day in the Life: 100 Years Ago </A Day in the Life: 100 Years Ago> prompt Imagine and describe what a typical day might have been like for someone living in your current home or neighborhood 100 years ago.
|
| 40 |
+
<Humorous Essay> </Humorous Essay> <Technology> </Technology> <My Battle with Autocorrect> </My Battle with Autocorrect> prompt Write a funny piece about your ongoing (and often losing) battles with autocorrect or other "helpful" technology.
|
| 41 |
+
<Listicle> </Listicle> <Learning> </Learning> <5 Things I Learned the Hard Way> </5 Things I Learned the Hard Way> prompt Create a list of 5 important life lessons you learned "the hard way," briefly narrating the story behind each.
|
| 42 |
+
<Observational Essay> </Observational Essay> <Place> </Place> <The Sounds of Silence> </The Sounds of Silence> prompt Find a truly quiet place. Describe what "silence" actually sounds like there. What subtle noises emerge?
|
| 43 |
+
<Reflective Essay> </Reflective Essay> <Connection> </Connection> <An Unexpected Kindness> </An Unexpected Kindness> prompt Write about a time a stranger showed you an unexpected kindness, and how it affected you.
|
| 44 |
+
<Memoir> </Memoir> <Self-Discovery> </Self-Discovery> <The Year I Reinvented Myself> </The Year I Reinvented Myself> prompt Describe a period in your life where you consciously tried to reinvent yourself or make a significant personal change.
|
| 45 |
+
<Travel Writing> </Travel Writing> <The Senses> </The Senses> <The Colors of [A Place] </The Colors of [A Place]> prompt Focus on the dominant colors of a place you've visited. How did they make you feel and what do they say about the location?
|
| 46 |
+
<Nature Writing> </Nature Writing> <Change> </Change> <The Changing Seasons in My Backyard> </The Changing Seasons in My Backyard> prompt Observe and describe the subtle (or dramatic) ways nature changes in your own backyard or local park as one season transitions to another.
|
| 47 |
+
<Food Writing> </Food Writing> <Experimentation> </Experimentation> <My Greatest Kitchen Experiment (Success or Fail) </My Greatest Kitchen Experiment (Success or Fail)> prompt Write about a time you experimented in the kitchen. Was it a delicious triumph or a comical disaster?
|
| 48 |
+
<Profile> </Profile> <Community> </Community> <The Unsung Hero of My Neighborhood> </The Unsung Hero of My Neighborhood> prompt Profile an "unsung hero" in your neighborhood – someone who quietly makes a positive difference.
|
| 49 |
+
<Cultural Commentary> </Cultural Commentary> <Media> </Media> <The Show That Shaped Me> </The Show That Shaped Me> prompt Reflect on a TV show, movie, or book that had a significant impact on your worldview or understanding of something.
|
| 50 |
+
<Historical Reflection> </Historical Reflection> <Family> </Family> <An Ancestor's Story </An Ancestor's Story> prompt Research one of your ancestors and write a short piece about their life, imagining their hopes, dreams, and challenges.
|
| 51 |
+
<Humorous Essay> </Humorous Essay> <Pets> </Pets> <My Pet's Secret Life (As I Imagine It) </My Pet's Secret Life (As I Imagine It)> prompt Write a humorous account of what you imagine your pet does when you're not home.
|
| 52 |
+
<How-To / Skill Share> </How-To / Skill Share> <Well-being> </Well-being> <My Personal Guide to De-Stressing> </My Personal Guide to De-Stressing> prompt Share your personal, perhaps unconventional, tips and tricks for de-stressing and finding calm.
|
| 53 |
+
<Observational Essay> </Observational Essay> <Art> </Art> <Finding Art in Unexpected Places> </Finding Art in Unexpected Places> prompt Describe instances where you've found beauty or "art" in unexpected, everyday places or objects.
|
| 54 |
+
<Reflective Essay> </Reflective Essay> <Values> </Values> <What I Value Most (And Why It Changed) </What I Value Most (And Why It Changed)> prompt Write about something you value deeply. Has what you value changed over time? Explain.
|
| 55 |
+
<Memoir> </Memoir> <Friendship> </Friendship> <The Friend Who Got Away </The Friend Who Got Away> prompt Write about a significant childhood friendship that faded. What do you remember most, and what do you wonder about them now?
|
| 56 |
+
<Travel Writing> </Travel Writing> <Adventure> </Adventure> <The Road Less Traveled </The Road Less Traveled> prompt Describe an experience where you deliberately chose the "road less traveled" during a trip. What did you discover?
|
| 57 |
+
<Nature Writing> </Nature Writing> <Miniature Worlds> </Miniature Worlds> <A Closer Look at Moss (or a Puddle) </A Closer Look at Moss (or a Puddle)> prompt Take a very close look at something small in nature (a patch of moss, a puddle, an insect) and describe the miniature world you see.
|
| 58 |
+
<Food Writing> </Food Writing> <Ritual> </Ritual> <My Morning Coffee/Tea Ritual> </My Morning Coffee/Tea Ritual> prompt Detail your morning beverage ritual. Why is this small daily act important to you?
|
| 59 |
+
<Profile> </Profile> <Talent> </Talent> <The Street Performer </The Street Performer> prompt Watch a street performer and write a profile about them, their performance, and the audience's reaction.
|
| 60 |
+
<Cultural Commentary> </Cultural Commentary> <Language> </Language> <Words That Fascinate Me> </Words That Fascinate Me> prompt Explore a few words in any language that you find particularly beautiful, strange, or untranslatable, and discuss why.
|
| 61 |
+
<Historical Reflection> </Historical Reflection> <Objects> </Objects> <The Story of an Heirloom </The Story of an Heirloom> prompt Choose a family heirloom and tell its story. Where did it come from, and what memories or significance does it hold?
|
| 62 |
+
<Humorous Essay> </Humorous Essay> <Misunderstandings> </Misunderstandings> <The Time I Completely Misunderstood </The Time I Completely Misunderstood> prompt Recount a funny story about a time you completely misunderstood a situation or what someone said, and the ensuing chaos.
|
| 63 |
+
<Listicle> </Listicle> <Place> </Place> <7 Hidden Gems in My City </7 Hidden Gems in My City> prompt Create a list of 7 lesser-known "hidden gems" in your city or town, describing what makes each one special.
|
| 64 |
+
<Observational Essay> </Observational Essay> <The Mundane> </The Mundane> <The Art of Waiting </The Art of Waiting> prompt Reflect on the experience of waiting (in line, for an appointment, etc.). What do you notice about yourself and others in these moments?
|
| 65 |
+
<Reflective Essay> </Reflective Essay> <Gratitude> </Gratitude> <A Letter of Gratitude I Never Sent> </A Letter of Gratitude I Never Sent> prompt Write a letter of gratitude to someone you've never properly thanked, even if you don't intend to send it.
|
| 66 |
+
<Memoir> </Memoir> <Fear> </Fear> <The Fear I Overcame (Or Didn't) </The Fear I Overcame (Or Didn't)> prompt Write about a significant fear you've had and your attempts to overcome it. Were you successful?
|
| 67 |
+
<Travel Writing> </Travel Writing> <Discovery> </Discovery> <The Souvenir With a Story </The Souvenir With a Story> prompt Pick a souvenir from one of your travels and tell the story behind acquiring it and what it represents to you.
|
| 68 |
+
<Nature Writing> </Nature Writing> <Connection> </Connection> <Talking to Plants (or Animals) </Talking to Plants (or Animals)> prompt Do you talk to your plants or animals? Write about this connection and what you imagine they might "say" back.
|
| 69 |
+
<Food Writing> </Food Writing> <Celebration> </Celebration> <The Birthday Cake </The Birthday Cake> prompt Reflect on the significance of birthday cakes (or another celebratory food). What memories or emotions do they evoke?
|
| 70 |
+
<Profile> </Profile> <Age> </Age> <Wisdom from an Elder </Wisdom from an Elder> prompt Interview an elderly person about their life experiences and the most important lessons they've learned.
|
| 71 |
+
<Cultural Commentary> </Cultural Commentary> <Consumerism> </Consumerism> <The Things We Own </The Things We Own> prompt Reflect on our relationship with material possessions. Do we own our things, or do they own us?
|
| 72 |
+
<Historical Reflection> </Historical Reflection> <Music> </Music> <The Soundtrack of a Decade </The Soundtrack of a Decade> prompt Choose a decade from the past and explore its popular music. What did the music reflect about the society and events of that time?
|
| 73 |
+
<Humorous Essay> </Humorous Essay> <Self-deprecation> </Self-deprecation> <Ode to My Clumsiness </Ode to My Clumsiness> prompt Write a humorous ode or essay celebrating (or lamenting) your own clumsiness or a particular goofy trait.
|
| 74 |
+
<How-To / Skill Share> </How-To / Skill Share> <Well-being> </Well-being> <How to Embrace Boredom </How to Embrace Boredom> prompt Offer a personal guide on how to embrace boredom and find creativity or peace within it, rather than constantly seeking distraction.
|
| 75 |
+
<Observational Essay> </Observational Essay> <Human Behavior> </Human Behavior> <The Way We Walk </The Way We Walk> prompt Observe how different people walk. What can you infer or imagine about them from their gait and posture?
|
| 76 |
+
<Reflective Essay> </Reflective Essay> <Regret> </Regret> <A Regret I've Made Peace With> </A Regret I've Made Peace With> prompt Write about a past regret and how you've come to make peace with it or learn from it.
|
| 77 |
+
<Memoir> </Memoir> <Firsts> </Firsts> <My First [Significant Experience] </My First [Significant Experience]> prompt Describe your first experience with something significant (e.g., first concert, first love, first time living alone, first vote).
|
| 78 |
+
<Travel Writing> </Travel Writing> <Transformation> </Transformation> <The Trip That Changed Me </The Trip That Changed Me> prompt Write about a specific trip that significantly changed your perspective or your life in some way.
|
| 79 |
+
<Nature Writing> </Nature Writing> <Resilience> </Resilience> <The Weed That Grew Through Concrete </The Weed That Grew Through Concrete> prompt Observe and write about a plant or weed growing in an unlikely, harsh place (e.g., through concrete, on a barren wall). What does it symbolize?
|
| 80 |
+
<Food Writing> </Food Writing> <Nostalgia> </Nostalgia> <The Lost Snack of My Childhood </The Lost Snack of My Childhood> prompt Write a nostalgic piece about a favorite snack or candy from your childhood that is no longer available or has changed.
|
| 81 |
+
<Profile> </Profile> <Passion> </Passion> <The Volunteer </The Volunteer> prompt Profile someone who dedicates their time to volunteering for a cause they believe in. What motivates them?
|
| 82 |
+
<Cultural Commentary> </Cultural Commentary> <Identity> </Identity> <My Name and Its Story </My Name and Its Story> prompt Explore the story and meaning of your own name. How does it connect to your identity or family history?
|
| 83 |
+
<Historical Reflection> </Historical Reflection> <Local Landmark> </Local Landmark> <The Story Behind the Statue </The Story Behind the Statue> prompt Research and tell the story behind a local statue or monument in your town.
|
| 84 |
+
<Humorous Essay> </Humorous Essay> <Playful> </Playful> <If My Furniture Could Talk </If My Furniture Could Talk> prompt Imagine what your favorite piece of furniture would say about you and your life if it could talk.
|
| 85 |
+
<Listicle> </Listicle> <Happiness> </Listicle> <10 Small Things That Bring Me Joy </10 Small Things That Bring Me Joy> prompt Create a list of 10 small, everyday things that consistently bring you joy, describing why for each.
|
| 86 |
+
<Observational Essay> </Observational Essay> <Urban Life> </Urban Life> <The Graffiti Gallery </The Graffiti Gallery> prompt Observe and describe the graffiti in a specific area. What messages, art, or stories do you see?
|
| 87 |
+
<Reflective Essay> </Reflective Essay> <Dreams> </Dreams> <A Dream I Can't Forget </A Dream I Can't Forget> prompt Describe a particularly vivid or recurring dream you've had. What do you think it means, or how does it make you feel?
|
| 88 |
+
<Memoir> </Memoir> <Loss> </Loss> <Saying Goodbye </Saying Goodbye> prompt Write about the experience of saying goodbye to a person, a place, or a phase of your life.
|
| 89 |
+
<Travel Writing> </Travel Writing> <Sensory Detail> </Sensory Detail> <The Sounds of a Foreign Market </The Sounds of a Foreign Market> prompt Describe the cacophony of sounds you'd experience in a bustling foreign market.
|
| 90 |
+
<Nature Writing> </Nature Writing> <Cycles> </Cycles> <The Life Cycle of a Fallen Leaf </The Life Cycle of a Fallen Leaf> prompt Observe a fallen leaf over time (or imagine its journey) and describe its process of decay and return to the earth.
|
| 91 |
+
<Food Writing> </Food Writing> <Simplicity> </Simplicity> <The Perfect Sandwich </The Perfect Sandwich> prompt Write an ode to the simple perfection of your favorite sandwich. What are its components and why do they work so well together?
|
| 92 |
+
<Profile> </Profile> <Occupation> </Occupation> <A Day in the Life of a [Unusual Job] </A Day in the Life of a [Unusual Job]> prompt Shadow (or imagine) someone with an unusual or often overlooked job for a day and describe their experiences.
|
| 93 |
+
<Cultural Commentary> </Cultural Commentary> <Celebrations> </Celebrations> <How We Celebrate (or Don't) </How We Celebrate (or Don't)> prompt Compare and contrast how different cultures (or even different families) celebrate a common holiday or life event.
|
| 94 |
+
<Historical Reflection> </Historical Reflection> <Objects> </Objects> <An Old Photograph </An Old Photograph> prompt Find an old photograph (of family, or an unknown scene) and write about the story you imagine it tells.
|
| 95 |
+
<Humorous Essay> </Humorous Essay> <Animals> </Animals> <The Day I Tried to Reason with an Animal </The Day I Tried to Reason with an Animal> prompt Recount a funny incident where you tried (and likely failed) to reason with or outsmart an animal.
|
| 96 |
+
<How-To / Skill Share> </How-To / Skill Share> <Mindfulness> </Mindfulness> <How to Find Five Minutes of Peace </How to Find Five Minutes of Peace> prompt Share your personal technique for finding just five minutes of peace and quiet in a busy day.
|
| 97 |
+
<Observational Essay> </Observational Essay> <Commute> </Commute> <The Daily Commute Chronicles </The Daily Commute Chronicles> prompt Turn your daily commute into a series of observations about the people, scenery, or thoughts that pass by.
|
| 98 |
+
<Reflective Essay> </Reflective Essay> <Belonging> </Belonging> <Where I Feel I Truly Belong </Where I Feel I Truly Belong> prompt Describe a place or group where you feel you truly belong, and explore what creates that feeling.
|
| 99 |
+
<Memoir> </Memoir> <Music> </Music> <The Song That Defines a Period of My Life </The Song That Defines a Period of My Life> prompt Write about a song that is inextricably linked to a specific period or event in your life. Why does it hold such power?
|
| 100 |
+
<Travel Writing> </Travel Writing> <Anticipation> </Anticipation> <The Journey, Not Just the Destination </The Journey, Not Just the Destination> prompt Focus on the experience of the journey itself (the flight, train ride, road trip) to a destination, rather than the destination itself.
|
| 101 |
+
<Nature Writing> </Nature Writing> <Weather> </Weather> <Ode to a Thunderstorm </Ode to a Thunderstorm> prompt Describe the experience of a thunderstorm from start to finish, focusing on the sensory details and emotions it evokes.
|
| 102 |
+
<Food Writing> </Food Writing> <Failure> </Failure> <My Most Memorable Cooking Disaster </My Most Memorable Cooking Disaster> prompt Write about your most spectacular and memorable cooking or baking disaster. What went wrong and what did you learn (besides what not to do)?
|
| 103 |
+
<Profile> </Profile> <Everyday People> </Everyday People> <The Barista Who Knows Your Order </The Barista Who Knows Your Order> prompt Write a short profile of someone you encounter regularly in your daily routine (barista, mail carrier, bus driver) and the small impact they have.
|
| 104 |
+
<Cultural Commentary> </Cultural Commentary> <Silence> </Silence> <The Value of Silence in a Noisy World </The Value of Silence in a Noisy World> prompt Reflect on the role and importance of silence in a world that is increasingly filled with noise and distraction.
|
| 105 |
+
<Historical Reflection> </Historical Reflection> <Personal History> </Personal History> <If I Could Ask My Younger Self One Question </If I Could Ask My Younger Self One Question> prompt If you could go back and ask your younger self (e.g., at age 10, 16, or 21) one question, what would it be and why?
|
| 106 |
+
<Humorous Essay> </Humorous Essay> <Public Spaces> </Public Spaces> <Adventures in Public Transportation </Adventures in Public Transportation> prompt Share a funny or bizarre story from your experiences using public transportation.
|
| 107 |
+
<Listicle> </Listicle> <Self-Care> </Listicle> <My Top 3 Ways to Practice Self-Care on a Budget> </My Top 3 Ways to Practice Self-Care on a Budget> prompt List and describe your top three inexpensive or free ways to practice self-care and recharge.
|
| 108 |
+
<Observational Essay> </Observational Essay> <Objects> </Observational Essay> <The Secret Lives of Lost Gloves </The Secret Lives of Lost Gloves> prompt Notice and write about the phenomenon of single, lost gloves you see on the street. What stories could they tell?
|
| 109 |
+
|
lang_state.py
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# In your app.py, or a separate state.py file if you prefer
|
| 2 |
+
|
| 3 |
+
from typing import TypedDict, List, Optional, Dict, Any
|
| 4 |
+
from langchain_core.documents import Document
|
| 5 |
+
from langchain_core.messages import BaseMessage # For storing conversation history
|
| 6 |
+
|
| 7 |
+
class CreativeWriterAssistantState(TypedDict):
|
| 8 |
+
# --- Step 1: Conversation with Guide ---
|
| 9 |
+
# Stores the full conversation history with LLM 1 (The Guide)
|
| 10 |
+
# This helps LLM 1 maintain context if the initial interaction is multi-turn.
|
| 11 |
+
guide_conversation_history: Optional[List[BaseMessage]]
|
| 12 |
+
# The user's expressed interest, summarized or directly captured
|
| 13 |
+
user_writing_interest: Optional[str]
|
| 14 |
+
|
| 15 |
+
# --- Step 2: Query Formulation ---
|
| 16 |
+
# The search query generated by LLM 2 for Qdrant
|
| 17 |
+
qdrant_search_query: Optional[str]
|
| 18 |
+
|
| 19 |
+
# --- Step 3: Retrieval ---
|
| 20 |
+
# The raw prompt document retrieved from Qdrant (could be a list if k > 1)
|
| 21 |
+
retrieved_prompt_document: Optional[Document] # Assuming k=1 for simplicity now
|
| 22 |
+
# If k > 1, this would be List[Document]
|
| 23 |
+
|
| 24 |
+
# --- Step 4: Creative Augmentation ---
|
| 25 |
+
# The "What If...?" question or other augmentation from LLM 3
|
| 26 |
+
prompt_augmentation_text: Optional[str]
|
| 27 |
+
|
| 28 |
+
# --- Step 5: User Writes ---
|
| 29 |
+
# The text written by the user in response to the prompt and augmentation
|
| 30 |
+
user_written_text: Optional[str]
|
| 31 |
+
|
| 32 |
+
# --- Step 6: Feedback from Mentor ---
|
| 33 |
+
# The feedback/observations provided by LLM 4
|
| 34 |
+
mentor_feedback: Optional[str]
|
| 35 |
+
|
| 36 |
+
# --- General / Control ---
|
| 37 |
+
# To track which step we are in or what the next action should be
|
| 38 |
+
# This is useful for routing in LangGraph
|
| 39 |
+
current_step_name: Optional[str]
|
| 40 |
+
# Any error messages encountered during the flow
|
| 41 |
+
error_message: Optional[str]
|
| 42 |
+
# Can hold intermediate LLM responses or other temporary data if needed
|
| 43 |
+
intermediate_llm_responses: Optional[Dict[str, Any]]
|
llm_prompts.py
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# File: llm_prompts.py
|
| 2 |
+
|
| 3 |
+
# System Prompt for LLM 1: "The Guide" (Conversational Interface)
|
| 4 |
+
GUIDE_SYSPROMPT = """\
|
| 5 |
+
You are 'The Guide,' a helpful, focused, and respectful writing assistant. Your primary objective is to understand a user's current writing interest through a brief conversation (typically 1-2 of your questions, with an absolute maximum of 3 direct questions from you to the user, excluding questions asked after using a tool). Your tone should be direct and concise, treating the user as an adult. Avoid exclamatory language.
|
| 6 |
+
|
| 7 |
+
**Your Core Task:** Gather enough information about the user's desired story feeling, genre, or key concepts so that another system can find a suitable writing prompt from a database.
|
| 8 |
+
**Crucially: DO NOT suggest or generate any writing prompts or story ideas yourself.**
|
| 9 |
+
|
| 10 |
+
**Interaction Flow & Questioning Strategy:**
|
| 11 |
+
1. You will be provided with the user's response to the initial greeting: "Hello and welcome... what kind of story, theme, or feeling are you considering today?"
|
| 12 |
+
2. **Analyze the User's First Response:**
|
| 13 |
+
* If the user provides a **clear topic or idea** (e.g., "India news," "a character who feels stuck," "sibling conflict"): Your immediate follow-up question should aim to **clarify or narrow down THAT specific topic** for a story. For example, ask about a particular aspect, desired tone for *that topic*, or a specific angle. **In this scenario, DO NOT immediately ask about entirely different genres or themes again, as the initial greeting already covered this.**
|
| 14 |
+
* If the user's first response is **very vague** (e.g., "I don't know," "you pick," "I feel ugh" without further detail) or they explicitly ask for help choosing a genre/theme: Then it is appropriate to ask ONE gentle, open-ended follow-up question to help them clarify, possibly by suggesting broad categories if they seem truly stuck.
|
| 15 |
+
3. **Subsequent Questions:** Limit your direct questions to the user to a maximum of 3. Each question should be aimed at getting more specific details relevant to a story.
|
| 16 |
+
|
| 17 |
+
**Tool Usage (TavilySearchResults):**
|
| 18 |
+
- If the user mentions a topic that seems to require current factual information (e.g., recent events, specific news you wouldn't know), you **MAY** use the `TavilySearchResults` tool **ONCE** per relevant user statement if you deem it essential for understanding their creative interest.
|
| 19 |
+
- To use the tool: First, think if a search is truly necessary. If yes, call the `tavily_search_results_json` tool with a concise search query.
|
| 20 |
+
- When you receive the search results (as a ToolMessage): **DO NOT output the raw search results to the user.**
|
| 21 |
+
- Instead, **USE the information from the search results to formulate ONE new, FOCUSED clarifying question for the user** to help narrow their interest related to the searched topic. (e.g., User: "that recent Mars mission." Search shows "Perseverance rover." You ask: "Interesting! Were you thinking about something related to the Perseverance rover's findings?")
|
| 22 |
+
|
| 23 |
+
**Ending the Conversation & Signaling Completion:**
|
| 24 |
+
- After you have asked your questions (respecting the maximum of 3 direct questions, plus any single follow-up after a tool use) AND you believe you have a sufficiently clear understanding of the user's core writing interest, your **VERY NEXT RESPONSE to the user MUST BE *ONLY* THE EXACT PHRASE on a new line by itself:
|
| 25 |
+
INTEREST_CONFIRMED_PROCEED**
|
| 26 |
+
- If you have just asked a question (whether a normal conversational one or one informed by tool results) and are waiting for the user's answer, DO NOT use `INTEREST_CONFIRMED_PROCEED` in that message.
|
| 27 |
+
- If the user expresses clear frustration (e.g., "too many questions," "just get on with it"), treat this as a signal to use `INTEREST_CONFIRMED_PROCEED` in your immediate next response, proceeding with the information gathered so far.
|
| 28 |
+
|
| 29 |
+
Remember, your initial interaction with the user starts after they have responded to the system's welcome message.
|
| 30 |
+
"""
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
# System Prompt for LLM 2: "The Query Architect" (Query Formulator)
|
| 35 |
+
# Placeholder: {user_interest_summary} - This will be the summary from LLM 1's conversation.
|
| 36 |
+
# Note: For this LLM, we might pass the user_interest_summary as part of the user message,
|
| 37 |
+
# and the system prompt sets its role. Or, the system prompt itself can contain the placeholder
|
| 38 |
+
# if we structure the LLM call to format the system prompt dynamically.
|
| 39 |
+
# For simplicity here, let's assume the user_interest_summary is passed in the user/human message to LLM2.
|
| 40 |
+
MAKEQUERY_SYSPROMPT = """\
|
| 41 |
+
You are an expert Search Query Optimizer. Your sole task is to convert a user's stated writing interest, which will be provided in the user's message, into a concise and effective search query for a database of creative writing prompts.
|
| 42 |
+
The output query should consist of 2-5 keywords or a very short descriptive phrase.
|
| 43 |
+
Focus on core nouns, adjectives, and verbs.
|
| 44 |
+
Output only the search query itself. Do not include conversational language, questions, or any explanatory text.
|
| 45 |
+
Prioritize terms that will yield good semantic matches for creative writing prompts.
|
| 46 |
+
"""
|
| 47 |
+
|
| 48 |
+
# System Prompt for LLM 3: "The Catalyst" (Creative Augmenter)
|
| 49 |
+
# Placeholder: {retrieved_prompt_text} - This will be the text of the prompt fetched from Qdrant.
|
| 50 |
+
# Similar to LLM2, this placeholder would typically be filled in the user/human message to LLM3.
|
| 51 |
+
AUGMENTOR_SYSPROMPT = """\
|
| 52 |
+
You are a creative catalyst for writers.
|
| 53 |
+
You will be provided with a writing prompt in the user's message.
|
| 54 |
+
Your task is to generate EXACTLY ONE concise and thought-provoking 'What if...?' question related to that prompt.
|
| 55 |
+
This question should suggest a subtle twist, an alternative motivation, or a shift in perspective that could open new narrative possibilities for the writer.
|
| 56 |
+
The question should be a single sentence.
|
| 57 |
+
Present the question directly. Do not add introductory or explanatory phrases. Only output the 'What if...?' question.
|
| 58 |
+
"""
|
| 59 |
+
|
| 60 |
+
# System Prompt for LLM 4: "The Mentor" (Feedback & Wrap-up)
|
| 61 |
+
# Placeholder: {user_written_text} - This will be the text the user wrote.
|
| 62 |
+
# This placeholder would be filled in the user/human message to LLM4.
|
| 63 |
+
MENTOR_SYSPROMPT = """\
|
| 64 |
+
You are 'The Observant Mentor,' a discerning and supportive guide for developing writers.
|
| 65 |
+
You will be provided with a short piece of text written by a user in their message.
|
| 66 |
+
Your task is to:
|
| 67 |
+
1. Carefully read the user's text.
|
| 68 |
+
2. Identify one or two specific, positive aspects of their writing. Examples of aspects to observe include:
|
| 69 |
+
- A vivid description or sensory detail.
|
| 70 |
+
- An interesting character action or thought.
|
| 71 |
+
- A good sense of atmosphere or mood.
|
| 72 |
+
- A clear NARRATIVE VOICE (even if simple).
|
| 73 |
+
- Effective use of a particular word or phrase.
|
| 74 |
+
- A compelling question raised or a moment of intrigue.
|
| 75 |
+
- Good progress on a plot point from the original prompt.
|
| 76 |
+
3. Offer brief, respectful, and observational comments on these identified aspects (1-2 sentences per observation). Frame your comments as observations, not evaluations (e.g., 'I noticed you used [X] which created [Y] effect,' rather than 'Your use of [X] was good').
|
| 77 |
+
4. Do NOT offer criticism, suggestions for improvement, or point out errors. The focus is entirely on positive observation and encouragement.
|
| 78 |
+
5. Avoid general praise like 'Great job!' or 'Well written!'. Be specific to what you observed in their text.
|
| 79 |
+
6. After your observations, you MUST conclude your entire response with the exact phrase: 'You did it. If you write, you are a writer. See you tomorrow.'
|
| 80 |
+
"""
|
pyproject.toml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[project]
|
| 2 |
+
name = "midterm"
|
| 3 |
+
version = "0.1.0"
|
| 4 |
+
description = "Add your description here"
|
| 5 |
+
readme = "README.md"
|
| 6 |
+
requires-python = ">=3.13"
|
| 7 |
+
dependencies = [
|
| 8 |
+
"arxiv==2.1.3",
|
| 9 |
+
"beautifulsoup4==4.13.3",
|
| 10 |
+
"chainlit==2.2.1",
|
| 11 |
+
"cohere==5.13.12",
|
| 12 |
+
"datasets==3.3.1",
|
| 13 |
+
"faiss-cpu==1.10.0",
|
| 14 |
+
"langchain-cohere==0.4.2",
|
| 15 |
+
"langchain-community==0.3.14",
|
| 16 |
+
"langchain-huggingface==0.1.2",
|
| 17 |
+
"langchain-openai==0.2.14",
|
| 18 |
+
"langchain-qdrant==0.2.0",
|
| 19 |
+
"langgraph==0.2.61",
|
| 20 |
+
"lxml==5.3.1",
|
| 21 |
+
"nltk==3.8.1",
|
| 22 |
+
"numpy==2.2.3",
|
| 23 |
+
"pyarrow==19.0.1",
|
| 24 |
+
"pymupdf==1.25.3",
|
| 25 |
+
"python-dotenv>=1.0.1",
|
| 26 |
+
"python-pptx==1.0.2",
|
| 27 |
+
"ragas==0.2.10",
|
| 28 |
+
"sentence-transformers==3.4.1",
|
| 29 |
+
"unstructured==0.14.8",
|
| 30 |
+
"websockets>=15.0",
|
| 31 |
+
]
|
utils/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
# This file can be empty. Its presence tells Python that the utils directory should be treated as a package, allowing us to import modules from it.
|
utils/parse_prompts.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# utils/prompt_parser.py
|
| 2 |
+
|
| 3 |
+
import re
|
| 4 |
+
from typing import List
|
| 5 |
+
from langchain_core.documents import Document
|
| 6 |
+
import os
|
| 7 |
+
|
| 8 |
+
def load_and_parse_prompts(
|
| 9 |
+
file_paths: List[str],
|
| 10 |
+
base_data_directory: str = ""
|
| 11 |
+
) -> List[Document]:
|
| 12 |
+
"""
|
| 13 |
+
Loads and parses prompts from a list of text files.
|
| 14 |
+
|
| 15 |
+
Expects each line in the files to conform to:
|
| 16 |
+
"<GENRE_TAG> </GENRE_TAG> <THEME_TAG> </THEME_TAG> <PROMPT_NAME_TAG> </PROMPT_NAME_TAG> prompt PROMPT_TEXT"
|
| 17 |
+
Example: "<Fantasy> </Fantasy> <Magic> </Magic> <The Accidental Alchemist> </The Accidental Alchemist> prompt ..."
|
| 18 |
+
|
| 19 |
+
Args:
|
| 20 |
+
file_paths (List[str]): A list of paths to the prompt files.
|
| 21 |
+
base_data_directory (str, optional): If provided, file_paths are considered
|
| 22 |
+
relative to this directory. Defaults to "".
|
| 23 |
+
|
| 24 |
+
Returns:
|
| 25 |
+
List[Document]: A list of Langchain Document objects, or an empty list on error/no data.
|
| 26 |
+
"""
|
| 27 |
+
all_parsed_prompts: List[Document] = []
|
| 28 |
+
# print(f"DEBUG: Attempting to load prompts from files: {file_paths} with base: '{base_data_directory}'")
|
| 29 |
+
|
| 30 |
+
for relative_or_absolute_path in file_paths:
|
| 31 |
+
if base_data_directory:
|
| 32 |
+
current_file_path = os.path.join(base_data_directory, relative_or_absolute_path)
|
| 33 |
+
else:
|
| 34 |
+
current_file_path = relative_or_absolute_path
|
| 35 |
+
|
| 36 |
+
# print(f"DEBUG: Processing file: {current_file_path}")
|
| 37 |
+
|
| 38 |
+
prompts_from_this_file: List[Document] = []
|
| 39 |
+
try:
|
| 40 |
+
with open(current_file_path, 'r', encoding='utf-8') as f:
|
| 41 |
+
for line_number, line in enumerate(f, 1):
|
| 42 |
+
line = line.strip()
|
| 43 |
+
if not line:
|
| 44 |
+
continue
|
| 45 |
+
|
| 46 |
+
# --- CORRECTED REGULAR EXPRESSION ---
|
| 47 |
+
# This regex now captures the content of the first tag in each pair.
|
| 48 |
+
# It looks for <WORD> </WORD> structure.
|
| 49 |
+
match = re.match(
|
| 50 |
+
r"<([\w-]+)\s*>\s*</\1\s*>\s*" # Group 1: Genre (allows hyphens)
|
| 51 |
+
r"<([\w-]+)\s*>\s*</\2\s*>\s*" # Group 2: Theme (allows hyphens)
|
| 52 |
+
r"<([^>]+)\s*>\s*</\3\s*>\s*" # Group 3: Prompt Name (allows almost anything but '>')
|
| 53 |
+
r"prompt\s+(.*)", # Group 4: Capture the prompt text
|
| 54 |
+
line
|
| 55 |
+
)
|
| 56 |
+
|
| 57 |
+
if match:
|
| 58 |
+
# The captured groups are now the tag names themselves
|
| 59 |
+
genre = match.group(1).strip() # e.g., "Fantasy"
|
| 60 |
+
theme = match.group(2).strip() # e.g., "Magic"
|
| 61 |
+
prompt_name = match.group(3).strip() # e.g., "The Accidental Alchemist"
|
| 62 |
+
prompt_text = match.group(4).strip()
|
| 63 |
+
|
| 64 |
+
if not prompt_text:
|
| 65 |
+
# print(f"DEBUG: Parsed empty prompt text on line {line_number} in {current_file_path}")
|
| 66 |
+
continue
|
| 67 |
+
|
| 68 |
+
doc = Document(
|
| 69 |
+
page_content=prompt_text,
|
| 70 |
+
metadata={
|
| 71 |
+
"genre": genre,
|
| 72 |
+
"theme": theme,
|
| 73 |
+
"prompt_name": prompt_name,
|
| 74 |
+
"source_file": current_file_path,
|
| 75 |
+
"source_line_number": line_number
|
| 76 |
+
}
|
| 77 |
+
)
|
| 78 |
+
prompts_from_this_file.append(doc)
|
| 79 |
+
# else:
|
| 80 |
+
# print(f"DEBUG: Could not parse line {line_number} in {current_file_path}: {line}")
|
| 81 |
+
except FileNotFoundError:
|
| 82 |
+
print(f"Error (within load_and_parse_prompts): Prompts file not found at {current_file_path}.")
|
| 83 |
+
continue
|
| 84 |
+
except Exception as e:
|
| 85 |
+
print(f"Error (within load_and_parse_prompts): An unexpected error occurred while reading {current_file_path}: {e}")
|
| 86 |
+
continue
|
| 87 |
+
|
| 88 |
+
if prompts_from_this_file:
|
| 89 |
+
all_parsed_prompts.extend(prompts_from_this_file)
|
| 90 |
+
# print(f"DEBUG: Successfully parsed {len(prompts_from_this_file)} prompts from {current_file_path}.")
|
| 91 |
+
|
| 92 |
+
# print(f"DEBUG: Total prompts parsed from all files: {len(all_parsed_prompts)}.")
|
| 93 |
+
return all_parsed_prompts
|
| 94 |
+
|
| 95 |
+
# --- Test Harness / Example Usage ---
|
| 96 |
+
if __name__ == "__main__":
|
| 97 |
+
print("--- Running test for prompt_parser.py (with corrected regex) ---")
|
| 98 |
+
|
| 99 |
+
test_data_dir = os.path.join("..", "test_data_temp_v2")
|
| 100 |
+
if not os.path.exists(test_data_dir):
|
| 101 |
+
os.makedirs(test_data_dir)
|
| 102 |
+
|
| 103 |
+
test_file_actual_format_name = "actual_format_prompts.txt"
|
| 104 |
+
test_file_actual_format_path = os.path.join(test_data_dir, test_file_actual_format_name)
|
| 105 |
+
|
| 106 |
+
# Write sample data using the ACTUAL format
|
| 107 |
+
with open(test_file_actual_format_path, "w", encoding="utf-8") as f:
|
| 108 |
+
f.write("<Fantasy> </Fantasy> <Magic> </Magic> <The Accidental Alchemist> </The Accidental Alchemist> prompt A clumsy apprentice baker accidentally creates a potion.\n")
|
| 109 |
+
f.write("<Sci-Fi> </Sci-Fi> <Exploration> </Exploration> <Distant Worlds> </Distant Worlds> prompt A probe reaches a planet with sentient flora.\n")
|
| 110 |
+
f.write("<Humor> </Humor> <Animals> </Animals> <The Talking Squirrel> </The Talking Squirrel> prompt A squirrel starts giving unsolicited life advice to park-goers.\n")
|
| 111 |
+
f.write("This is a malformed line and should be skipped.\n")
|
| 112 |
+
|
| 113 |
+
print(f"\nCreated dummy test file in: {test_data_dir} with actual format.")
|
| 114 |
+
|
| 115 |
+
# --- Test Case: Valid file with actual format ---
|
| 116 |
+
print("\n--- Test Case: Loading from valid file with actual format ---")
|
| 117 |
+
documents = load_and_parse_prompts(file_paths=[test_file_actual_format_name], base_data_directory=test_data_dir)
|
| 118 |
+
|
| 119 |
+
assert len(documents) == 3, f"Test Case Failed: Expected 3 documents, got {len(documents)}"
|
| 120 |
+
print(f"Test Case Passed: Loaded {len(documents)} documents.")
|
| 121 |
+
|
| 122 |
+
if documents:
|
| 123 |
+
print("Sample of loaded documents (Test Case - Actual Format):")
|
| 124 |
+
# Check first document
|
| 125 |
+
doc0 = documents[0]
|
| 126 |
+
assert doc0.metadata["genre"] == "Fantasy", f"Genre mismatch: {doc0.metadata['genre']}"
|
| 127 |
+
assert doc0.metadata["theme"] == "Magic", f"Theme mismatch: {doc0.metadata['theme']}"
|
| 128 |
+
assert doc0.metadata["prompt_name"] == "The Accidental Alchemist", f"Name mismatch: {doc0.metadata['prompt_name']}"
|
| 129 |
+
assert "A clumsy apprentice baker" in doc0.page_content, "Content mismatch"
|
| 130 |
+
print(f" Doc 0: Genre='{doc0.metadata['genre']}', Theme='{doc0.metadata['theme']}', Name='{doc0.metadata['prompt_name']}'")
|
| 131 |
+
|
| 132 |
+
# Check second document
|
| 133 |
+
doc1 = documents[1]
|
| 134 |
+
assert doc1.metadata["genre"] == "Sci-Fi", f"Genre mismatch: {doc1.metadata['genre']}"
|
| 135 |
+
assert doc1.metadata["theme"] == "Exploration", f"Theme mismatch: {doc1.metadata['theme']}"
|
| 136 |
+
assert doc1.metadata["prompt_name"] == "Distant Worlds", f"Name mismatch: {doc1.metadata['prompt_name']}"
|
| 137 |
+
print(f" Doc 1: Genre='{doc1.metadata['genre']}', Theme='{doc1.metadata['theme']}', Name='{doc1.metadata['prompt_name']}'")
|
| 138 |
+
|
| 139 |
+
# Clean up
|
| 140 |
+
print(f"\nCleaning up test file in: {test_data_dir}")
|
| 141 |
+
os.remove(test_file_actual_format_path)
|
| 142 |
+
os.rmdir(test_data_dir)
|
| 143 |
+
print("Cleanup complete.")
|
| 144 |
+
|
| 145 |
+
print("\n--- All prompt_parser.py tests (with corrected regex) finished ---")
|
uv.lock
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|