T-K-O-H commited on
Commit
d184dfc
·
0 Parent(s):

Initial commit without node_modules

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .dockerignore +59 -0
  2. .gitattributes +56 -0
  3. .gitignore +52 -0
  4. Dockerfile +38 -0
  5. README.md +64 -0
  6. aimakerspace/__init__.py +0 -0
  7. aimakerspace/openai_utils/__init__.py +0 -0
  8. aimakerspace/openai_utils/chatmodel.py +59 -0
  9. aimakerspace/openai_utils/embedding.py +59 -0
  10. aimakerspace/openai_utils/prompts.py +78 -0
  11. aimakerspace/text_utils.py +171 -0
  12. aimakerspace/vectordatabase.py +81 -0
  13. app.py +139 -0
  14. backend/.chainlit/config.toml +88 -0
  15. backend/.chainlit/translations/bn.json +244 -0
  16. backend/.chainlit/translations/en-US.json +269 -0
  17. backend/.chainlit/translations/gu.json +244 -0
  18. backend/.chainlit/translations/he-IL.json +244 -0
  19. backend/.chainlit/translations/hi.json +244 -0
  20. backend/.chainlit/translations/ja.json +242 -0
  21. backend/.chainlit/translations/kn.json +244 -0
  22. backend/.chainlit/translations/ml.json +244 -0
  23. backend/.chainlit/translations/mr.json +244 -0
  24. backend/.chainlit/translations/nl-NL.json +242 -0
  25. backend/.chainlit/translations/ta.json +244 -0
  26. backend/.chainlit/translations/te.json +244 -0
  27. backend/.chainlit/translations/zh-CN.json +243 -0
  28. backend/Dockerfile +24 -0
  29. backend/aimakerspace/__init__.py +5 -0
  30. backend/aimakerspace/openai_utils/chatmodel.py +51 -0
  31. backend/aimakerspace/openai_utils/embedding.py +55 -0
  32. backend/aimakerspace/openai_utils/prompts.py +25 -0
  33. backend/aimakerspace/text_utils.py +156 -0
  34. backend/aimakerspace/vectordatabase.py +53 -0
  35. backend/main.py +277 -0
  36. backend/pyproject.toml +21 -0
  37. backend/requirements.txt +9 -0
  38. backend/test.py +7 -0
  39. backend/test.txt +33 -0
  40. backend/test_app.py +7 -0
  41. backend/test_rag.py +85 -0
  42. chainlit.md +3 -0
  43. docker-compose.yml +23 -0
  44. frontend/Dockerfile +16 -0
  45. frontend/package-lock.json +0 -0
  46. frontend/package.json +39 -0
  47. frontend/public/index.html +18 -0
  48. frontend/src/App.css +3 -0
  49. frontend/src/App.js +3 -0
  50. frontend/src/index.js +3 -0
.dockerignore ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Git
2
+ .git
3
+ .gitignore
4
+ .gitattributes
5
+
6
+ # Python
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+ *.so
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+ .env
29
+
30
+ # Node
31
+ node_modules/
32
+ npm-debug.log*
33
+ yarn-debug.log*
34
+ yarn-error.log*
35
+ .env
36
+ .env.local
37
+ .env.development.local
38
+ .env.test.local
39
+ .env.production.local
40
+
41
+ # IDE
42
+ .idea/
43
+ .vscode/
44
+ *.swp
45
+ *.swo
46
+ *~
47
+
48
+ # OS
49
+ .DS_Store
50
+ Thumbs.db
51
+
52
+ # Other
53
+ .chainlit/
54
+ .venv/
55
+ .files/
56
+ .cache/
57
+ frontend/node_modules/
58
+ frontend/.cache/
59
+ *.pyc
.gitattributes ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
+ # Frontend specific large files
37
+ frontend/node_modules/.cache/** filter=lfs diff=lfs merge=lfs -text
38
+ frontend/node_modules/typescript/lib/*.js filter=lfs diff=lfs merge=lfs -text
39
+ frontend/node_modules/**/dist/** filter=lfs diff=lfs merge=lfs -text
40
+ frontend/node_modules/**/build/** filter=lfs diff=lfs merge=lfs -text
41
+ frontend/build/** filter=lfs diff=lfs merge=lfs -text
42
+ *.js filter=lfs diff=lfs merge=lfs -text
43
+ *.js.map filter=lfs diff=lfs merge=lfs -text
44
+ *.css filter=lfs diff=lfs merge=lfs -text
45
+ *.css.map filter=lfs diff=lfs merge=lfs -text
46
+ *.png filter=lfs diff=lfs merge=lfs -text
47
+ *.jpg filter=lfs diff=lfs merge=lfs -text
48
+ *.jpeg filter=lfs diff=lfs merge=lfs -text
49
+ *.gif filter=lfs diff=lfs merge=lfs -text
50
+ *.ico filter=lfs diff=lfs merge=lfs -text
51
+ *.svg filter=lfs diff=lfs merge=lfs -text
52
+ *.woff filter=lfs diff=lfs merge=lfs -text
53
+ *.woff2 filter=lfs diff=lfs merge=lfs -text
54
+ *.ttf filter=lfs diff=lfs merge=lfs -text
55
+ *.eot filter=lfs diff=lfs merge=lfs -text
56
+ *.otf filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.so
5
+ .Python
6
+ build/
7
+ develop-eggs/
8
+ dist/
9
+ downloads/
10
+ eggs/
11
+ .eggs/
12
+ lib/
13
+ lib64/
14
+ parts/
15
+ sdist/
16
+ var/
17
+ wheels/
18
+ *.egg-info/
19
+ .installed.cfg
20
+ *.egg
21
+ MANIFEST
22
+ .env
23
+
24
+ # Node
25
+ node_modules/
26
+ npm-debug.log*
27
+ yarn-debug.log*
28
+ yarn-error.log*
29
+ .env.local
30
+ .env.development.local
31
+ .env.test.local
32
+ .env.production.local
33
+
34
+ # IDE
35
+ .idea/
36
+ .vscode/
37
+ *.swp
38
+ *.swo
39
+
40
+ # OS
41
+ .DS_Store
42
+ Thumbs.db
43
+
44
+ # Virtual Environment
45
+ venv/
46
+ env/
47
+ ENV/
48
+
49
+ # Misc
50
+ *.log
51
+ .cache/
52
+ .pytest_cache/
Dockerfile ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install system dependencies
6
+ RUN apt-get update && apt-get install -y \
7
+ build-essential \
8
+ nodejs \
9
+ npm \
10
+ && rm -rf /var/lib/apt/lists/*
11
+
12
+ # Install Python dependencies
13
+ COPY backend/requirements.txt .
14
+ RUN pip install --no-cache-dir -r requirements.txt
15
+
16
+ # Copy frontend source and install dependencies
17
+ COPY frontend/ ./frontend/
18
+ WORKDIR /app/frontend
19
+ RUN npm install
20
+ RUN npm run build
21
+
22
+ # Copy backend source
23
+ WORKDIR /app
24
+ COPY backend/ .
25
+
26
+ # Install serve to run the frontend
27
+ RUN npm install -g serve
28
+
29
+ # Expose the port (Hugging Face requires 7860)
30
+ EXPOSE 7860
31
+
32
+ # Set environment variables
33
+ ENV PYTHONUNBUFFERED=1
34
+ ENV PORT=7860
35
+ ENV REACT_APP_API_URL=https://shipmaster1-pythonicragreact.hf.space
36
+
37
+ # Start both services
38
+ CMD ["sh", "-c", "serve -s frontend/build -l 3000 & uvicorn main:app --host 0.0.0.0 --port 7860"]
README.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: PythonicRAG
3
+ emoji: 🔍
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: docker
7
+ pinned: false
8
+ ---
9
+
10
+ # PythonicRAG
11
+
12
+ A RAG (Retrieval-Augmented Generation) application that allows you to upload PDF documents and ask questions about their content.
13
+
14
+ ## Features
15
+
16
+ - Upload PDF documents
17
+ - Ask questions about the content
18
+ - Get AI-powered answers with relevant context
19
+ - Modern React frontend with Material UI
20
+ - FastAPI backend with vector search
21
+
22
+ ## How to Use
23
+
24
+ 1. Upload a PDF document (up to 2MB in size)
25
+ 2. Wait for the document to be processed
26
+ 3. Ask questions about the content
27
+ 4. View the answers and relevant context
28
+
29
+ ## Environment Variables
30
+
31
+ The following environment variables need to be set in the Hugging Face Space settings:
32
+
33
+ - `OPENAI_API_KEY`: Your OpenAI API key for the AI model
34
+
35
+ ## Technical Details
36
+
37
+ - Frontend: React with Material UI
38
+ - Backend: FastAPI with vector search
39
+ - Database: Vector database for semantic search
40
+ - AI Model: OpenAI's GPT model
41
+
42
+ ## Local Development
43
+
44
+ To run locally:
45
+
46
+ 1. Clone the repository
47
+ 2. Install dependencies:
48
+ ```bash
49
+ cd frontend && npm install
50
+ cd ../backend && pip install -r requirements.txt
51
+ ```
52
+ 3. Set environment variables
53
+ 4. Run the services:
54
+ ```bash
55
+ # Terminal 1 (Backend)
56
+ cd backend && uvicorn main:app --host 0.0.0.0 --port 7860
57
+
58
+ # Terminal 2 (Frontend)
59
+ cd frontend && npm start
60
+ ```
61
+
62
+ ## License
63
+
64
+ MIT
aimakerspace/__init__.py ADDED
File without changes
aimakerspace/openai_utils/__init__.py ADDED
File without changes
aimakerspace/openai_utils/chatmodel.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from openai import OpenAI, AsyncOpenAI
2
+ from dotenv import load_dotenv
3
+ import os
4
+
5
+ load_dotenv()
6
+
7
+
8
+ class ChatOpenAI:
9
+ def __init__(self, model_name: str = "gpt-4-1106-preview"):
10
+ self.model_name = model_name
11
+ self.openai_api_key = os.getenv("OPENAI_API_KEY")
12
+ if self.openai_api_key is None:
13
+ raise ValueError("OPENAI_API_KEY is not set")
14
+ self.client = OpenAI()
15
+ self.async_client = AsyncOpenAI()
16
+
17
+ def run(self, messages, text_only: bool = True, **kwargs):
18
+ if not isinstance(messages, list):
19
+ raise ValueError("messages must be a list")
20
+
21
+ response = self.client.chat.completions.create(
22
+ model=self.model_name, messages=messages, **kwargs
23
+ )
24
+
25
+ if text_only:
26
+ return response.choices[0].message.content
27
+
28
+ return response
29
+
30
+ async def agenerate(self, messages, **kwargs):
31
+ if not isinstance(messages, list):
32
+ raise ValueError("messages must be a list")
33
+
34
+ try:
35
+ response = await self.async_client.chat.completions.create(
36
+ model=self.model_name,
37
+ messages=[{"role": "system" if i == 0 else "user", "content": msg} for i, msg in enumerate(messages)],
38
+ **kwargs
39
+ )
40
+ return response.choices[0].message.content
41
+ except Exception as e:
42
+ print(f"Error in agenerate: {str(e)}")
43
+ raise
44
+
45
+ async def astream(self, messages, **kwargs):
46
+ if not isinstance(messages, list):
47
+ raise ValueError("messages must be a list")
48
+
49
+ stream = await self.async_client.chat.completions.create(
50
+ model=self.model_name,
51
+ messages=messages,
52
+ stream=True,
53
+ **kwargs
54
+ )
55
+
56
+ async for chunk in stream:
57
+ content = chunk.choices[0].delta.content
58
+ if content is not None:
59
+ yield content
aimakerspace/openai_utils/embedding.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dotenv import load_dotenv
2
+ from openai import AsyncOpenAI, OpenAI
3
+ import openai
4
+ from typing import List
5
+ import os
6
+ import asyncio
7
+
8
+
9
+ class EmbeddingModel:
10
+ def __init__(self, embeddings_model_name: str = "text-embedding-3-small"):
11
+ load_dotenv()
12
+ self.openai_api_key = os.getenv("OPENAI_API_KEY")
13
+ self.async_client = AsyncOpenAI()
14
+ self.client = OpenAI()
15
+
16
+ if self.openai_api_key is None:
17
+ raise ValueError(
18
+ "OPENAI_API_KEY environment variable is not set. Please set it to your OpenAI API key."
19
+ )
20
+ openai.api_key = self.openai_api_key
21
+ self.embeddings_model_name = embeddings_model_name
22
+
23
+ async def async_get_embeddings(self, list_of_text: List[str]) -> List[List[float]]:
24
+ embedding_response = await self.async_client.embeddings.create(
25
+ input=list_of_text, model=self.embeddings_model_name
26
+ )
27
+
28
+ return [embeddings.embedding for embeddings in embedding_response.data]
29
+
30
+ async def async_get_embedding(self, text: str) -> List[float]:
31
+ embedding = await self.async_client.embeddings.create(
32
+ input=text, model=self.embeddings_model_name
33
+ )
34
+
35
+ return embedding.data[0].embedding
36
+
37
+ def get_embeddings(self, list_of_text: List[str]) -> List[List[float]]:
38
+ embedding_response = self.client.embeddings.create(
39
+ input=list_of_text, model=self.embeddings_model_name
40
+ )
41
+
42
+ return [embeddings.embedding for embeddings in embedding_response.data]
43
+
44
+ def get_embedding(self, text: str) -> List[float]:
45
+ embedding = self.client.embeddings.create(
46
+ input=text, model=self.embeddings_model_name
47
+ )
48
+
49
+ return embedding.data[0].embedding
50
+
51
+
52
+ if __name__ == "__main__":
53
+ embedding_model = EmbeddingModel()
54
+ print(asyncio.run(embedding_model.async_get_embedding("Hello, world!")))
55
+ print(
56
+ asyncio.run(
57
+ embedding_model.async_get_embeddings(["Hello, world!", "Goodbye, world!"])
58
+ )
59
+ )
aimakerspace/openai_utils/prompts.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+
3
+
4
+ class BasePrompt:
5
+ def __init__(self, prompt):
6
+ """
7
+ Initializes the BasePrompt object with a prompt template.
8
+
9
+ :param prompt: A string that can contain placeholders within curly braces
10
+ """
11
+ self.prompt = prompt
12
+ self._pattern = re.compile(r"\{([^}]+)\}")
13
+
14
+ def format_prompt(self, **kwargs):
15
+ """
16
+ Formats the prompt string using the keyword arguments provided.
17
+
18
+ :param kwargs: The values to substitute into the prompt string
19
+ :return: The formatted prompt string
20
+ """
21
+ matches = self._pattern.findall(self.prompt)
22
+ return self.prompt.format(**{match: kwargs.get(match, "") for match in matches})
23
+
24
+ def get_input_variables(self):
25
+ """
26
+ Gets the list of input variable names from the prompt string.
27
+
28
+ :return: List of input variable names
29
+ """
30
+ return self._pattern.findall(self.prompt)
31
+
32
+
33
+ class RolePrompt(BasePrompt):
34
+ def __init__(self, prompt, role: str):
35
+ """
36
+ Initializes the RolePrompt object with a prompt template and a role.
37
+
38
+ :param prompt: A string that can contain placeholders within curly braces
39
+ :param role: The role for the message ('system', 'user', or 'assistant')
40
+ """
41
+ super().__init__(prompt)
42
+ self.role = role
43
+
44
+ def create_message(self, format=True, **kwargs):
45
+ """
46
+ Creates a message dictionary with a role and a formatted message.
47
+
48
+ :param kwargs: The values to substitute into the prompt string
49
+ :return: Dictionary containing the role and the formatted message
50
+ """
51
+ if format:
52
+ return {"role": self.role, "content": self.format_prompt(**kwargs)}
53
+
54
+ return {"role": self.role, "content": self.prompt}
55
+
56
+
57
+ class SystemRolePrompt(RolePrompt):
58
+ def __init__(self, prompt: str):
59
+ super().__init__(prompt, "system")
60
+
61
+
62
+ class UserRolePrompt(RolePrompt):
63
+ def __init__(self, prompt: str):
64
+ super().__init__(prompt, "user")
65
+
66
+
67
+ class AssistantRolePrompt(RolePrompt):
68
+ def __init__(self, prompt: str):
69
+ super().__init__(prompt, "assistant")
70
+
71
+
72
+ if __name__ == "__main__":
73
+ prompt = BasePrompt("Hello {name}, you are {age} years old")
74
+ print(prompt.format_prompt(name="John", age=30))
75
+
76
+ prompt = SystemRolePrompt("Hello {name}, you are {age} years old")
77
+ print(prompt.create_message(name="John", age=30))
78
+ print(prompt.get_input_variables())
aimakerspace/text_utils.py ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from typing import List
3
+ import PyPDF2
4
+
5
+
6
+ class TextFileLoader:
7
+ def __init__(self, path: str, encoding: str = "utf-8"):
8
+ self.documents = []
9
+ self.path = path
10
+ self.encoding = encoding
11
+
12
+ def load(self):
13
+ if os.path.isdir(self.path):
14
+ self.load_directory()
15
+ elif os.path.isfile(self.path) and self.path.endswith(".txt"):
16
+ self.load_file()
17
+ else:
18
+ raise ValueError(
19
+ "Provided path is neither a valid directory nor a .txt file."
20
+ )
21
+
22
+ def load_file(self):
23
+ with open(self.path, "r", encoding=self.encoding) as f:
24
+ self.documents.append(f.read())
25
+
26
+ def load_directory(self):
27
+ for root, _, files in os.walk(self.path):
28
+ for file in files:
29
+ if file.endswith(".txt"):
30
+ with open(
31
+ os.path.join(root, file), "r", encoding=self.encoding
32
+ ) as f:
33
+ self.documents.append(f.read())
34
+
35
+ def load_documents(self):
36
+ self.load()
37
+ return self.documents
38
+
39
+
40
+ class CharacterTextSplitter:
41
+ def __init__(
42
+ self,
43
+ chunk_size: int = 1000,
44
+ chunk_overlap: int = 200,
45
+ ):
46
+ assert (
47
+ chunk_size > chunk_overlap
48
+ ), "Chunk size must be greater than chunk overlap"
49
+
50
+ self.chunk_size = chunk_size
51
+ self.chunk_overlap = chunk_overlap
52
+
53
+ def split(self, text: str) -> List[str]:
54
+ chunks = []
55
+ for i in range(0, len(text), self.chunk_size - self.chunk_overlap):
56
+ chunks.append(text[i : i + self.chunk_size])
57
+ return chunks
58
+
59
+ def split_texts(self, texts: List[str]) -> List[str]:
60
+ chunks = []
61
+ for text in texts:
62
+ chunks.extend(self.split(text))
63
+ return chunks
64
+
65
+
66
+ class PDFLoader:
67
+ def __init__(self, path: str):
68
+ self.documents = []
69
+ self.path = path
70
+ print(f"PDFLoader initialized with path: {self.path}")
71
+
72
+ def load(self):
73
+ print(f"Loading PDF from path: {self.path}")
74
+ print(f"Path exists: {os.path.exists(self.path)}")
75
+ print(f"Is file: {os.path.isfile(self.path)}")
76
+ print(f"Is directory: {os.path.isdir(self.path)}")
77
+ print(f"File permissions: {oct(os.stat(self.path).st_mode)[-3:]}")
78
+
79
+ try:
80
+ # Try to open the file first to verify access
81
+ with open(self.path, 'rb') as test_file:
82
+ pass
83
+
84
+ # If we can open it, proceed with loading
85
+ self.load_file()
86
+
87
+ except IOError as e:
88
+ print(f"IOError accessing file at '{self.path}': {str(e)}")
89
+ raise ValueError(f"Cannot access file at '{self.path}': {str(e)}")
90
+ except Exception as e:
91
+ print(f"Error processing file at '{self.path}': {str(e)}")
92
+ raise ValueError(f"Error processing file at '{self.path}': {str(e)}")
93
+
94
+ def load_file(self):
95
+ try:
96
+ with open(self.path, 'rb') as file:
97
+ # Create PDF reader object
98
+ pdf_reader = PyPDF2.PdfReader(file)
99
+
100
+ if len(pdf_reader.pages) == 0:
101
+ raise ValueError("PDF file is empty")
102
+
103
+ # Extract text from each page
104
+ text = ""
105
+ for page in pdf_reader.pages:
106
+ try:
107
+ page_text = page.extract_text()
108
+ if page_text:
109
+ text += page_text + "\n"
110
+ except Exception as e:
111
+ print(f"Error extracting text from page: {str(e)}")
112
+
113
+ if not text.strip():
114
+ raise ValueError("No text could be extracted from the PDF")
115
+
116
+ self.documents.append(text)
117
+ print(f"Successfully extracted {len(text)} characters from PDF")
118
+
119
+ except PyPDF2.PdfReadError as e:
120
+ print(f"PDF read error: {str(e)}")
121
+ raise ValueError(f"Error reading PDF file: {str(e)}")
122
+ except Exception as e:
123
+ print(f"Error in load_file: {str(e)}")
124
+ raise ValueError(f"Error processing PDF file: {str(e)}")
125
+
126
+ def load_directory(self):
127
+ for root, _, files in os.walk(self.path):
128
+ for file in files:
129
+ if file.lower().endswith('.pdf'):
130
+ file_path = os.path.join(root, file)
131
+ try:
132
+ with open(file_path, 'rb') as f:
133
+ pdf_reader = PyPDF2.PdfReader(f)
134
+
135
+ # Extract text from each page
136
+ text = ""
137
+ for page in pdf_reader.pages:
138
+ try:
139
+ page_text = page.extract_text()
140
+ if page_text:
141
+ text += page_text + "\n"
142
+ except Exception as e:
143
+ print(f"Error extracting text from page in {file}: {str(e)}")
144
+
145
+ if text.strip():
146
+ self.documents.append(text)
147
+ print(f"Successfully extracted {len(text)} characters from {file}")
148
+ else:
149
+ print(f"No text could be extracted from {file}")
150
+
151
+ except Exception as e:
152
+ print(f"Error processing {file}: {str(e)}")
153
+
154
+ def load_documents(self):
155
+ self.load()
156
+ return self.documents
157
+
158
+
159
+ if __name__ == "__main__":
160
+ loader = TextFileLoader("data/KingLear.txt")
161
+ loader.load()
162
+ splitter = CharacterTextSplitter()
163
+ chunks = splitter.split_texts(loader.documents)
164
+ print(len(chunks))
165
+ print(chunks[0])
166
+ print("--------")
167
+ print(chunks[1])
168
+ print("--------")
169
+ print(chunks[-2])
170
+ print("--------")
171
+ print(chunks[-1])
aimakerspace/vectordatabase.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ from collections import defaultdict
3
+ from typing import List, Tuple, Callable
4
+ from aimakerspace.openai_utils.embedding import EmbeddingModel
5
+ import asyncio
6
+
7
+
8
+ def cosine_similarity(vector_a: np.array, vector_b: np.array) -> float:
9
+ """Computes the cosine similarity between two vectors."""
10
+ dot_product = np.dot(vector_a, vector_b)
11
+ norm_a = np.linalg.norm(vector_a)
12
+ norm_b = np.linalg.norm(vector_b)
13
+ return dot_product / (norm_a * norm_b)
14
+
15
+
16
+ class VectorDatabase:
17
+ def __init__(self, embedding_model: EmbeddingModel = None):
18
+ self.vectors = defaultdict(np.array)
19
+ self.embedding_model = embedding_model or EmbeddingModel()
20
+
21
+ def insert(self, key: str, vector: np.array) -> None:
22
+ self.vectors[key] = vector
23
+
24
+ def search(
25
+ self,
26
+ query_vector: np.array,
27
+ k: int,
28
+ distance_measure: Callable = cosine_similarity,
29
+ ) -> List[Tuple[str, float]]:
30
+ scores = [
31
+ (key, distance_measure(query_vector, vector))
32
+ for key, vector in self.vectors.items()
33
+ ]
34
+ return sorted(scores, key=lambda x: x[1], reverse=True)[:k]
35
+
36
+ def search_by_text(
37
+ self,
38
+ query_text: str,
39
+ k: int,
40
+ distance_measure: Callable = cosine_similarity,
41
+ return_as_text: bool = False,
42
+ ) -> List[Tuple[str, float]]:
43
+ query_vector = self.embedding_model.get_embedding(query_text)
44
+ results = self.search(query_vector, k, distance_measure)
45
+ return [result[0] for result in results] if return_as_text else results
46
+
47
+ def retrieve_from_key(self, key: str) -> np.array:
48
+ return self.vectors.get(key, None)
49
+
50
+ async def abuild_from_list(self, list_of_text: List[str]) -> "VectorDatabase":
51
+ embeddings = await self.embedding_model.async_get_embeddings(list_of_text)
52
+ for text, embedding in zip(list_of_text, embeddings):
53
+ self.insert(text, np.array(embedding))
54
+ return self
55
+
56
+
57
+ if __name__ == "__main__":
58
+ list_of_text = [
59
+ "I like to eat broccoli and bananas.",
60
+ "I ate a banana and spinach smoothie for breakfast.",
61
+ "Chinchillas and kittens are cute.",
62
+ "My sister adopted a kitten yesterday.",
63
+ "Look at this cute hamster munching on a piece of broccoli.",
64
+ ]
65
+
66
+ vector_db = VectorDatabase()
67
+ vector_db = asyncio.run(vector_db.abuild_from_list(list_of_text))
68
+ k = 2
69
+
70
+ searched_vector = vector_db.search_by_text("I think fruit is awesome!", k=k)
71
+ print(f"Closest {k} vector(s):", searched_vector)
72
+
73
+ retrieved_vector = vector_db.retrieve_from_key(
74
+ "I like to eat broccoli and bananas."
75
+ )
76
+ print("Retrieved vector:", retrieved_vector)
77
+
78
+ relevant_texts = vector_db.search_by_text(
79
+ "I think fruit is awesome!", k=k, return_as_text=True
80
+ )
81
+ print(f"Closest {k} text(s):", relevant_texts)
app.py ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from typing import List
3
+ from chainlit.types import AskFileResponse
4
+ from aimakerspace.text_utils import CharacterTextSplitter, TextFileLoader, PDFLoader
5
+ from aimakerspace.openai_utils.prompts import (
6
+ UserRolePrompt,
7
+ SystemRolePrompt,
8
+ AssistantRolePrompt,
9
+ )
10
+ from aimakerspace.openai_utils.embedding import EmbeddingModel
11
+ from aimakerspace.vectordatabase import VectorDatabase
12
+ from aimakerspace.openai_utils.chatmodel import ChatOpenAI
13
+ import chainlit as cl
14
+
15
+ system_template = """\
16
+ Use the following context to answer a users question. If you cannot find the answer in the context, say you don't know the answer."""
17
+ system_role_prompt = SystemRolePrompt(system_template)
18
+
19
+ user_prompt_template = """\
20
+ Context:
21
+ {context}
22
+
23
+ Question:
24
+ {question}
25
+ """
26
+ user_role_prompt = UserRolePrompt(user_prompt_template)
27
+
28
+ class RetrievalAugmentedQAPipeline:
29
+ def __init__(self, llm: ChatOpenAI(), vector_db_retriever: VectorDatabase) -> None:
30
+ self.llm = llm
31
+ self.vector_db_retriever = vector_db_retriever
32
+
33
+ async def arun_pipeline(self, user_query: str):
34
+ context_list = self.vector_db_retriever.search_by_text(user_query, k=4)
35
+
36
+ context_prompt = ""
37
+ for context in context_list:
38
+ context_prompt += context[0] + "\n"
39
+
40
+ formatted_system_prompt = system_role_prompt.create_message()
41
+
42
+ formatted_user_prompt = user_role_prompt.create_message(question=user_query, context=context_prompt)
43
+
44
+ async def generate_response():
45
+ async for chunk in self.llm.astream([formatted_system_prompt, formatted_user_prompt]):
46
+ yield chunk
47
+
48
+ return {"response": generate_response(), "context": context_list}
49
+
50
+ text_splitter = CharacterTextSplitter()
51
+
52
+
53
+ def process_file(file: AskFileResponse):
54
+ import tempfile
55
+ import shutil
56
+
57
+ print(f"Processing file: {file.name}")
58
+
59
+ # Create a temporary file with the correct extension
60
+ suffix = f".{file.name.split('.')[-1]}"
61
+ with tempfile.NamedTemporaryFile(delete=False, suffix=suffix) as temp_file:
62
+ # Copy the uploaded file content to the temporary file
63
+ shutil.copyfile(file.path, temp_file.name)
64
+ print(f"Created temporary file at: {temp_file.name}")
65
+
66
+ # Create appropriate loader
67
+ if file.name.lower().endswith('.pdf'):
68
+ loader = PDFLoader(temp_file.name)
69
+ else:
70
+ loader = TextFileLoader(temp_file.name)
71
+
72
+ try:
73
+ # Load and process the documents
74
+ documents = loader.load_documents()
75
+ texts = text_splitter.split_texts(documents)
76
+ return texts
77
+ finally:
78
+ # Clean up the temporary file
79
+ try:
80
+ os.unlink(temp_file.name)
81
+ except Exception as e:
82
+ print(f"Error cleaning up temporary file: {e}")
83
+
84
+
85
+ @cl.on_chat_start
86
+ async def on_chat_start():
87
+ files = None
88
+
89
+ # Wait for the user to upload a file
90
+ while files == None:
91
+ files = await cl.AskFileMessage(
92
+ content="Please upload a Text or PDF file to begin!",
93
+ accept=["text/plain", "application/pdf"],
94
+ max_size_mb=2,
95
+ timeout=180,
96
+ ).send()
97
+
98
+ file = files[0]
99
+
100
+ msg = cl.Message(
101
+ content=f"Processing `{file.name}`..."
102
+ )
103
+ await msg.send()
104
+
105
+ # load the file
106
+ texts = process_file(file)
107
+
108
+ print(f"Processing {len(texts)} text chunks")
109
+
110
+ # Create a dict vector store
111
+ vector_db = VectorDatabase()
112
+ vector_db = await vector_db.abuild_from_list(texts)
113
+
114
+ chat_openai = ChatOpenAI()
115
+
116
+ # Create a chain
117
+ retrieval_augmented_qa_pipeline = RetrievalAugmentedQAPipeline(
118
+ vector_db_retriever=vector_db,
119
+ llm=chat_openai
120
+ )
121
+
122
+ # Let the user know that the system is ready
123
+ msg.content = f"Processing `{file.name}` done. You can now ask questions!"
124
+ await msg.update()
125
+
126
+ cl.user_session.set("chain", retrieval_augmented_qa_pipeline)
127
+
128
+
129
+ @cl.on_message
130
+ async def main(message):
131
+ chain = cl.user_session.get("chain")
132
+
133
+ msg = cl.Message(content="")
134
+ result = await chain.arun_pipeline(message.content)
135
+
136
+ async for stream_resp in result["response"]:
137
+ await msg.stream_token(stream_resp)
138
+
139
+ await msg.send()
backend/.chainlit/config.toml ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [project]
2
+ # Whether to enable telemetry (default: true). No personal data is collected.
3
+ enable_telemetry = true
4
+
5
+
6
+ # List of environment variables to be provided by each user to use the app.
7
+ user_env = []
8
+
9
+ # Duration (in seconds) during which the session is saved when the connection is lost
10
+ session_timeout = 3600
11
+
12
+ # Duration (in seconds) of the user session expiry
13
+ user_session_timeout = 1296000 # 15 days
14
+
15
+ # Enable third parties caching (e.g LangChain cache)
16
+ cache = false
17
+
18
+ # Authorized origins
19
+ allow_origins = ["*"]
20
+
21
+ [features]
22
+ # 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)
23
+ unsafe_allow_html = false
24
+
25
+ # Process and display mathematical expressions. This can clash with "$" characters in messages.
26
+ latex = false
27
+
28
+ # Automatically tag threads with the current chat profile (if a chat profile is used)
29
+ auto_tag_thread = true
30
+
31
+ # Allow users to edit their own messages
32
+ edit_message = true
33
+
34
+ # Authorize users to spontaneously upload files with messages
35
+ [features.spontaneous_file_upload]
36
+ enabled = true
37
+ # Define accepted file types using MIME types
38
+ # Examples:
39
+ # 1. For specific file types:
40
+ # accept = ["image/jpeg", "image/png", "application/pdf"]
41
+ # 2. For all files of certain type:
42
+ # accept = ["image/*", "audio/*", "video/*"]
43
+ # 3. For specific file extensions:
44
+ # accept = { "application/octet-stream" = [".xyz", ".pdb"] }
45
+ # Note: Using "*/*" is not recommended as it may cause browser warnings
46
+ accept = ["*/*"]
47
+ max_files = 20
48
+ max_size_mb = 500
49
+
50
+ [features.audio]
51
+ # Sample rate of the audio
52
+ sample_rate = 24000
53
+
54
+ [UI]
55
+ # Name of the assistant.
56
+ name = "Assistant"
57
+
58
+ # default_theme = "dark"
59
+
60
+ # layout = "wide"
61
+
62
+ # Description of the assistant. This is used for HTML tags.
63
+ # description = ""
64
+
65
+ # Chain of Thought (CoT) display mode. Can be "hidden", "tool_call" or "full".
66
+ cot = "full"
67
+
68
+ # Link to your github repo. This will add a github button in the UI's header.
69
+ # github = ""
70
+
71
+ # Specify a CSS file that can be used to customize the user interface.
72
+ # The CSS file can be served from the public directory or via an external link.
73
+ # custom_css = "/public/test.css"
74
+
75
+ # Specify a Javascript file that can be used to customize the user interface.
76
+ # The Javascript file can be served from the public directory.
77
+ # custom_js = "/public/test.js"
78
+
79
+ # Specify a custom meta image url.
80
+ # custom_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png"
81
+
82
+ # Specify a custom build directory for the frontend.
83
+ # This can be used to customize the frontend code.
84
+ # Be careful: If this is a relative path, it should not start with a slash.
85
+ # custom_build = "./public/build"
86
+
87
+ [meta]
88
+ generated_by = "2.0.4"
backend/.chainlit/translations/bn.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
8
+ "settingsKey": "S",
9
+ "APIKeys": "\u098f\u09aa\u09bf\u0986\u0987 \u0995\u09c0",
10
+ "logout": "\u09b2\u0997\u0986\u0989\u099f"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u09a8\u09a4\u09c1\u09a8 \u0986\u09a1\u09cd\u09a1\u09be"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0995\u09be\u09b0\u09cd\u09af \u09a4\u09be\u09b2\u09bf\u0995\u09be",
22
+ "loading": "\u09b2\u09cb\u09a1\u0964\u0964\u0964",
23
+ "error": "\u098f\u0995\u099f\u09bf \u09a4\u09cd\u09b0\u09c1\u099f\u09bf \u09b8\u0982\u0998\u099f\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2 \u0995\u09b0\u09c1\u09a8",
28
+ "removeAttachment": "\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4\u09bf \u09b8\u09b0\u09be\u09a8"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09ac\u09c7\u09a8?",
32
+ "clearChat": "\u098f\u099f\u09bf \u09ac\u09b0\u09cd\u09a4\u09ae\u09be\u09a8 \u09ac\u09be\u09b0\u09cd\u09a4\u09be\u0997\u09c1\u09b2\u09bf \u09b8\u09be\u09ab \u0995\u09b0\u09ac\u09c7 \u098f\u09ac\u0982 \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u099a\u09cd\u09af\u09be\u099f \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09ac\u09c7\u0964",
33
+ "cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
34
+ "confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8",
38
+ "expandMessages": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be\u0997\u09c1\u09b2\u09bf \u09aa\u09cd\u09b0\u09b8\u09be\u09b0\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
39
+ "hideChainOfThought": "\u099a\u09bf\u09a8\u09cd\u09a4\u09be\u09b0 \u09b6\u09c3\u0999\u09cd\u0996\u09b2 \u09b2\u09c1\u0995\u09be\u09a8",
40
+ "darkMode": "\u09a1\u09be\u09b0\u09cd\u0995 \u09ae\u09cb\u09a1"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0",
44
+ "running": "\u099a\u09b2\u09ae\u09be\u09a8",
45
+ "took_one": "{{count}} \u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa \u09a8\u09bf\u09af\u09bc\u09c7\u099b\u09c7",
46
+ "took_other": "{{count}}\u099f\u09bf \u09aa\u09a6\u0995\u09cd\u09b7\u09c7\u09aa \u09a8\u09bf\u09af\u09bc\u09c7\u099b\u09c7"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0985\u09cd\u09af\u09be\u09aa\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8 \u0995\u09b0\u09a4\u09c7 \u09b2\u0997\u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964",
51
+ "form": {
52
+ "email": "\u0987-\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
53
+ "password": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
54
+ "noAccount": "\u0995\u09cb\u09a8\u0993 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a8\u09c7\u0987?",
55
+ "alreadyHaveAccount": "\u0987\u09a4\u09bf\u09ae\u09a7\u09cd\u09af\u09c7 \u098f\u0995\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u0986\u099b\u09c7?",
56
+ "signup": "\u09b8\u09be\u0987\u09a8 \u0986\u09aa \u0995\u09b0\u09cb",
57
+ "signin": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09cb",
58
+ "or": "\u09ac\u09be",
59
+ "continue": "\u0985\u09ac\u09bf\u09b0\u09a4",
60
+ "forgotPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09ad\u09c1\u09b2\u09c7 \u0997\u09c7\u099b\u09c7\u09a8?",
61
+ "passwordMustContain": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1\u09c7 \u0985\u09ac\u09b6\u09cd\u09af\u0987 \u09a5\u09be\u0995\u09a4\u09c7 \u09b9\u09ac\u09c7:",
62
+ "emailRequired": "\u0987\u09ae\u09c7\u09b2 \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
63
+ "passwordRequired": "\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"
64
+ },
65
+ "error": {
66
+ "default": "\u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09a4\u09c7 \u0985\u0995\u09cd\u09b7\u09ae\u0964",
67
+ "signin": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
68
+ "oauthsignin": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
69
+ "redirect_uri_mismatch": "\u09aa\u09c1\u09a8\u0983\u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09bf\u09a4 URI OAUTH \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\u0964",
70
+ "oauthcallbackerror": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
71
+ "oauthcreateaccount": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
72
+ "emailcreateaccount": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
73
+ "callback": "\u098f\u0995\u099f\u09bf \u09ad\u09bf\u09a8\u09cd\u09a8 \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\u0964",
74
+ "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 \u09ae\u09c2\u09b2\u09a4 \u09af\u09c7 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7\u099b\u09c7\u09a8 \u09b8\u09c7\u0987 \u098f\u0995\u0987 \u0985\u09cd\u09af\u09be\u0995\u09be\u0989\u09a8\u09cd\u099f \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964",
75
+ "emailsignin": "\u0987-\u09ae\u09c7\u0987\u09b2\u099f\u09bf \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09be \u09af\u09be\u09af\u09bc\u09a8\u09bf\u0964",
76
+ "emailverify": "\u0985\u09a8\u09c1\u0997\u09cd\u09b0\u09b9 \u0995\u09b0\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2\u099f\u09bf \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8, \u098f\u0995\u099f\u09bf \u09a8\u09a4\u09c1\u09a8 \u0987\u09ae\u09c7\u09b2 \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964",
77
+ "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 \u09aa\u09cd\u09b0\u09a6\u09a4\u09cd\u09a4 \u09ac\u09bf\u09ac\u09b0\u09a3\u0997\u09c1\u09b2\u09bf \u09b8\u09a0\u09bf\u0995 \u0995\u09bf\u09a8\u09be \u09a4\u09be \u09aa\u09b0\u09c0\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8\u0964",
78
+ "sessionrequired": "\u098f\u0987 \u09aa\u09c3\u09b7\u09cd\u09a0\u09be\u099f\u09bf \u0985\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09c7\u09b8 \u0995\u09b0\u09a4\u09c7 \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u09b8\u09be\u0987\u09a8 \u0987\u09a8 \u0995\u09b0\u09c1\u09a8\u0964"
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0986\u09aa\u09a8\u09bf \u09aa\u09cd\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u0996\u09be\u09a8\u09c7 \u09aa\u09cc\u0981\u099b\u09c7\u099b\u09c7\u09a8! \u0986\u09ae\u09b0\u09be \u098f\u0995\u099f\u09bf \u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09be\u09a0\u09bf\u09af\u09bc\u09c7\u099b\u09bf ",
83
+ "verifyEmailLink": "\u0986\u09aa\u09a8\u09be\u09b0 \u09b8\u09be\u0987\u09a8\u0986\u09aa \u09b8\u09ae\u09cd\u09aa\u09c2\u09b0\u09cd\u09a3 \u0995\u09b0\u09a4\u09c7 \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u09b8\u09c7\u0987 \u0987\u09ae\u09c7\u09b2\u09c7\u09b0 \u09b2\u09bf\u0999\u09cd\u0995\u099f\u09bf\u09a4\u09c7 \u0995\u09cd\u09b2\u09bf\u0995 \u0995\u09b0\u09c1\u09a8\u0964",
84
+ "didNotReceive": "\u0987\u09ae\u09c7\u0987\u09b2 \u0996\u09c1\u0981\u099c\u09c7 \u09aa\u09be\u099a\u09cd\u099b\u09c7\u09a8 \u09a8\u09be?",
85
+ "resendEmail": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09aa\u09be\u09a0\u09be\u09a8",
86
+ "goBack": "\u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993",
87
+ "emailSent": "\u0987\u09ae\u09c7\u09b2 \u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09aa\u09be\u09a0\u09be\u09a8\u09cb \u09b9\u09af\u09bc\u09c7\u099b\u09c7\u0964",
88
+ "verifyEmail": "\u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be \u09af\u09be\u099a\u09be\u0987 \u0995\u09b0\u09c1\u09a8"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u099a\u09be\u09b2\u09bf\u09af\u09bc\u09c7 \u09af\u09be\u09a8",
92
+ "signup": "{{provider}} \u09a6\u09bf\u09af\u09bc\u09c7 \u09b8\u09be\u0987\u09a8 \u0986\u09aa \u0995\u09b0\u09c1\u09a8"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u09a8\u09a4\u09c1\u09a8 \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",
96
+ "passwordsMustMatch": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u0985\u09ac\u09b6\u09cd\u09af\u0987 \u09ae\u09bf\u09b2\u09a4\u09c7 \u09b9\u09ac\u09c7",
97
+ "confirmPasswordRequired": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09be \u098f\u0995\u099f\u09bf \u0986\u09ac\u09b6\u09cd\u09af\u0995 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
98
+ "newPassword": "\u09a8\u09a4\u09c1\u09a8 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1",
99
+ "confirmPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4 \u0995\u09b0\u09c1\u09a8",
100
+ "resetPassword": "\u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09b0\u09bf\u09b8\u09c7\u099f \u0995\u09b0\u09c1\u09a8"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0987-\u09ae\u09c7\u0987\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be",
104
+ "emailRequired": "\u0987\u09ae\u09c7\u09b2 \u098f\u0995\u099f\u09bf \u09aa\u09cd\u09b0\u09af\u09bc\u09cb\u099c\u09a8\u09c0\u09af\u09bc \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0",
105
+ "emailSent": "\u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1\u099f\u09bf \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09be\u09b0 \u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09be\u09ac\u09b2\u09c0\u09b0 \u099c\u09a8\u09cd\u09af \u09a6\u09af\u09bc\u09be \u0995\u09b0\u09c7 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be {{email}} \u09aa\u09b0\u09c0\u0995\u09cd\u09b7\u09be \u0995\u09b0\u09c1\u09a8\u0964",
106
+ "enterEmail": "\u0986\u09aa\u09a8\u09be\u09b0 \u0987\u09ae\u09c7\u09b2 \u09a0\u09bf\u0995\u09be\u09a8\u09be \u09b2\u09bf\u0996\u09c1\u09a8 \u098f\u09ac\u0982 \u0986\u09ae\u09b0\u09be \u0986\u09aa\u09a8\u09be\u0995\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u09aa\u09be\u09b8\u0993\u09af\u09bc\u09be\u09b0\u09cd\u09a1 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b8\u09c7\u099f \u0995\u09b0\u09a4\u09c7 \u09a8\u09bf\u09b0\u09cd\u09a6\u09c7\u09b6\u09be\u09ac\u09b2\u09c0 \u09aa\u09be\u09a0\u09be\u09ac\u0964",
107
+ "resendEmail": "\u0987\u09ae\u09c7\u0987\u09b2 \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09aa\u09be\u09a0\u09be\u09a8",
108
+ "continue": "\u0985\u09ac\u09bf\u09b0\u09a4",
109
+ "goBack": "\u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u0993"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0987\u09a4\u09bf\u09b9\u09be\u09b8 \u09a6\u09c7\u0996\u09be\u09a8",
118
+ "lastInputs": "\u09b8\u09b0\u09cd\u09ac\u09b6\u09c7\u09b7 \u0987\u09a8\u09aa\u09c1\u099f",
119
+ "noInputs": "\u098f\u09a4 \u09ab\u09be\u0981\u0995\u09be...",
120
+ "loading": "\u09b2\u09cb\u09a1\u0964\u0964\u0964"
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "placeholder": "\u098f\u0996\u09be\u09a8\u09c7 \u0986\u09aa\u09a8\u09be\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u099f\u09be\u0987\u09aa \u0995\u09b0\u09c1\u09a8..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8",
129
+ "stop": "\u09b0\u09c7\u0995\u09b0\u09cd\u09a1\u09bf\u0982 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u09ac\u09be\u09b0\u09cd\u09a4\u09be \u09aa\u09cd\u09b0\u09c7\u09b0\u09a3 \u0995\u09b0\u09c1\u09a8",
133
+ "stopTask": "\u09b8\u09cd\u099f\u09aa \u099f\u09be\u09b8\u09cd\u0995"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u09ab\u09be\u0987\u09b2 \u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0995\u09b0\u09c1\u09a8"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u09b8\u0999\u09cd\u0997\u09c7 \u09a8\u09bf\u09b0\u09cd\u09ae\u09bf\u09a4"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u099a\u09b2\u09ae\u09be\u09a8",
145
+ "executedSuccessfully": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u09ae\u09cd\u09aa\u09be\u09a6\u09bf\u09a4 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
146
+ "failed": "\u09ac\u09cd\u09af\u09b0\u09cd\u09a5",
147
+ "feedbackUpdated": "\u09ab\u09bf\u09a1\u09ac\u09cd\u09af\u09be\u0995 \u0986\u09aa\u09a1\u09c7\u099f \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
148
+ "updating": "\u0986\u09a7\u09c1\u09a8\u09bf\u0995\u09c0\u0995\u09b0\u09a3"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0986\u09aa\u09a8\u09be\u09b0 \u09ab\u09be\u0987\u09b2\u0997\u09c1\u09b2\u09bf \u098f\u0996\u09be\u09a8\u09c7 \u09ab\u09c7\u09b2\u09c7 \u09a6\u09bf\u09a8"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0986\u09aa\u09b2\u09cb\u09a1 \u0995\u09b0\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5 \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
169
+ "cancelledUploadOf": "\u098f\u09b0 \u0986\u09aa\u09b2\u09cb\u09a1 \u09ac\u09be\u09a4\u09bf\u09b2",
170
+ "couldNotReachServer": "\u09b8\u09be\u09b0\u09cd\u09ad\u09be\u09b0\u09c7 \u09aa\u09cc\u0981\u099b\u09be\u09a8\u09cb \u09af\u09be\u09af\u09bc\u09a8\u09bf",
171
+ "continuingChat": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u099a\u09cd\u09af\u09be\u099f \u0985\u09ac\u09bf\u09b0\u09a4 \u09b0\u09be\u0996\u09be"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u09b8\u09c7\u099f\u09bf\u0982\u09b8 \u09aa\u09cd\u09af\u09be\u09a8\u09c7\u09b2",
175
+ "reset": "\u09b0\u09bf\u09b8\u09c7\u099f",
176
+ "cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
177
+ "confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u09b8\u09ac",
185
+ "feedbackPositive": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u0987\u09a4\u09bf\u09ac\u09be\u099a\u0995",
186
+ "feedbackNegative": "\u09aa\u09cd\u09b0\u09a4\u09bf\u0995\u09cd\u09b0\u09bf\u09af\u09bc\u09be: \u09a8\u09c7\u09a4\u09bf\u09ac\u09be\u099a\u0995"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u09b8\u09a8\u09cd\u09a7\u09be\u09a8"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u098f\u099f\u09bf \u09a5\u09cd\u09b0\u09c7\u09a1\u09c7\u09b0 \u09aa\u09be\u09b6\u09be\u09aa\u09be\u09b6\u09bf \u098f\u09b0 \u09ac\u09be\u09b0\u09cd\u09a4\u09be \u098f\u09ac\u0982 \u0989\u09aa\u09be\u09a6\u09be\u09a8\u0997\u09c1\u09b2\u09bf\u0993 \u09ae\u09c1\u099b\u09c7 \u09ab\u09c7\u09b2\u09ac\u09c7\u0964",
194
+ "cancel": "\u09ac\u09be\u09a4\u09bf\u09b2",
195
+ "confirm": "\u09a8\u09bf\u09b6\u09cd\u099a\u09bf\u09a4",
196
+ "deletingChat": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09cb\u099b\u09be \u09b9\u099a\u09cd\u099b\u09c7",
197
+ "chatDeleted": "\u099a\u09cd\u09af\u09be\u099f \u09ae\u09cb\u099b\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u0985\u09a4\u09c0\u09a4 \u099a\u09cd\u09af\u09be\u099f"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0996\u09be\u09b2\u09bf\u0964\u0964\u0964",
204
+ "today": "\u0986\u099c",
205
+ "yesterday": "\u0997\u09a4\u0995\u09be\u09b2",
206
+ "previous7days": "Previous 7 \u09a6\u09bf\u09a8",
207
+ "previous30days": "\u09aa\u09c2\u09b0\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 30 \u09a6\u09bf\u09a8"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u09ac\u09a8\u09cd\u09a7 \u0995\u09b0\u09c1\u09a8",
211
+ "openSidebar": "\u09b8\u09be\u0987\u09a1\u09ac\u09be\u09b0 \u0996\u09c1\u09b2\u09c1\u09a8"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u099a\u09cd\u09af\u09be\u099f\u09c7 \u09ab\u09bf\u09b0\u09c7 \u09af\u09be\u09a8",
216
+ "chatCreatedOn": "\u098f\u0987 \u099a\u09cd\u09af\u09be\u099f\u099f\u09bf \u09a4\u09c8\u09b0\u09bf \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09bf\u09b2"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u0986\u09b2\u09be\u09aa",
221
+ "readme": "\u09b0\u09bf\u09a1\u09ae\u09bf"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u09b8\u09b0\u09ac\u09b0\u09be\u09b9\u0995\u09be\u09b0\u09c0\u09a6\u09c7\u09b0 \u0986\u09a8\u09a4\u09c7 \u09ac\u09cd\u09af\u09b0\u09cd\u09a5:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u09b8\u09ab\u09b2\u09ad\u09be\u09ac\u09c7 \u09b8\u0982\u09b0\u0995\u09cd\u09b7\u09a3 \u0995\u09b0\u09be \u09b9\u09af\u09bc\u09c7\u099b\u09c7",
234
+ "requiredApiKeys": "\u0986\u09ac\u09b6\u09cd\u09af\u0995 API \u0995\u09c0",
235
+ "requiredApiKeysInfo": "\u098f\u0987 \u0985\u09cd\u09af\u09be\u09aa\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7, \u09a8\u09bf\u09ae\u09cd\u09a8\u09b2\u09bf\u0996\u09bf\u09a4 API \u0995\u09c0\u0997\u09c1\u09b2\u09bf\u09b0 \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 \u09b8\u09cd\u09a5\u09be\u09a8\u09c0\u09af\u09bc \u09b8\u09cd\u099f\u09cb\u09b0\u09c7\u099c\u09c7 \u09b8\u099e\u09cd\u099a\u09bf\u09a4 \u09b0\u09af\u09bc\u09c7\u099b\u09c7\u0964"
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0986\u09aa\u09a8\u09bf \u098f\u0987 \u09aa\u09cd\u09b0\u0995\u09b2\u09cd\u09aa\u09c7\u09b0 \u0985\u0982\u09b6 \u09a8\u09a8\u0964"
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u099a\u09cd\u09af\u09be\u099f \u09aa\u09c1\u09a8\u09b0\u09be\u09af\u09bc \u09b6\u09c1\u09b0\u09c1 \u0995\u09b0\u09c1\u09a8"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/en-US.json ADDED
@@ -0,0 +1,269 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "Settings",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API Keys",
10
+ "logout": "Logout"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "New Chat"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f Task List",
22
+ "loading": "Loading...",
23
+ "error": "An error occurred"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "Cancel upload",
28
+ "removeAttachment": "Remove attachment"
29
+ },
30
+ "newChatDialog": {
31
+ "title": "Create New Chat",
32
+ "description": "This will clear your current chat history. Are you sure you want to continue?",
33
+ "cancelButton": "Cancel",
34
+ "confirmButton": "Confirm",
35
+ "tooltip": "New Chat"
36
+ },
37
+ "settingsModal": {
38
+ "settings": "Settings",
39
+ "expandMessages": "Expand Messages",
40
+ "hideChainOfThought": "Hide Chain of Thought",
41
+ "darkMode": "Dark Mode"
42
+ },
43
+ "detailsButton": {
44
+ "using": "Using",
45
+ "used": "Used"
46
+ },
47
+ "auth": {
48
+ "authLogin": {
49
+ "title": "Login to access the app.",
50
+ "form": {
51
+ "email": "Email address",
52
+ "password": "Password",
53
+ "noAccount": "Don't have an account?",
54
+ "alreadyHaveAccount": "Already have an account?",
55
+ "signup": "Sign Up",
56
+ "signin": "Sign In",
57
+ "or": "OR",
58
+ "continue": "Continue",
59
+ "forgotPassword": "Forgot password?",
60
+ "passwordMustContain": "Your password must contain:",
61
+ "emailRequired": "email is a required field",
62
+ "passwordRequired": "password is a required field"
63
+ },
64
+ "error": {
65
+ "default": "Unable to sign in.",
66
+ "signin": "Try signing in with a different account.",
67
+ "oauthsignin": "Try signing in with a different account.",
68
+ "redirect_uri_mismatch": "The redirect URI is not matching the oauth app configuration.",
69
+ "oauthcallbackerror": "Try signing in with a different account.",
70
+ "oauthcreateaccount": "Try signing in with a different account.",
71
+ "emailcreateaccount": "Try signing in with a different account.",
72
+ "callback": "Try signing in with a different account.",
73
+ "oauthaccountnotlinked": "To confirm your identity, sign in with the same account you used originally.",
74
+ "emailsignin": "The e-mail could not be sent.",
75
+ "emailverify": "Please verify your email, a new email has been sent.",
76
+ "credentialssignin": "Sign in failed. Check the details you provided are correct.",
77
+ "sessionrequired": "Please sign in to access this page."
78
+ }
79
+ },
80
+ "authVerifyEmail": {
81
+ "almostThere": "You're almost there! We've sent an email to ",
82
+ "verifyEmailLink": "Please click on the link in that email to complete your signup.",
83
+ "didNotReceive": "Can't find the email?",
84
+ "resendEmail": "Resend email",
85
+ "goBack": "Go Back",
86
+ "emailSent": "Email sent successfully.",
87
+ "verifyEmail": "Verify your email address"
88
+ },
89
+ "providerButton": {
90
+ "continue": "Continue with {{provider}}",
91
+ "signup": "Sign up with {{provider}}"
92
+ },
93
+ "authResetPassword": {
94
+ "newPasswordRequired": "New password is a required field",
95
+ "passwordsMustMatch": "Passwords must match",
96
+ "confirmPasswordRequired": "Confirm password is a required field",
97
+ "newPassword": "New password",
98
+ "confirmPassword": "Confirm password",
99
+ "resetPassword": "Reset Password"
100
+ },
101
+ "authForgotPassword": {
102
+ "email": "Email address",
103
+ "emailRequired": "email is a required field",
104
+ "emailSent": "Please check the email address {{email}} for instructions to reset your password.",
105
+ "enterEmail": "Enter your email address and we will send you instructions to reset your password.",
106
+ "resendEmail": "Resend email",
107
+ "continue": "Continue",
108
+ "goBack": "Go Back"
109
+ }
110
+ }
111
+ },
112
+ "organisms": {
113
+ "chat": {
114
+ "askFileButton": {
115
+ "dragAndDrop": "Drag and drop files here",
116
+ "sizeLimit": "Limit:",
117
+ "browseFiles": "Browse Files"
118
+ },
119
+ "history": {
120
+ "index": {
121
+ "showHistory": "Show history",
122
+ "lastInputs": "Last Inputs",
123
+ "noInputs": "Such empty...",
124
+ "loading": "Loading..."
125
+ }
126
+ },
127
+ "inputBox": {
128
+ "input": {
129
+ "placeholder": "Type your message here..."
130
+ },
131
+ "speechButton": {
132
+ "start": "Start recording",
133
+ "stop": "Stop recording",
134
+ "loading": "Connecting"
135
+ },
136
+ "SubmitButton": {
137
+ "sendMessage": "Send message",
138
+ "stopTask": "Stop Task"
139
+ },
140
+ "UploadButton": {
141
+ "attachFiles": "Attach files"
142
+ },
143
+ "waterMark": {
144
+ "text": "Built with"
145
+ }
146
+ },
147
+ "Messages": {
148
+ "index": {
149
+ "running": "Running",
150
+ "executedSuccessfully": "executed successfully",
151
+ "failed": "failed",
152
+ "feedbackUpdated": "Feedback updated",
153
+ "updating": "Updating"
154
+ },
155
+ "copyButton": {
156
+ "copyToClipboard": "Copy to clipboard",
157
+ "copied": "Copied!"
158
+ },
159
+ "feedbackButton": {
160
+ "helpful": "Helpful",
161
+ "notHelpful": "Not helpful",
162
+ "editFeedback": "Edit feedback"
163
+ },
164
+ "feedbackDialog": {
165
+ "dialogTitle": "Add a comment",
166
+ "submitButton": "Submit feedback"
167
+ }
168
+ },
169
+ "dropScreen": {
170
+ "dropYourFilesHere": "Drop your files here"
171
+ },
172
+ "index": {
173
+ "failedToUpload": "Failed to upload",
174
+ "cancelledUploadOf": "Cancelled upload of",
175
+ "couldNotReachServer": "Could not reach the server",
176
+ "continuingChat": "Continuing previous chat"
177
+ },
178
+ "settings": {
179
+ "settingsPanel": "Settings panel",
180
+ "reset": "Reset",
181
+ "cancel": "Cancel",
182
+ "confirm": "Confirm"
183
+ }
184
+ },
185
+ "threadHistory": {
186
+ "sidebar": {
187
+ "filters": {
188
+ "FeedbackSelect": {
189
+ "feedbackAll": "Feedback: All",
190
+ "feedbackPositive": "Feedback: Positive",
191
+ "feedbackNegative": "Feedback: Negative"
192
+ },
193
+ "SearchBar": {
194
+ "search": "Search"
195
+ }
196
+ },
197
+ "DeleteThreadButton": {
198
+ "confirmMessage": "This will delete the thread as well as its messages and elements.",
199
+ "cancel": "Cancel",
200
+ "confirm": "Confirm",
201
+ "deletingChat": "Deleting chat",
202
+ "chatDeleted": "Chat deleted"
203
+ },
204
+ "index": {
205
+ "pastChats": "Past Chats"
206
+ },
207
+ "ThreadList": {
208
+ "empty": "Empty...",
209
+ "today": "Today",
210
+ "yesterday": "Yesterday",
211
+ "previous7days": "Previous 7 days",
212
+ "previous30days": "Previous 30 days",
213
+ "noThreads": "No threads found",
214
+ "DeleteDialog": {
215
+ "title": "Confirm deletion",
216
+ "description": "This action cannot be undone",
217
+ "cancel": "Cancel",
218
+ "confirm": "Confirm"
219
+ },
220
+ "RenameDialog": {
221
+ "title": "Rename Thread",
222
+ "description": "Enter a new name for this thread",
223
+ "nameLabel": "Name",
224
+ "namePlaceholder": "Enter new name",
225
+ "cancel": "Cancel",
226
+ "confirm": "Rename"
227
+ },
228
+ "RenameThreadButton": {
229
+ "renamingThread": "Renaming thread",
230
+ "threadRenamed": "Thread renamed!"
231
+ },
232
+ "untitledConversation": "Untitled Conversation"
233
+ },
234
+ "TriggerButton": {
235
+ "closeSidebar": "Close sidebar",
236
+ "openSidebar": "Open sidebar"
237
+ }
238
+ },
239
+ "Thread": {
240
+ "backToChat": "Go back to chat",
241
+ "chatCreatedOn": "This chat was created on"
242
+ }
243
+ },
244
+ "header": {
245
+ "chat": "Chat",
246
+ "readme": "Readme"
247
+ }
248
+ }
249
+ },
250
+ "hooks": {
251
+ "useLLMProviders": {
252
+ "failedToFetchProviders": "Failed to fetch providers:"
253
+ }
254
+ },
255
+ "pages": {
256
+ "Design": {},
257
+ "Env": {
258
+ "savedSuccessfully": "Saved successfully",
259
+ "requiredApiKeys": "Required API Keys",
260
+ "requiredApiKeysInfo": "To use this app, the following API keys are required. The keys are stored on your device's local storage."
261
+ },
262
+ "Page": {
263
+ "notPartOfProject": "You are not part of this project."
264
+ },
265
+ "ResumeButton": {
266
+ "resumeChat": "Resume Chat"
267
+ }
268
+ }
269
+ }
backend/.chainlit/translations/gu.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API \u0a95\u0ac0\u0a93",
10
+ "logout": "\u0aac\u0ab9\u0abe\u0ab0 \u0aa8\u0ac0\u0a95\u0ab3\u0acb"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u0aa8\u0ab5\u0acb \u0ab8\u0a82\u0ab5\u0abe\u0aa6"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0a95\u0abe\u0ab0\u0acd\u0aaf \u0aaf\u0abe\u0aa6\u0ac0",
22
+ "loading": "\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7...",
23
+ "error": "\u0aad\u0ac2\u0ab2 \u0a89\u0aa6\u0acd\u0aad\u0ab5\u0ac0"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab0\u0aa6 \u0a95\u0ab0\u0acb",
28
+ "removeAttachment": "\u0a9c\u0acb\u0aa1\u0abe\u0aa3\u0aa8\u0ac7 \u0aa6\u0ac2\u0ab0 \u0a95\u0ab0\u0acb"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u0ab6\u0ac1\u0a82 \u0aa8\u0ab5\u0ac1\u0a82 \u0ab8\u0a82\u0ab5\u0abe\u0aa6 \u0aac\u0aa8\u0abe\u0ab5\u0ab5\u0ac1\u0a82 \u0a9b\u0ac7?",
32
+ "clearChat": "\u0a86 \u0ab5\u0ab0\u0acd\u0aa4\u0aae\u0abe\u0aa8 \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93\u0aa8\u0ac7 \u0ab8\u0abe\u0aab \u0a95\u0ab0\u0ab6\u0ac7 \u0a85\u0aa8\u0ac7 \u0aa8\u0ab5\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0ab6\u0ac7.",
33
+ "cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
34
+ "confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
38
+ "expandMessages": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe\u0a93 \u0ab5\u0abf\u0ab8\u0acd\u0aa4\u0ac3\u0aa4 \u0a95\u0ab0\u0acb",
39
+ "hideChainOfThought": "\u0ab5\u0abf\u0a9a\u0abe\u0ab0\u0aa8\u0ac0 \u0ab8\u0abe\u0a82\u0a95\u0ab3 \u0a9b\u0ac1\u0aaa\u0abe\u0ab5\u0acb",
40
+ "darkMode": "\u0a98\u0abe\u0a9f\u0ac0 \u0ab8\u0acd\u0aa5\u0abf\u0aa4\u0abf"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u0ab5\u0abe\u0aaa\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f",
44
+ "running": "\u0a9a\u0abe\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1 \u0a9b\u0ac7",
45
+ "took_one": "{{count}} \u0aaa\u0a97\u0ab2\u0ac1\u0a82 \u0aad\u0ab0\u0acd\u0aaf\u0ac1\u0a82",
46
+ "took_other": "{{count}} \u0aaa\u0a97\u0ab2\u0abe\u0a82\u0a93 \u0ab2\u0ac0\u0aa7\u0abe"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab2\u0acb\u0a97\u0abf\u0aa8 \u0a95\u0ab0\u0acb.",
51
+ "form": {
52
+ "email": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0ab0\u0aa8\u0abe\u0aae\u0ac1\u0a82",
53
+ "password": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
54
+ "noAccount": "\u0a96\u0abe\u0aa4\u0ac1\u0a82 \u0aa8\u0aa5\u0ac0?",
55
+ "alreadyHaveAccount": "\u0aaa\u0ab9\u0ac7\u0ab2\u0ac7\u0aa5\u0ac0 \u0a9c \u0a96\u0abe\u0aa4\u0ac1\u0a82 \u0a9b\u0ac7?",
56
+ "signup": "\u0ab8\u0abe\u0a87\u0aa8 \u0a85\u0aaa \u0a95\u0ab0\u0acb",
57
+ "signin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb",
58
+ "or": "\u0a85\u0aa5\u0ab5\u0abe",
59
+ "continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
60
+ "forgotPassword": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0aad\u0ac2\u0ab2\u0ac0 \u0a97\u0aaf\u0abe?",
61
+ "passwordMustContain": "\u0aa4\u0aae\u0abe\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab8\u0aae\u0abe\u0ab5\u0aa4\u0acb \u0a9c \u0ab9\u0acb\u0ab5\u0acb \u0a9c\u0acb\u0a87\u0a8f:",
62
+ "emailRequired": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
63
+ "passwordRequired": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7"
64
+ },
65
+ "error": {
66
+ "default": "\u0aaa\u0acd\u0ab0\u0ab5\u0ac7\u0ab6 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a85\u0ab8\u0aae\u0ab0\u0acd\u0aa5.",
67
+ "signin": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
68
+ "oauthsignin": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
69
+ "redirect_uri_mismatch": "\u0ab0\u0ac0\u0aa1\u0abe\u0aaf\u0ab0\u0ac7\u0a95\u0acd\u0a9f URI \u0a8f oauth \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8 \u0ab0\u0ac2\u0aaa\u0ab0\u0ac7\u0a96\u0abe\u0a82\u0a95\u0aa8 \u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0a82\u0aa7\u0aac\u0ac7\u0ab8\u0aa4\u0ac0 \u0aa8\u0aa5\u0ac0.",
70
+ "oauthcallbackerror": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
71
+ "oauthcreateaccount": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
72
+ "emailcreateaccount": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
73
+ "callback": "\u0a85\u0ab2\u0a97 \u0a96\u0abe\u0aa4\u0abe \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0acb \u0aaa\u0acd\u0ab0\u0aaf\u0aa4\u0acd\u0aa8 \u0a95\u0ab0\u0acb.",
74
+ "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, \u0aa4\u0aae\u0ac7 \u0a9c\u0ac7 \u0aae\u0ac2\u0ab3\u0aad\u0ac2\u0aa4 \u0ab0\u0ac0\u0aa4\u0ac7 \u0a89\u0aaa\u0aaf\u0acb\u0a97 \u0a95\u0ab0\u0acd\u0aaf\u0acb \u0ab9\u0aa4\u0acb \u0aa4\u0ac7 \u0a9c \u0a8f\u0a95\u0abe\u0a89\u0aa8\u0acd\u0a9f \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb.",
75
+ "emailsignin": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ac0 \u0ab6\u0a95\u0abe\u0aaf\u0acb \u0aa8\u0ab9\u0abf.",
76
+ "emailverify": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0a87\u0aae\u0ac7\u0a87\u0ab2\u0aa8\u0ac0 \u0a96\u0abe\u0aa4\u0acd\u0ab0\u0ac0 \u0a95\u0ab0\u0acb, \u0a8f\u0a95 \u0aa8\u0ab5\u0ac1\u0a82 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0a86\u0ab5\u0acd\u0aaf\u0ac1\u0a82 \u0a9b\u0ac7.",
77
+ "credentialssignin": "\u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3. \u0aa4\u0aae\u0ac7 \u0aaa\u0ac2\u0ab0\u0ac0 \u0aaa\u0abe\u0aa1\u0ac7\u0ab2\u0ac0 \u0ab5\u0abf\u0a97\u0aa4\u0acb \u0ab8\u0abe\u0a9a\u0ac0 \u0a9b\u0ac7 \u0aa4\u0ac7 \u0a9a\u0a95\u0abe\u0ab8\u0acb.",
78
+ "sessionrequired": "\u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0a86 \u0aaa\u0ac3\u0ab7\u0acd\u0aa0\u0aa8\u0ac7 \u0a8d\u0a95\u0acd\u0ab8\u0ac7\u0ab8 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a87\u0aa8 \u0a95\u0ab0\u0acb."
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0aa4\u0aae\u0ac7 \u0aa4\u0acb \u0ab2\u0a97\u0aad\u0a97 \u0aa4\u0acd\u0aaf\u0abe\u0a82 \u0a9c \u0a9b\u0acb! \u0a85\u0aae\u0ac7 \u0a86\u0aa8\u0abe \u0aaa\u0ab0 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aae\u0acb\u0a95\u0ab2\u0acd\u0aaf\u0acb \u0a9b\u0ac7 ",
83
+ "verifyEmailLink": "\u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0ab8\u0abe\u0a87\u0aa8\u0a85\u0aaa \u0aaa\u0ac2\u0ab0\u0acd\u0aa3 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0ac7 \u0a87\u0aae\u0ac7\u0a87\u0ab2\u0aa8\u0ac0 \u0ab2\u0abf\u0a82\u0a95 \u0aaa\u0ab0 \u0a95\u0acd\u0ab2\u0abf\u0a95 \u0a95\u0ab0\u0acb.",
84
+ "didNotReceive": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab6\u0acb\u0aa7\u0ac0 \u0ab6\u0a95\u0aa4\u0abe \u0aa8\u0aa5\u0ac0?",
85
+ "resendEmail": "\u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aab\u0ab0\u0ac0 \u0aae\u0acb\u0a95\u0ab2\u0acb",
86
+ "goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
87
+ "emailSent": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0aae\u0acb\u0a95\u0ab2\u0abe\u0a88 \u0a97\u0aaf\u0acb.",
88
+ "verifyEmail": "\u0aa4\u0aae\u0abe\u0ab0\u0abe \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8\u0aa8\u0ac0 \u0a96\u0abe\u0aa4\u0acd\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
92
+ "signup": "{{provider}} \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0a87\u0aa8 \u0a85\u0aaa \u0a95\u0ab0\u0acb"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u0aa8\u0ab5\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
96
+ "passwordsMustMatch": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1\u0acb \u0aac\u0a82\u0aa7\u0aac\u0ac7\u0ab8\u0aa4\u0abe \u0a9c \u0ab9\u0acb\u0ab5\u0abe \u0a9c\u0acb\u0a88\u0a8f",
97
+ "confirmPasswordRequired": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
98
+ "newPassword": "\u0aa8\u0ab5\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
99
+ "confirmPassword": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1",
100
+ "resetPassword": "\u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1\u0aa8\u0ac7 \u0aaa\u0ac1\u0aa8:\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0abf\u0aa4 \u0a95\u0ab0\u0acb"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0ab8\u0ab0\u0aa8\u0abe\u0aae\u0ac1\u0a82",
104
+ "emailRequired": "\u0a88-\u0aae\u0ac7\u0a88\u0ab2 \u0a8f \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a95\u0acd\u0ab7\u0ac7\u0aa4\u0acd\u0ab0 \u0a9b\u0ac7",
105
+ "emailSent": "\u0ab8\u0ac2\u0a9a\u0aa8\u0abe\u0a93 \u0aae\u0abe\u0a9f\u0ac7 \u0a95\u0ac3\u0aaa\u0abe \u0a95\u0ab0\u0ac0\u0aa8\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab0\u0abf\u0ab8\u0ac5\u0a9f \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8 {{email}} \u0a9a\u0a95\u0abe\u0ab8\u0acb.",
106
+ "enterEmail": "\u0aa4\u0aae\u0abe\u0ab0\u0ac1\u0a82 \u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0a8f\u0aa1\u0acd\u0ab0\u0ac7\u0ab8 \u0aa6\u0abe\u0a96\u0ab2 \u0a95\u0ab0\u0acb \u0a85\u0aa8\u0ac7 \u0a85\u0aae\u0ac7 \u0aa4\u0aae\u0abe\u0ab0\u0acb \u0aaa\u0abe\u0ab8\u0ab5\u0ab0\u0acd\u0aa1 \u0ab0\u0ac0\u0ab8\u0ac7\u0a9f \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7 \u0aa4\u0aae\u0aa8\u0ac7 \u0ab8\u0ac2\u0a9a\u0aa8\u0abe\u0a93 \u0aae\u0acb\u0a95\u0ab2\u0ac0\u0ab6\u0ac1\u0a82.",
107
+ "resendEmail": "\u0a87\u0aae\u0ac7\u0a87\u0ab2 \u0aab\u0ab0\u0ac0 \u0aae\u0acb\u0a95\u0ab2\u0acb",
108
+ "continue": "\u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0acb",
109
+ "goBack": "\u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0a87\u0aa4\u0abf\u0ab9\u0abe\u0ab8 \u0aac\u0aa4\u0abe\u0ab5\u0acb",
118
+ "lastInputs": "\u0a9b\u0ac7\u0ab2\u0acd\u0ab2\u0abe \u0a87\u0aa8\u0aaa\u0ac1\u0a9f\u0acd\u0ab8",
119
+ "noInputs": "\u0a86\u0ab5\u0abe \u0a96\u0abe\u0ab2\u0ac0...",
120
+ "loading": "\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7..."
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "placeholder": "\u0aa4\u0aae\u0abe\u0ab0\u0acb \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0acb \u0a85\u0ab9\u0ac0\u0a82 \u0a9f\u0abe\u0a87\u0aaa \u0a95\u0ab0\u0acb..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb",
129
+ "stop": "\u0ab0\u0ac7\u0a95\u0acb\u0ab0\u0acd\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aa8\u0ac1\u0a82 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0acb \u0aae\u0acb\u0a95\u0ab2\u0acb",
133
+ "stopTask": "\u0a95\u0abe\u0ab0\u0acd\u0aaf\u0aa8\u0ac7 \u0a85\u0a9f\u0a95\u0abe\u0ab5\u0acb"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u0aab\u0abe\u0a87\u0ab2\u0acb\u0aa8\u0ac7 \u0a9c\u0acb\u0aa1\u0acb"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u0aa8\u0ac0 \u0ab8\u0abe\u0aa5\u0ac7 \u0aac\u0abf\u0ab2\u0acd\u0a9f \u0aa5\u0aaf\u0ac7\u0ab2"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u0a9a\u0abe\u0ab2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0ac1 \u0a9b\u0ac7",
145
+ "executedSuccessfully": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0a9a\u0ab2\u0abe\u0ab5\u0acd\u0aaf\u0ac7\u0ab2 \u0a9b\u0ac7",
146
+ "failed": "\u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
147
+ "feedbackUpdated": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6 \u0ab8\u0ac1\u0aa7\u0abe\u0ab0\u0ac7\u0ab2 \u0a9b\u0ac7",
148
+ "updating": "\u0ab8\u0ac1\u0aa7\u0abe\u0ab0\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0aa4\u0aae\u0abe\u0ab0\u0ac0 \u0aab\u0abe\u0a87\u0ab2\u0acb\u0aa8\u0ac7 \u0a85\u0a82\u0ab9\u0abf \u0aae\u0ac2\u0a95\u0acb"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0a95\u0ab0\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3",
169
+ "cancelledUploadOf": "\u0aa8\u0ac1\u0a82 \u0a85\u0aaa\u0ab2\u0acb\u0aa1 \u0ab0\u0aa6 \u0aa5\u0aaf\u0ac7\u0ab2 \u0a9b\u0ac7",
170
+ "couldNotReachServer": "\u0ab8\u0ab0\u0acd\u0ab5\u0ab0 \u0ab8\u0ac1\u0aa7\u0ac0 \u0aaa\u0ab9\u0acb\u0a82\u0a9a\u0ac0 \u0ab6\u0a95\u0acd\u0aaf\u0abe \u0aa8\u0ab9\u0abf\u0a82",
171
+ "continuingChat": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4\u0aa8\u0ac7 \u0a9a\u0abe\u0ab2\u0ac1 \u0ab0\u0abe\u0a96\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac7"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u0aaa\u0ac7\u0aa8\u0ab2 \u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0aa8\u0acb",
175
+ "reset": "\u0aaa\u0ac1\u0aa8:\u0ab8\u0ac1\u0aaf\u0acb\u0a9c\u0abf\u0aa4 \u0a95\u0ab0\u0acb",
176
+ "cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
177
+ "confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0aac\u0aa7\u0abe",
185
+ "feedbackPositive": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0ab9\u0a95\u0abe\u0ab0\u0abe\u0aa4\u0acd\u0aae\u0a95",
186
+ "feedbackNegative": "\u0aaa\u0acd\u0ab0\u0aa4\u0abf\u0ab8\u0abe\u0aa6: \u0aa8\u0a95\u0abe\u0ab0\u0abe\u0aa4\u0acd\u0aae\u0a95"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u0ab6\u0acb\u0aa7\u0ab5\u0ac1\u0a82"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u0a86 \u0aa5\u0acd\u0ab0\u0ac7\u0aa1\u0aa8\u0ac0 \u0ab8\u0abe\u0aa5\u0ac7 \u0ab8\u0abe\u0aa5\u0ac7 \u0aa4\u0ac7\u0aa8\u0abe \u0ab8\u0a82\u0aa6\u0ac7\u0ab6\u0abe \u0a85\u0aa8\u0ac7 \u0aa4\u0aa4\u0acd\u0ab5\u0acb\u0aa8\u0ac7 \u0aaa\u0aa3 \u0a95\u0abe\u0aa2\u0ac0 \u0aa8\u0abe\u0a96\u0ab6\u0ac7.",
194
+ "cancel": "\u0ab0\u0aa6\u0acd\u0aa6",
195
+ "confirm": "\u0a96\u0abe\u0aa4\u0ab0\u0ac0 \u0a95\u0ab0\u0acb",
196
+ "deletingChat": "\u0a9a\u0ac5\u0a9f\u0aa8\u0ac7 \u0a95\u0abe\u0aa2\u0ac0 \u0ab0\u0ab9\u0acd\u0aaf\u0abe \u0a9b\u0ac0\u0a8f",
197
+ "chatDeleted": "\u0a9a\u0ac5\u0a9f \u0aa1\u0abf\u0ab2\u0ac0\u0a9f \u0aa5\u0a88 \u0a97\u0a88"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u0aad\u0ac2\u0aa4\u0a95\u0abe\u0ab3\u0aa8\u0ac0 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4\u0acb"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0a96\u0abe\u0ab2\u0ac0...",
204
+ "today": "\u0a86\u0a9c\u0ac7",
205
+ "yesterday": "\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7",
206
+ "previous7days": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0abe \u0aed \u0aa6\u0abf\u0ab5\u0ab8\u0acb",
207
+ "previous30days": "\u0aaa\u0ab9\u0ac7\u0ab2\u0abe\u0aa8\u0abe \u0ae9\u0ae6 \u0aa6\u0abf\u0ab5\u0ab8\u0acb"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u0aac\u0abe\u0a9c\u0ac1\u0aaa\u0a9f\u0acd\u0a9f\u0ac0\u0aa8\u0ac7 \u0aac\u0a82\u0aa7 \u0a95\u0ab0\u0acb",
211
+ "openSidebar": "\u0aac\u0abe\u0a9c\u0ac1\u0aaa\u0a9f\u0acd\u0a9f\u0ac0 \u0a96\u0acb\u0ab2\u0acb"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u0ab8\u0a82\u0ab5\u0abe\u0aa6\u0aae\u0abe\u0a82 \u0aaa\u0abe\u0a9b\u0abe \u0a9c\u0abe\u0a93",
216
+ "chatCreatedOn": "\u0a86 \u0ab5\u0abe\u0aa4\u0a9a\u0ac0\u0aa4 \u0aa4\u0ac7\u0aa8\u0ac0 \u0aaa\u0ab0 \u0aac\u0aa8\u0abe\u0ab5\u0ac7\u0ab2 \u0ab9\u0aa4\u0ac0"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u0ab8\u0a82\u0ab5\u0abe\u0aa6",
221
+ "readme": "\u0ab0\u0ac0\u0aa1\u0aae\u0ac7"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u0aaa\u0acd\u0ab0\u0aa6\u0abe\u0aa4\u0abe\u0a93\u0aa8\u0ac7 \u0ab2\u0abe\u0ab5\u0ab5\u0abe\u0aae\u0abe\u0a82 \u0aa8\u0abf\u0ab7\u0acd\u0aab\u0ab3\u0aa4\u0abe:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u0ab8\u0aab\u0ab3\u0aa4\u0abe\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u0a95 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abe\u0aaf\u0ac7\u0ab2",
234
+ "requiredApiKeys": "\u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 API \u0a95\u0ac0\u0a93",
235
+ "requiredApiKeysInfo": "\u0a86 \u0a8f\u0aaa\u0acd\u0ab2\u0abf\u0a95\u0ac7\u0ab6\u0aa8\u0aa8\u0acb \u0a89\u0aaa\u0aaf\u0acb\u0a97 \u0a95\u0ab0\u0ab5\u0abe \u0aae\u0abe\u0a9f\u0ac7, \u0aa8\u0ac0\u0a9a\u0ac7\u0aa8\u0ac0 API \u0a95\u0ac0\u0a93 \u0a9c\u0ab0\u0ac2\u0ab0\u0ac0 \u0a9b\u0ac7. \u0a95\u0ac0\u0a93 \u0aa4\u0aae\u0abe\u0ab0\u0abe \u0aa1\u0abf\u0ab5\u0abe\u0a87\u0ab8\u0aa8\u0abe \u0ab8\u0acd\u0aa5\u0abe\u0aa8\u0abf\u0a95 \u0ab8\u0acd\u0a9f\u0acb\u0ab0\u0ac7\u0a9c \u0aaa\u0ab0 \u0ab8\u0a82\u0a97\u0acd\u0ab0\u0ab9\u0abf\u0aa4 \u0aa5\u0abe\u0aaf \u0a9b\u0ac7."
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0aa4\u0aae\u0ac7 \u0a86 \u0aaa\u0acd\u0ab0\u0acb\u0a9c\u0ac7\u0a95\u0acd\u0a9f\u0aa8\u0acb \u0aad\u0abe\u0a97 \u0aa8\u0aa5\u0ac0."
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u0aab\u0ab0\u0ac0 \u0ab6\u0ab0\u0ac2 \u0a95\u0ab0\u0acb \u0ab8\u0a82\u0ab5\u0abe\u0aa6"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/he-IL.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API Keys",
10
+ "logout": "\u05d4\u05ea\u05e0\u05ea\u05e7"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f Task List",
22
+ "loading": "\u05d8\u05d5\u05e2\u05df...",
23
+ "error": "\u05e9\u05d2\u05d9\u05d0\u05d4"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u05d1\u05d8\u05dc \u05d4\u05e2\u05dc\u05d0\u05d4",
28
+ "removeAttachment": "\u05d4\u05e1\u05e8 \u05e7\u05d5\u05d1\u05e5 \u05de\u05e6\u05d5\u05e8\u05e3"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u05e6\u05d5\u05e8 \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9?",
32
+ "clearChat": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05e0\u05e7\u05d4 \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d4\u05e0\u05d5\u05db\u05d7\u05d9\u05d5\u05ea \u05d5\u05ea\u05ea\u05d7\u05d9\u05dc \u05e6'\u05d0\u05d8 \u05d7\u05d3\u05e9.",
33
+ "cancel": "\u05d1\u05d8\u05dc",
34
+ "confirm": "\u05d0\u05e9\u05e8"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
38
+ "expandMessages": "\u05d4\u05e8\u05d7\u05d1 \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea",
39
+ "hideChainOfThought": "\u05d4\u05e1\u05ea\u05e8 \u05e9\u05e8\u05e9\u05e8\u05ea \u05de\u05d7\u05e9\u05d1\u05d5\u05ea",
40
+ "darkMode": "\u05de\u05e6\u05d1 \u05db\u05d4\u05d4"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u05de\u05e9\u05ea\u05de\u05e9 \u05d1-",
44
+ "running": "\u05e8\u05e5",
45
+ "took_one": "\u05dc\u05e7\u05d7 \u05e6\u05e2\u05d3 {{count}}",
46
+ "took_other": "\u05dc\u05e7\u05d7 \u05e6\u05e2\u05d3\u05d9\u05dd {{count}}"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u05d4\u05ea\u05d7\u05d1\u05e8 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4.",
51
+ "form": {
52
+ "email": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
53
+ "password": "\u05e1\u05d9\u05e1\u05de\u05d0",
54
+ "noAccount": "\u05d0\u05d9\u05df \u05dc\u05da \u05d7\u05e9\u05d1\u05d5\u05df?",
55
+ "alreadyHaveAccount": "\u05db\u05d1\u05e8 \u05d9\u05e9 \u05dc\u05da \u05d7\u05e9\u05d1\u05d5\u05df?",
56
+ "signup": "\u05d4\u05d9\u05e8\u05e9\u05dd",
57
+ "signin": "\u05d4\u05d9\u05db\u05e0\u05e1",
58
+ "or": "\u05d0\u05d5",
59
+ "continue": "\u05d4\u05de\u05e9\u05da",
60
+ "forgotPassword": "\u05e9\u05db\u05d7\u05ea \u05e1\u05d9\u05e1\u05de\u05d4?",
61
+ "passwordMustContain": "\u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05db\u05d9\u05dc:",
62
+ "emailRequired": "\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
63
+ "passwordRequired": "\u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d9\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4"
64
+ },
65
+ "error": {
66
+ "default": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05d9\u05db\u05e0\u05e1.",
67
+ "signin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
68
+ "oauthsignin": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
69
+ "redirect_uri_mismatch": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4-URI \u05dc\u05d4\u05e4\u05e0\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05ea\u05d5\u05d0\u05de\u05ea \u05dc\u05ea\u05e6\u05d5\u05e8\u05ea \u05d4\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d4 \u05e9\u05dc oauth.",
70
+ "oauthcallbackerror": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
71
+ "oauthcreateaccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
72
+ "emailcreateaccount": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
73
+ "callback": "\u05e0\u05e1\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d7\u05e8.",
74
+ "oauthaccountnotlinked": "\u05db\u05d3\u05d9 \u05dc\u05d0\u05e9\u05e8 \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da, \u05d4\u05d9\u05db\u05e0\u05e1 \u05e2\u05dd \u05d0\u05d5\u05ea\u05d5 \u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05d1\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9\u05ea \u05d1\u05de\u05e7\u05d5\u05e8.",
75
+ "emailsignin": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc.",
76
+ "emailverify": "\u05d0\u05e0\u05d0 \u05d0\u05e9\u05e8 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da, \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d7\u05d3\u05e9 \u05e0\u05e9\u05dc\u05d7.",
77
+ "credentialssignin": "\u05d4\u05db\u05e0\u05d9\u05e1\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05e9\u05e1\u05d9\u05e4\u05e7\u05ea \u05e0\u05db\u05d5\u05e0\u05d9\u05dd.",
78
+ "sessionrequired": "\u05d0\u05e0\u05d0 \u05d4\u05d9\u05db\u05e0\u05e1 \u05db\u05d3\u05d9 \u05dc\u05d2\u05e9\u05ea \u05dc\u05d3\u05e3 \u05d6\u05d4."
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u05d0\u05ea\u05d4 \u05db\u05de\u05e2\u05d8 \u05e9\u05dd! \u05e9\u05dc\u05d7\u05e0\u05d5 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d0\u05dc ",
83
+ "verifyEmailLink": "\u05d0\u05e0\u05d0 \u05dc\u05d7\u05e5 \u05e2\u05dc \u05d4\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d1\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d6\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05e9\u05dc\u05da.",
84
+ "didNotReceive": "\u05dc\u05d0 \u05de\u05d5\u05e6\u05d0 \u05d0\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc?",
85
+ "resendEmail": "\u05e9\u05dc\u05d7 \u05e9\u05d5\u05d1 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
86
+ "goBack": "\u05d7\u05d6\u05d5\u05e8 \u05d0\u05d7\u05d5\u05e8\u05d4",
87
+ "emailSent": "\u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e0\u05e9\u05dc\u05d7 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4.",
88
+ "verifyEmail": "\u05d0\u05de\u05ea \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da"
89
+ },
90
+ "providerButton": {
91
+ "continue": "\u05d4\u05de\u05e9\u05da \u05e2\u05dd {{provider}}",
92
+ "signup": "\u05d4\u05d9\u05e8\u05e9\u05dd \u05e2\u05dd {{provider}}"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u05e1\u05d9\u05e1\u05de\u05d4 \u05d7\u05d3\u05e9\u05d4 \u05d4\u05d9\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
96
+ "passwordsMustMatch": "\u05d4\u05e1\u05d9\u05e1\u05de\u05d0\u05d5\u05ea \u05d7\u05d9\u05d9\u05d1\u05d5\u05ea \u05dc\u05d4\u05ea\u05d0\u05d9\u05dd",
97
+ "confirmPasswordRequired": "\u05d0\u05d9\u05e9\u05d5\u05e8 \u05e1\u05d9\u05e1\u05de\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
98
+ "newPassword": "\u05e1\u05d9\u05e1\u05de\u05d0 \u05d7\u05d3\u05e9\u05d4",
99
+ "confirmPassword": "\u05d0\u05e9\u05e8 \u05e1\u05d9\u05e1\u05de\u05d0",
100
+ "resetPassword": "\u05d0\u05e4\u05e1 \u05e1\u05d9\u05e1\u05de\u05d4"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
104
+ "emailRequired": "\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
105
+ "emailSent": "\u05d0\u05e0\u05d0 \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc {{email}} \u05dc\u05e7\u05d1\u05dc\u05ea \u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05dc\u05d0\u05d9\u05e4\u05d5\u05e1 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da.",
106
+ "enterEmail": "\u05d4\u05d6\u05df \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05dc\u05da \u05d5\u05d0\u05e0\u05d5 \u05e0\u05e9\u05dc\u05d7 \u05dc\u05da \u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05dc\u05d0\u05d9\u05e4\u05d5\u05e1 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da.",
107
+ "resendEmail": "\u05e9\u05dc\u05d7 \u05e9\u05d5\u05d1 \u05d0\u05d9\u05de\u05d9\u05d9\u05dc",
108
+ "continue": "\u05d4\u05de\u05e9\u05da",
109
+ "goBack": "\u05d7\u05d6\u05d5\u05e8 \u05d0\u05d7\u05d5\u05e8\u05d4"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u05d4\u05e6\u05d2 \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4",
118
+ "lastInputs": "\u05e7\u05dc\u05d8 \u05d0\u05d7\u05e8\u05d5\u05df",
119
+ "noInputs": "\u05e8\u05d9\u05e7...",
120
+ "loading": "\u05d8\u05d5\u05e2\u05df..."
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "placeholder": "\u05db\u05ea\u05d5\u05d1 \u05d4\u05d5\u05d3\u05e2\u05d4 \u05db\u05d0\u05df..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u05d4\u05ea\u05d7\u05dc \u05d4\u05e7\u05dc\u05d8\u05d4",
129
+ "stop": "\u05e2\u05e6\u05d5\u05e8 \u05d4\u05e7\u05dc\u05d8\u05d4"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05d4",
133
+ "stopTask": "\u05e2\u05e6\u05d5\u05e8 \u05de\u05e9\u05d9\u05de\u05d4"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u05e6\u05e8\u05e3 \u05e7\u05d1\u05e6\u05d9\u05dd"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u05e0\u05d1\u05e0\u05d4 \u05e2\u05dd"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u05e8\u05e5",
145
+ "executedSuccessfully": "\u05d1\u05d5\u05e6\u05e2 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4",
146
+ "failed": "\u05e0\u05db\u05e9\u05dc",
147
+ "feedbackUpdated": "\u05de\u05e9\u05d5\u05d1 \u05e2\u05d5\u05d3\u05db\u05df",
148
+ "updating": "\u05de\u05e2\u05d3\u05db\u05df"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u05e9\u05d7\u05e8\u05e8 \u05d0\u05ea \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05dc\u05da \u05db\u05d0\u05df"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
169
+ "cancelledUploadOf": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e9\u05dc \u05d1\u05d5\u05d8\u05dc\u05d4",
170
+ "couldNotReachServer": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05d4\u05d2\u05d9\u05e2 \u05dc\u05e9\u05e8\u05ea",
171
+ "continuingChat": "\u05de\u05de\u05e9\u05d9\u05da \u05d1\u05e6'\u05d0\u05d8 \u05d4\u05e7\u05d5\u05d3\u05dd"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u05dc\u05d5\u05d7 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
175
+ "reset": "\u05d0\u05e4\u05e1",
176
+ "cancel": "\u05d1\u05d8\u05dc",
177
+ "confirm": "\u05d0\u05e9\u05e8"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u05de\u05e9\u05d5\u05d1: \u05d4\u05db\u05dc",
185
+ "feedbackPositive": "\u05de\u05e9\u05d5\u05d1: \u05d7\u05d9\u05d5\u05d1\u05d9",
186
+ "feedbackNegative": "\u05de\u05e9\u05d5\u05d1: \u05e9\u05dc\u05d9\u05dc\u05d9"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u05d7\u05d9\u05e4\u05d5\u05e9"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5 \u05ea\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05e9\u05e8\u05e9\u05d5\u05e8 \u05d5\u05db\u05df \u05d0\u05ea \u05d4\u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d5\u05d4\u05e8\u05db\u05d9\u05d1\u05d9\u05dd \u05e9\u05dc\u05d5.",
194
+ "cancel": "\u05d1\u05d8\u05dc",
195
+ "confirm": "\u05d0\u05e9\u05e8",
196
+ "deletingChat": "\u05de\u05d5\u05d7\u05e7 \u05e6'\u05d0\u05d8",
197
+ "chatDeleted": "\u05d4\u05e6'\u05d0\u05d8 \u05e0\u05de\u05d7\u05e7"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u05e6'\u05d0\u05d8\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u05e8\u05d9\u05e7...",
204
+ "today": "\u05d4\u05d9\u05d5\u05dd",
205
+ "yesterday": "\u05d0\u05ea\u05de\u05d5\u05dc",
206
+ "previous7days": "7 \u05d9\u05de\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd",
207
+ "previous30days": "30 \u05d9\u05de\u05d9\u05dd \u05e7\u05d5\u05d3\u05de\u05d9\u05dd"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u05e1\u05d2\u05d5\u05e8 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3",
211
+ "openSidebar": "\u05e4\u05ea\u05d7 \u05e1\u05e8\u05d2\u05dc \u05e6\u05d3"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u05d7\u05d6\u05d5\u05e8 \u05dc\u05e6'\u05d0\u05d8",
216
+ "chatCreatedOn": "\u05d4\u05e6'\u05d0\u05d8 \u05d4\u05d6\u05d4 \u05e0\u05d5\u05e6\u05e8 \u05d1\u05ea\u05d0\u05e8\u05d9\u05da"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u05e6'\u05d0\u05d8",
221
+ "readme": "\u05d0\u05d5\u05d3\u05d5\u05ea"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u05e0\u05db\u05e9\u05dc\u05d4 \u05d4\u05d1\u05d0\u05ea \u05e1\u05e4\u05e7\u05d9\u05dd:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u05e0\u05e9\u05de\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4",
234
+ "requiredApiKeys": "\u05de\u05e4\u05ea\u05d7\u05d5\u05ea API \u05e0\u05d3\u05e8\u05e9\u05d9\u05dd",
235
+ "requiredApiKeysInfo": "\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 \u05d4-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."
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u05d0\u05ea\u05d4 \u05dc\u05d0 \u05d7\u05dc\u05e7 \u05de\u05d4\u05e4\u05e8\u05d5\u05d9\u05e7\u05d8 \u05d4\u05d6\u05d4."
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u05d4\u05de\u05e9\u05da \u05e6'\u05d0\u05d8"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/hi.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
8
+ "settingsKey": "\u0926\u0915\u094d\u0937\u093f\u0923\u0940",
9
+ "APIKeys": "\u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u0940",
10
+ "logout": "\u0932\u0949\u0917\u0906\u0909\u091f"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u0928\u0908 \u091a\u0948\u091f"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0915\u093e\u0930\u094d\u092f \u0938\u0942\u091a\u0940",
22
+ "loading": "\u0932\u094b\u0921\u0964\u0964\u0964",
23
+ "error": "\u0915\u094b\u0908 \u0924\u094d\u0930\u0941\u091f\u093f \u0909\u0924\u094d\u092a\u0928\u094d\u0928 \u0939\u0941\u0908"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u0947\u0902",
28
+ "removeAttachment": "\u0905\u0928\u0941\u0932\u0917\u094d\u0928\u0915 \u0928\u093f\u0915\u093e\u0932\u0947\u0902"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u0928\u0908 \u091a\u0948\u091f \u092c\u0928\u093e\u090f\u0901?",
32
+ "clearChat": "\u092f\u0939 \u0935\u0930\u094d\u0924\u092e\u093e\u0928 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0915\u094b \u0938\u093e\u092b\u093c \u0915\u0930\u0947\u0917\u093e \u0914\u0930 \u090f\u0915 \u0928\u0908 \u091a\u0948\u091f \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0917\u093e\u0964",
33
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
34
+ "confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
38
+ "expandMessages": "\u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0915\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u0930\u0947\u0902",
39
+ "hideChainOfThought": "\u0935\u093f\u091a\u093e\u0930 \u0915\u0940 \u0936\u094d\u0930\u0943\u0902\u0916\u0932\u093e \u091b\u093f\u092a\u093e\u090f\u0902",
40
+ "darkMode": "\u0921\u093e\u0930\u094d\u0915 \u092e\u094b\u0921"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u0915\u093e \u0909\u092a\u092f\u094b\u0917 \u0915\u0930\u0915\u0947",
44
+ "running": "\u092d\u093e\u0917\u0928\u093e",
45
+ "took_one": "{{count}} \u0915\u0926\u092e \u0909\u0920\u093e\u092f\u093e",
46
+ "took_other": "{{count}} \u0915\u0926\u092e \u0909\u0920\u093e\u090f"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0910\u092a \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u0947\u0902\u0964",
51
+ "form": {
52
+ "email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
53
+ "password": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
54
+ "noAccount": "\u0915\u094d\u092f\u093e \u0906\u092a\u0915\u0947 \u092a\u093e\u0938 \u0916\u093e\u0924\u093e \u0928\u0939\u0940\u0902 \u0939\u0948?",
55
+ "alreadyHaveAccount": "\u092a\u0939\u0932\u0947 \u0938\u0947 \u0939\u0940 \u090f\u0915 \u0916\u093e\u0924\u093e \u0939\u0948?",
56
+ "signup": "\u0928\u093e\u092e \u0932\u093f\u0916\u094b",
57
+ "signin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902",
58
+ "or": "\u0928\u0939\u0940\u0902 \u0924\u094b",
59
+ "continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e",
60
+ "forgotPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092d\u0942\u0932 \u0917\u090f?",
61
+ "passwordMustContain": "\u0906\u092a\u0915\u0947 \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092e\u0947\u0902 \u0939\u094b\u0928\u093e \u091a\u093e\u0939\u093f\u090f:",
62
+ "emailRequired": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
63
+ "passwordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948"
64
+ },
65
+ "error": {
66
+ "default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0905\u0938\u092e\u0930\u094d\u0925.",
67
+ "signin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
68
+ "oauthsignin": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
69
+ "redirect_uri_mismatch": "\u0930\u0940\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f \u092f\u0942\u0906\u0930\u0906\u0908 \u0913\u0925 \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 \u0939\u0948\u0964",
70
+ "oauthcallbackerror": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
71
+ "oauthcreateaccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
72
+ "emailcreateaccount": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
73
+ "callback": "\u0915\u093f\u0938\u0940 \u0926\u0942\u0938\u0930\u0947 \u0916\u093e\u0924\u0947 \u0938\u0947 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0915\u0947 \u0926\u0947\u0916\u0947\u0902.",
74
+ "oauthaccountnotlinked": "\u0905\u092a\u0928\u0940 \u092a\u0939\u091a\u093e\u0928 \u0915\u0928\u094d\u092b\u093c\u0930\u094d\u092e \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 \u0907\u0938\u094d\u0924\u0947\u092e\u093e\u0932 \u0906\u092a\u0928\u0947 \u092a\u0939\u0932\u0947 \u0915\u093f\u092f\u093e \u0925\u093e.",
75
+ "emailsignin": "\u0908-\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092d\u0947\u091c\u0940 \u091c\u093e \u0938\u0915\u0940.",
76
+ "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\u0964",
77
+ "credentialssignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0935\u093f\u092b\u0932 \u0930\u0939\u093e. \u091c\u093e\u0902\u091a\u0947\u0902 \u0915\u093f \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 \u0938\u0939\u0940 \u0939\u0948\u0902\u0964",
78
+ "sessionrequired": "\u0915\u0943\u092a\u092f\u093e \u0907\u0938 \u092a\u0943\u0937\u094d\u0920 \u0924\u0915 \u092a\u0939\u0941\u0902\u091a\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0947\u0902\u0964"
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0906\u092a \u0932\u0917\u092d\u0917 \u0935\u0939\u093e\u0901 \u0939\u0948\u0902! \u0939\u092e\u0928\u0947 \u090f\u0915 \u0908\u092e\u0947\u0932 \u092d\u0947\u091c\u093e \u0939\u0948 ",
83
+ "verifyEmailLink": "\u0915\u0943\u092a\u092f\u093e \u0905\u092a\u0928\u093e \u0938\u093e\u0907\u0928\u0905\u092a \u092a\u0942\u0930\u093e \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0909\u0938 \u0908\u092e\u0947\u0932 \u092e\u0947\u0902 \u0926\u093f\u090f \u0917\u090f \u0932\u093f\u0902\u0915 \u092a\u0930 \u0915\u094d\u0932\u093f\u0915 \u0915\u0930\u0947\u0902\u0964",
84
+ "didNotReceive": "\u0908\u092e\u0947\u0932 \u0928\u0939\u0940\u0902 \u092e\u093f\u0932 \u0930\u0939\u093e \u0939\u0948?",
85
+ "resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u0903 \u092d\u0947\u091c\u0947\u0902",
86
+ "goBack": "\u092a\u0938 \u091c\u093e\u0913",
87
+ "emailSent": "\u0908\u092e\u0947\u0932 \u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u092d\u0947\u091c\u093e \u0917\u092f\u093e\u0964",
88
+ "verifyEmail": "\u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e \u0938\u0924\u094d\u092f\u093e\u092a\u093f\u0924 \u0915\u0930\u0947\u0902"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u091c\u093e\u0930\u0940 \u0930\u0916\u0947\u0902",
92
+ "signup": "{{provider}} \u0915\u0947 \u0938\u093e\u0925 \u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u0947\u0902"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u0928\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
96
+ "passwordsMustMatch": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u092e\u0947\u0932 \u0916\u093e\u0928\u093e \u091a\u093e\u0939\u093f\u090f",
97
+ "confirmPasswordRequired": "\u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902 \u0915\u093f \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
98
+ "newPassword": "\u0928\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921",
99
+ "confirmPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0915\u0940 \u092a\u0941\u0937\u094d\u091f\u093f \u0915\u0930\u0947\u0902",
100
+ "resetPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0947\u0902"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u093e",
104
+ "emailRequired": "\u0908\u092e\u0947\u0932 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u092b\u093c\u0940\u0932\u094d\u0921 \u0939\u0948",
105
+ "emailSent": "\u0905\u092a\u0928\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0928\u093f\u0930\u094d\u0926\u0947\u0936\u094b\u0902 \u0915\u0947 \u0932\u093f\u090f \u0915\u0943\u092a\u092f\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e {{email}} \u0926\u0947\u0916\u0947\u0902\u0964",
106
+ "enterEmail": "\u0905\u092a\u0928\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u093e \u0926\u0930\u094d\u091c \u0915\u0930\u0947\u0902 \u0914\u0930 \u0939\u092e \u0906\u092a\u0915\u094b \u0905\u092a\u0928\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0928\u093f\u0930\u094d\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902\u0917\u0947\u0964",
107
+ "resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u0903 \u092d\u0947\u091c\u0947\u0902",
108
+ "continue": "\u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e",
109
+ "goBack": "\u092a\u0938 \u091c\u093e\u0913"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093f\u0916\u093e\u090f\u0902",
118
+ "lastInputs": "\u0905\u0902\u0924\u093f\u092e \u0907\u0928\u092a\u0941\u091f",
119
+ "noInputs": "\u0910\u0938\u0947 \u0916\u093e\u0932\u0940...",
120
+ "loading": "\u0932\u094b\u0921\u0964\u0964\u0964"
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "placeholder": "\u0905\u092a\u0928\u093e \u0938\u0902\u0926\u0947\u0936 \u092f\u0939\u093e\u0901 \u091f\u093e\u0907\u092a \u0915\u0930\u0947\u0902..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
129
+ "stop": "\u0930\u093f\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u092c\u0902\u0926 \u0915\u0930\u094b"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u0938\u0902\u0926\u0947\u0936 \u092d\u0947\u091c\u0947\u0902",
133
+ "stopTask": "\u0915\u093e\u0930\u094d\u092f \u092c\u0902\u0926 \u0915\u0930\u094b"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u0905\u0928\u0941\u0932\u0917\u094d\u0928 \u0915\u0930\u0947\u0902"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u0915\u0947 \u0938\u093e\u0925 \u0928\u093f\u0930\u094d\u092e\u093f\u0924"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u092d\u093e\u0917\u0928\u093e",
145
+ "executedSuccessfully": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0928\u093f\u0937\u094d\u092a\u093e\u0926\u093f\u0924",
146
+ "failed": "\u0905\u0938\u092b\u0932",
147
+ "feedbackUpdated": "\u092a\u094d\u0930\u0924\u093f\u0915\u094d\u0930\u093f\u092f\u093e \u0905\u092a\u0921\u0947\u091f \u0915\u0940 \u0917\u0908",
148
+ "updating": "\u0905\u0926\u094d\u092f\u0924\u0928"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0905\u092a\u0928\u0940 \u092b\u093c\u093e\u0907\u0932\u0947\u0902 \u092f\u0939\u093e\u0901 \u0921\u094d\u0930\u0949\u092a \u0915\u0930\u0947\u0902"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932",
169
+ "cancelledUploadOf": "\u0915\u093e \u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u093f\u092f\u093e \u0917\u092f\u093e",
170
+ "couldNotReachServer": "\u0938\u0930\u094d\u0935\u0930 \u0924\u0915 \u0928\u0939\u0940\u0902 \u092a\u0939\u0941\u0901\u091a \u0938\u0915\u093e",
171
+ "continuingChat": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f \u091c\u093e\u0930\u0940 \u0930\u0916\u0928\u093e"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0948\u0928\u0932",
175
+ "reset": "\u0930\u0940\u0938\u0947\u091f",
176
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
177
+ "confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0938\u092d\u0940",
185
+ "feedbackPositive": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0938\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915",
186
+ "feedbackNegative": "\u092a\u094d\u0930\u0924\u093f\u092a\u0941\u0937\u094d\u091f\u093f: \u0928\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u0922\u0942\u0901\u0922"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u092f\u0939 \u0925\u094d\u0930\u0947\u0921 \u0915\u0947 \u0938\u093e\u0925-\u0938\u093e\u0925 \u0907\u0938\u0915\u0947 \u0938\u0902\u0926\u0947\u0936\u094b\u0902 \u0914\u0930 \u0924\u0924\u094d\u0935\u094b\u0902 \u0915\u094b \u092d\u0940 \u0939\u091f\u093e \u0926\u0947\u0917\u093e\u0964",
194
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u0928\u093e",
195
+ "confirm": "\u0938\u0941\u0926\u0943\u0922\u093c \u0915\u0930\u0928\u093e",
196
+ "deletingChat": "\u091a\u0948\u091f \u0939\u091f\u093e\u0928\u093e",
197
+ "chatDeleted": "\u091a\u0948\u091f \u0939\u091f\u093e\u0908 \u0917\u0908"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u092a\u093f\u091b\u0932\u0940 \u091a\u0948\u091f"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0916\u093e\u0932\u0940\u0964\u0964\u0964",
204
+ "today": "\u0906\u091c",
205
+ "yesterday": "\u092c\u0940\u0924\u093e \u0939\u0941\u0906 \u0915\u0932",
206
+ "previous7days": "\u092a\u093f\u091b\u0932\u0947 7 \u0926\u093f\u0928",
207
+ "previous30days": "\u092a\u093f\u091b\u0932\u0947 30 \u0926\u093f\u0928"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u0947\u0902",
211
+ "openSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u0916\u094b\u0932\u0947\u0902"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u091a\u0948\u091f \u092a\u0930 \u0935\u093e\u092a\u0938 \u091c\u093e\u090f\u0902",
216
+ "chatCreatedOn": "\u092f\u0939 \u091a\u0948\u091f \u0907\u0938 \u092a\u0930 \u092c\u0928\u093e\u0908 \u0917\u0908 \u0925\u0940"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u091a\u0948\u091f",
221
+ "readme": "\u0930\u0940\u0921\u092e\u0940"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u092a\u094d\u0930\u0926\u093e\u0924\u093e\u0913\u0902 \u0915\u094b \u0932\u093e\u0928\u0947 \u092e\u0947\u0902 \u0935\u093f\u092b\u0932:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u0938\u092b\u0932\u0924\u093e\u092a\u0942\u0930\u094d\u0935\u0915 \u0938\u0939\u0947\u091c\u093e \u0917\u092f\u093e",
234
+ "requiredApiKeys": "\u0906\u0935\u0936\u094d\u092f\u0915 \u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u0940",
235
+ "requiredApiKeysInfo": "\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 \u090f\u092a\u0940\u0906\u0908 \u0915\u0941\u0902\u091c\u093f\u092f\u094b\u0902 \u0915\u0940 \u0906\u0935\u0936\u094d\u092f\u0915\u0924\u093e \u0939\u094b\u0924\u0940 \u0939\u0948\u0964 \u091a\u093e\u092c\u093f\u092f\u093e\u0901 \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 \u092a\u0930 \u0938\u0902\u0917\u094d\u0930\u0939\u0940\u0924 \u0915\u0940 \u091c\u093e\u0924\u0940 \u0939\u0948\u0902\u0964"
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0906\u092a \u0907\u0938 \u092a\u0930\u093f\u092f\u094b\u091c\u0928\u093e \u0915\u093e \u0939\u093f\u0938\u094d\u0938\u093e \u0928\u0939\u0940\u0902 \u0939\u0948\u0902\u0964"
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u091a\u0948\u091f \u092b\u093f\u0930 \u0938\u0947 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/ja.json ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u8a2d\u5b9a",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API\u30ad\u30fc",
10
+ "logout": "\u30ed\u30b0\u30a2\u30a6\u30c8"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u65b0\u3057\u3044\u30c1\u30e3\u30c3\u30c8"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u30bf\u30b9\u30af\u30ea\u30b9\u30c8",
22
+ "loading": "\u8aad\u307f\u8fbc\u307f\u4e2d...",
23
+ "error": "\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb",
28
+ "removeAttachment": "\u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u65b0\u3057\u3044\u30c1\u30e3\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u304b\uff1f",
32
+ "clearChat": "\u73fe\u5728\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u30af\u30ea\u30a2\u3057\u3066\u65b0\u3057\u3044\u30c1\u30e3\u30c3\u30c8\u3092\u958b\u59cb\u3057\u307e\u3059\u3002",
33
+ "cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
34
+ "confirm": "\u78ba\u8a8d"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u8a2d\u5b9a",
38
+ "expandMessages": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5c55\u958b\u3059\u308b",
39
+ "hideChainOfThought": "\u601d\u8003\u306e\u9023\u9396\u3092\u96a0\u3059",
40
+ "darkMode": "\u30c0\u30fc\u30af\u30e2\u30fc\u30c9"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u51e6\u7406\u4e2d",
44
+ "used": ""
45
+ },
46
+ "auth": {
47
+ "authLogin": {
48
+ "title": "\u3053\u3061\u3089\u304b\u3089\u30ed\u30b0\u30a4\u30f3",
49
+ "form": {
50
+ "email": "\u30e6\u30fc\u30b6\u30fc\u540d",
51
+ "password": "\u30d1\u30b9\u30ef\u30fc\u30c9",
52
+ "noAccount": "\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6301\u3063\u3066\u3044\u307e\u305b\u3093\u304b\uff1f",
53
+ "alreadyHaveAccount": "\u3059\u3067\u306b\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u304a\u6301\u3061\u3067\u3059\u304b\uff1f",
54
+ "signup": "\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7",
55
+ "signin": "\u30b5\u30a4\u30f3\u30a4\u30f3",
56
+ "or": "\u307e\u305f\u306f",
57
+ "continue": "\u30ed\u30b0\u30a4\u30f3",
58
+ "forgotPassword": "\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u304a\u5fd8\u308c\u3067\u3059\u304b\uff1f",
59
+ "passwordMustContain": "\u30d1\u30b9\u30ef\u30fc\u30c9\u306b\u306f\u4ee5\u4e0b\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a",
60
+ "emailRequired": "\u30e6\u30fc\u30b6\u30fc\u540d\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059",
61
+ "passwordRequired": "\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059"
62
+ },
63
+ "error": {
64
+ "default": "\u30b5\u30a4\u30f3\u30a4\u30f3\u3067\u304d\u307e\u305b\u3093\u3002",
65
+ "signin": "\u7570\u306a\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",
66
+ "oauthsignin": "\u7570\u306a\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",
67
+ "redirect_uri_mismatch": "\u30ea\u30c0\u30a4\u30ec\u30af\u30c8URI\u304cOAuth\u30a2\u30d7\u30ea\u306e\u8a2d\u5b9a\u3068\u4e00\u81f4\u3057\u3066\u3044\u307e\u305b\u3093\u3002",
68
+ "oauthcallbackerror": "\u7570\u306a\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",
69
+ "oauthcreateaccount": "\u7570\u306a\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",
70
+ "emailcreateaccount": "\u7570\u306a\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",
71
+ "callback": "\u7570\u306a\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002",
72
+ "oauthaccountnotlinked": "\u672c\u4eba\u78ba\u8a8d\u306e\u305f\u3081\u3001\u5143\u3005\u4f7f\u7528\u3057\u3066\u3044\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u3067\u30b5\u30a4\u30f3\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
73
+ "emailsignin": "\u30e1\u30fc\u30eb\u306e\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002",
74
+ "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\u3002",
75
+ "credentialssignin": "\u30b5\u30a4\u30f3\u30a4\u30f3\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u63d0\u4f9b\u3057\u305f\u60c5\u5831\u304c\u6b63\u3057\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
76
+ "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\u3002"
77
+ }
78
+ },
79
+ "authVerifyEmail": {
80
+ "almostThere": "\u3082\u3046\u5c11\u3057\u3067\u3059\uff01\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u307e\u3057\u305f\uff1a",
81
+ "verifyEmailLink": "\u30e1\u30fc\u30eb\u5185\u306e\u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7\u3092\u5b8c\u4e86\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
82
+ "didNotReceive": "\u30e1\u30fc\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u304b\uff1f",
83
+ "resendEmail": "\u30e1\u30fc\u30eb\u3092\u518d\u9001\u4fe1",
84
+ "goBack": "\u623b\u308b",
85
+ "emailSent": "\u30e1\u30fc\u30eb\u304c\u6b63\u5e38\u306b\u9001\u4fe1\u3055\u308c\u307e\u3057\u305f\u3002",
86
+ "verifyEmail": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044"
87
+ },
88
+ "providerButton": {
89
+ "continue": "\u5efa\u8a2d\u5c40\u306e\u65b9\u306f\u3053\u3061\u3089\u304b\u3089\u30ed\u30b0\u30a4\u30f3",
90
+ "signup": "\u5efa\u8a2d\u5c40\u306e\u65b9\u306f\u3053\u3061\u3089\u304b\u3089\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7"
91
+ },
92
+ "authResetPassword": {
93
+ "newPasswordRequired": "\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059",
94
+ "passwordsMustMatch": "\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093",
95
+ "confirmPasswordRequired": "\u78ba\u8a8d\u7528\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059",
96
+ "newPassword": "\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9",
97
+ "confirmPassword": "\u78ba\u8a8d\u7528\u30d1\u30b9\u30ef\u30fc\u30c9",
98
+ "resetPassword": "\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u30ea\u30bb\u30c3\u30c8"
99
+ },
100
+ "authForgotPassword": {
101
+ "email": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9",
102
+ "emailRequired": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u5fc5\u9808\u9805\u76ee\u3067\u3059",
103
+ "emailSent": "{{email}}\u5b9b\u306b\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\u305f\u3081\u306e\u624b\u9806\u304c\u8a18\u8f09\u3055\u308c\u305f\u30e1\u30fc\u30eb\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002",
104
+ "enterEmail": "\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u30ea\u30bb\u30c3\u30c8\u3059\u308b\u624b\u9806\u3092\u304a\u9001\u308a\u3057\u307e\u3059\u3002",
105
+ "resendEmail": "\u30e1\u30fc\u30eb\u3092\u518d\u9001\u4fe1",
106
+ "continue": "\u7d9a\u884c",
107
+ "goBack": "\u623b\u308b"
108
+ }
109
+ }
110
+ },
111
+ "organisms": {
112
+ "chat": {
113
+ "history": {
114
+ "index": {
115
+ "showHistory": "\u5c65\u6b74\u3092\u8868\u793a",
116
+ "lastInputs": "\u6700\u5f8c\u306e\u5165\u529b",
117
+ "noInputs": "\u30c7\u30fc\u30bf\u304c\u3042\u308a\u307e\u305b\u3093...",
118
+ "loading": "\u8aad\u307f\u8fbc\u307f\u4e2d..."
119
+ }
120
+ },
121
+ "inputBox": {
122
+ "input": {
123
+ "placeholder": "\u3053\u3053\u306b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5165\u529b..."
124
+ },
125
+ "speechButton": {
126
+ "start": "\u9332\u97f3\u3092\u958b\u59cb",
127
+ "stop": "\u9332\u97f3\u3092\u505c\u6b62"
128
+ },
129
+ "SubmitButton": {
130
+ "sendMessage": "\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1",
131
+ "stopTask": "\u30bf\u30b9\u30af\u3092\u505c\u6b62"
132
+ },
133
+ "UploadButton": {
134
+ "attachFiles": "\u30d5\u30a1\u30a4\u30eb\u3092\u6dfb\u4ed8"
135
+ },
136
+ "waterMark": {
137
+ "text": "Built with"
138
+ }
139
+ },
140
+ "Messages": {
141
+ "index": {
142
+ "running": "\u5b9f\u884c\u4e2d",
143
+ "executedSuccessfully": "\u6b63\u5e38\u306b\u5b9f\u884c\u3055\u308c\u307e\u3057\u305f",
144
+ "failed": "\u5931\u6557",
145
+ "feedbackUpdated": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u304c\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f",
146
+ "updating": "\u66f4\u65b0\u4e2d"
147
+ },
148
+ "copyButton": {
149
+ "copyToClipboard": "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc",
150
+ "copied": "\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f\uff01"
151
+ },
152
+ "feedbackButton": {
153
+ "helpful": "\u5f79\u306b\u7acb\u3063\u305f",
154
+ "notHelpful": "\u5f79\u306b\u7acb\u305f\u306a\u304b\u3063\u305f",
155
+ "editFeedback": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u7de8\u96c6"
156
+ },
157
+ "feedbackDialog": {
158
+ "dialogTitle": "\u30b3\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0",
159
+ "submitButton": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u9001\u4fe1"
160
+ }
161
+ },
162
+ "dropScreen": {
163
+ "dropYourFilesHere": "\u3053\u3053\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u30c9\u30ed\u30c3\u30d7\u3057\u3066\u304f\u3060\u3055\u3044"
164
+ },
165
+ "index": {
166
+ "failedToUpload": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f",
167
+ "cancelledUploadOf": "\u6b21\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3057\u305f\uff1a",
168
+ "couldNotReachServer": "\u30b5\u30fc\u30d0\u30fc\u306b\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f",
169
+ "continuingChat": "\u524d\u56de\u306e\u30c1\u30e3\u30c3\u30c8\u3092\u7d9a\u3051\u308b"
170
+ },
171
+ "settings": {
172
+ "settingsPanel": "\u8a2d\u5b9a\u30d1\u30cd\u30eb",
173
+ "reset": "\u30ea\u30bb\u30c3\u30c8",
174
+ "cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
175
+ "confirm": "\u78ba\u8a8d"
176
+ }
177
+ },
178
+ "threadHistory": {
179
+ "sidebar": {
180
+ "filters": {
181
+ "FeedbackSelect": {
182
+ "feedbackAll": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\uff1a\u5168\u3066",
183
+ "feedbackPositive": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\uff1a\u30dd\u30b8\u30c6\u30a3\u30d6",
184
+ "feedbackNegative": "\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\uff1a\u30cd\u30ac\u30c6\u30a3\u30d6"
185
+ },
186
+ "SearchBar": {
187
+ "search": "\u691c\u7d22"
188
+ }
189
+ },
190
+ "DeleteThreadButton": {
191
+ "confirmMessage": "\u3053\u306e\u30b9\u30ec\u30c3\u30c9\u3068\u305d\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304a\u3088\u3073\u8981\u7d20\u3092\u524a\u9664\u3057\u307e\u3059\u3002",
192
+ "cancel": "\u30ad\u30e3\u30f3\u30bb\u30eb",
193
+ "confirm": "\u78ba\u8a8d",
194
+ "deletingChat": "\u30c1\u30e3\u30c3\u30c8\u3092\u524a\u9664\u4e2d",
195
+ "chatDeleted": "\u30c1\u30e3\u30c3\u30c8\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f"
196
+ },
197
+ "index": {
198
+ "pastChats": "\u904e\u53bb\u306e\u30c1\u30e3\u30c3\u30c8"
199
+ },
200
+ "ThreadList": {
201
+ "empty": "\u7a7a\u3067\u3059...",
202
+ "today": "\u4eca\u65e5",
203
+ "yesterday": "\u6628\u65e5",
204
+ "previous7days": "\u904e\u53bb7\u65e5\u9593",
205
+ "previous30days": "\u904e\u53bb30\u65e5\u9593"
206
+ },
207
+ "TriggerButton": {
208
+ "closeSidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u9589\u3058\u308b",
209
+ "openSidebar": "\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u958b\u304f"
210
+ }
211
+ },
212
+ "Thread": {
213
+ "backToChat": "\u30c1\u30e3\u30c3\u30c8\u306b\u623b\u308b",
214
+ "chatCreatedOn": "\u30c1\u30e3\u30c3\u30c8\u4f5c\u6210\u65e5"
215
+ }
216
+ },
217
+ "header": {
218
+ "chat": "\u30c1\u30e3\u30c3\u30c8",
219
+ "readme": "\u4f7f\u3044\u65b9"
220
+ }
221
+ }
222
+ },
223
+ "hooks": {
224
+ "useLLMProviders": {
225
+ "failedToFetchProviders": "\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff1a"
226
+ }
227
+ },
228
+ "pages": {
229
+ "Design": {},
230
+ "Env": {
231
+ "savedSuccessfully": "\u4fdd\u5b58\u304c\u6210\u529f\u3057\u307e\u3057\u305f",
232
+ "requiredApiKeys": "\u5fc5\u8981\u306aAPI\u30ad\u30fc",
233
+ "requiredApiKeysInfo": "\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\u30c7\u30d0\u30a4\u30b9\u306e\u30ed\u30fc\u30ab\u30eb\u30b9\u30c8\u30ec\u30fc\u30b8\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002"
234
+ },
235
+ "Page": {
236
+ "notPartOfProject": "\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e00\u90e8\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002"
237
+ },
238
+ "ResumeButton": {
239
+ "resumeChat": "\u30c1\u30e3\u30c3\u30c8\u3092\u518d\u958b"
240
+ }
241
+ }
242
+ }
backend/.chainlit/translations/kn.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3\u0cc1",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1",
10
+ "logout": "\u0cb2\u0cbe\u0c97\u0ccd \u0c94\u0c9f\u0ccd"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0c95\u0cbe\u0cb0\u0ccd\u0caf \u0caa\u0c9f\u0ccd\u0c9f\u0cbf",
22
+ "loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6...",
23
+ "error": "\u0ca6\u0ccb\u0cb7 \u0cb8\u0c82\u0cad\u0cb5\u0cbf\u0cb8\u0cbf\u0ca6\u0cc6"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1 \u0cae\u0cbe\u0ca1\u0cbf",
28
+ "removeAttachment": "\u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0cb9\u0cbe\u0c95\u0cbf"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd \u0cb0\u0c9a\u0cbf\u0cb8\u0cac\u0cc7\u0c95\u0cc6?",
32
+ "clearChat": "\u0c87\u0ca6\u0cc1 \u0caa\u0ccd\u0cb0\u0cb8\u0ccd\u0ca4\u0cc1\u0ca4 \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0cb0\u0cb5\u0cc1\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6 \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0cb9\u0cca\u0cb8 \u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0ca6\u0cc6.",
33
+ "cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
34
+ "confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3\u0cc1",
38
+ "expandMessages": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb5\u0cbf\u0cb8\u0ccd\u0ca4\u0cb0\u0cbf\u0cb8\u0cbf",
39
+ "hideChainOfThought": "\u0c9a\u0cbf\u0c82\u0ca4\u0ca8\u0cc6\u0caf \u0cb8\u0cb0\u0caa\u0cb3\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0cb0\u0cc6\u0cae\u0cbe\u0ca1\u0cc1",
40
+ "darkMode": "\u0ca1\u0cbe\u0cb0\u0ccd\u0c95\u0ccd \u0cae\u0ccb\u0ca1\u0ccd"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u0cac\u0cb3\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
44
+ "running": "\u0c9a\u0cb2\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
45
+ "took_one": "{{count}} \u0cb9\u0cc6\u0c9c\u0ccd\u0c9c\u0cc6 \u0c87\u0c9f\u0ccd\u0c9f\u0cbf\u0ca6\u0cc6",
46
+ "took_other": "{{count}} \u0cb9\u0cc6\u0c9c\u0ccd\u0c9c\u0cc6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca4\u0cc6\u0c97\u0cc6\u0ca6\u0cc1\u0c95\u0cca\u0c82\u0ca1\u0cb0\u0cc1"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0caa\u0ccd\u0cb0\u0cb5\u0cc7\u0cb6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb2\u0cbe\u0c97\u0cbf\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf.",
51
+ "form": {
52
+ "email": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
53
+ "password": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
54
+ "noAccount": "\u0c96\u0cbe\u0ca4\u0cc6 \u0c87\u0cb2\u0ccd\u0cb2\u0cb5\u0cc7?",
55
+ "alreadyHaveAccount": "\u0c88\u0c97\u0cbe\u0c97\u0cb2\u0cc7 \u0c96\u0cbe\u0ca4\u0cc6\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbe?",
56
+ "signup": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
57
+ "signin": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cbf",
58
+ "or": "\u0c85\u0ca5\u0cb5\u0cbe",
59
+ "continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
60
+ "forgotPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc6\u0ca4\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbe?",
61
+ "passwordMustContain": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c87\u0cb5\u0cc1\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c92\u0cb3\u0c97\u0cca\u0c82\u0ca1\u0cbf\u0cb0\u0cac\u0cc7\u0c95\u0cc1:",
62
+ "emailRequired": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
63
+ "passwordRequired": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6"
64
+ },
65
+ "error": {
66
+ "default": "\u0cb8\u0cc8\u0ca8\u0ccd \u0c87\u0ca8\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0c85\u0cb8\u0cae\u0cb0\u0ccd\u0ca5\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6.",
67
+ "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.",
68
+ "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.",
69
+ "redirect_uri_mismatch": "\u0cae\u0cb0\u0cc1\u0ca8\u0cbf\u0cb0\u0ccd\u0ca6\u0cc7\u0cb6\u0ca8\u0ca6 URI \u0c86\u0ccd\u0caf\u0caa\u0ccd \u0c95\u0cbe\u0ca8\u0ccd\u0cab\u0cbf\u0c97\u0cb0\u0cc7\u0cb6\u0ca8\u0ccd \u0c97\u0cc6 \u0cb9\u0ccb\u0cb2\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0cb2\u0ccd\u0cb2.",
70
+ "oauthcallbackerror": "\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.",
71
+ "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.",
72
+ "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.",
73
+ "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.",
74
+ "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\u0cc2\u0cb2\u0ca4\u0c83 \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.",
75
+ "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.",
76
+ "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.",
77
+ "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.",
78
+ "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."
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0ca8\u0cc0\u0cb5\u0cc1 \u0cac\u0cb9\u0cc1\u0ca4\u0cc7\u0c95 \u0c85\u0cb2\u0ccd\u0cb2\u0cbf\u0ca6\u0ccd\u0ca6\u0cc0\u0cb0\u0cbf! \u0ca8\u0cbe\u0cb5\u0cc1 \u0c97\u0cc6 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cbf\u0ca6\u0ccd\u0ca6\u0cc7\u0cb5\u0cc6 ",
83
+ "verifyEmailLink": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0caa\u0cc2\u0cb0\u0ccd\u0ca3\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0c86 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0ca8\u0cb2\u0ccd\u0cb2\u0cbf\u0cb0\u0cc1\u0cb5 \u0cb2\u0cbf\u0c82\u0c95\u0ccd \u0c95\u0ccd\u0cb2\u0cbf\u0c95\u0ccd \u0cae\u0cbe\u0ca1\u0cbf.",
84
+ "didNotReceive": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbf\u0cb2\u0ccd\u0cb2\u0cb5\u0cc7?",
85
+ "resendEmail": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
86
+ "goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0cc6\u0cc2\u0cd5\u0c97\u0cc1",
87
+ "emailSent": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6.",
88
+ "verifyEmail": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
92
+ "signup": "{{provider}} \u0ca8\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0cb8\u0cc8\u0ca8\u0ccd \u0c85\u0caa\u0ccd \u0cae\u0cbe\u0ca1\u0cbf"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u0cb9\u0cca\u0cb8 \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
96
+ "passwordsMustMatch": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c97\u0cb3\u0cc1 \u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0c95\u0cc6\u0caf\u0cbe\u0c97\u0cac\u0cc7\u0c95\u0cc1",
97
+ "confirmPasswordRequired": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c8e\u0c82\u0ca6\u0cc1 \u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
98
+ "newPassword": "\u0cb9\u0cca\u0cb8 \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd",
99
+ "confirmPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
100
+ "resetPassword": "\u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8",
104
+ "emailRequired": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 \u0cab\u0cc0\u0cb2\u0ccd\u0ca1\u0ccd \u0c86\u0c97\u0cbf\u0ca6\u0cc6",
105
+ "emailSent": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cb2\u0cc1 \u0cb8\u0cc2\u0c9a\u0ca8\u0cc6\u0c97\u0cb3\u0cbf\u0c97\u0cbe\u0c97\u0cbf \u0ca6\u0caf\u0cb5\u0cbf\u0c9f\u0ccd\u0c9f\u0cc1 \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8 {{email}} \u0caa\u0cb0\u0cbf\u0cb6\u0cc0\u0cb2\u0cbf\u0cb8\u0cbf.",
106
+ "enterEmail": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0cb5\u0cbf\u0cb3\u0cbe\u0cb8\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0ca8\u0cae\u0cc2\u0ca6\u0cbf\u0cb8\u0cbf \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0caa\u0cbe\u0cb8\u0ccd \u0cb5\u0cb0\u0ccd\u0ca1\u0ccd \u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cb2\u0cc1 \u0ca8\u0cbe\u0cb5\u0cc1 \u0ca8\u0cbf\u0cae\u0c97\u0cc6 \u0cb8\u0cc2\u0c9a\u0ca8\u0cc6\u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cb3\u0cc1\u0cb9\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cc7\u0cb5\u0cc6.",
107
+ "resendEmail": "\u0c87\u0cae\u0cc7\u0cb2\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cae\u0ca4\u0ccd\u0ca4\u0cc6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
108
+ "continue": "\u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0cb8\u0cbf",
109
+ "goBack": "\u0cb9\u0cbf\u0c82\u0ca6\u0cc6 \u0cb9\u0cc6\u0cc2\u0cd5\u0c97\u0cc1"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0c87\u0ca4\u0cbf\u0cb9\u0cbe\u0cb8 \u0ca4\u0ccb\u0cb0\u0cbf\u0cb8\u0cc1",
118
+ "lastInputs": "\u0c95\u0cca\u0ca8\u0cc6\u0caf \u0c87\u0ca8\u0ccd \u0caa\u0cc1\u0c9f\u0ccd \u0c97\u0cb3\u0cc1",
119
+ "noInputs": "\u0c8e\u0c82\u0ca4\u0cb9 \u0c96\u0cbe\u0cb2\u0cbf...",
120
+ "loading": "\u0cb2\u0ccb\u0ca1\u0ccd \u0c86\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6..."
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "placeholder": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cb8\u0c82\u0ca6\u0cc7\u0cb6\u0cb5\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cac\u0cc6\u0cb0\u0cb3\u0c9a\u0ccd\u0c9a\u0cbf\u0cb8\u0cbf..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0caa\u0ccd\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf",
129
+ "stop": "\u0cb0\u0cc6\u0c95\u0cbe\u0cb0\u0ccd\u0ca1\u0cbf\u0c82\u0c97\u0ccd \u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cc1"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u0cb8\u0c82\u0ca6\u0cc7\u0cb6 \u0c95\u0cb3\u0cbf\u0cb8\u0cbf",
133
+ "stopTask": "\u0ca8\u0cbf\u0cb2\u0ccd\u0cb2\u0cbf\u0cb8\u0cc1 \u0c95\u0cbe\u0cb0\u0ccd\u0caf"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u0cab\u0cc8\u0cb2\u0ccd \u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0cb2\u0c97\u0ca4\u0ccd\u0ca4\u0cbf\u0cb8\u0cbf"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u0c87\u0ca6\u0cb0\u0cca\u0c82\u0ca6\u0cbf\u0c97\u0cc6 \u0ca8\u0cbf\u0cb0\u0ccd\u0cae\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u0c9a\u0cb2\u0cbf\u0cb8\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
145
+ "executedSuccessfully": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c95\u0cbe\u0cb0\u0ccd\u0caf\u0c97\u0ca4\u0c97\u0cca\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
146
+ "failed": "\u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
147
+ "feedbackUpdated": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6 \u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
148
+ "updating": "\u0ca8\u0cb5\u0cc0\u0c95\u0cb0\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0ca8\u0cbf\u0cae\u0ccd\u0cae \u0cab\u0cc8\u0cb2\u0ccd \u0c97\u0cb3\u0ca8\u0ccd\u0ca8\u0cc1 \u0c87\u0cb2\u0ccd\u0cb2\u0cbf \u0cac\u0cbf\u0ca1\u0cbf"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cae\u0cbe\u0ca1\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
169
+ "cancelledUploadOf": "\u0c85\u0caa\u0ccd \u0cb2\u0ccb\u0ca1\u0ccd \u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0c97\u0cca\u0c82\u0ca1\u0cbf\u0ca6\u0cc6",
170
+ "couldNotReachServer": "\u0cb8\u0cb0\u0ccd\u0cb5\u0cb0\u0ccd \u0ca4\u0cb2\u0cc1\u0caa\u0cb2\u0cc1 \u0cb8\u0cbe\u0ca7\u0ccd\u0caf\u0cb5\u0cbe\u0c97\u0cb2\u0cbf\u0cb2\u0ccd\u0cb2",
171
+ "continuingChat": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0c9a\u0cbe\u0c9f\u0ccd \u0cae\u0cc1\u0c82\u0ca6\u0cc1\u0cb5\u0cb0\u0cbf\u0caf\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u0cb8\u0cc6\u0c9f\u0ccd\u0c9f\u0cbf\u0c82\u0c97\u0ccd \u0c97\u0cb3 \u0cab\u0cb2\u0c95",
175
+ "reset": "\u0cae\u0cb0\u0cc1\u0cb9\u0cca\u0c82\u0ca6\u0cbf\u0cb8\u0cbf",
176
+ "cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
177
+ "confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0c8e\u0cb2\u0ccd\u0cb2\u0cb5\u0cc2",
185
+ "feedbackPositive": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0ca7\u0ca8\u0cbe\u0ca4\u0ccd\u0cae\u0c95",
186
+ "feedbackNegative": "\u0caa\u0ccd\u0cb0\u0ca4\u0cbf\u0c95\u0ccd\u0cb0\u0cbf\u0caf\u0cc6: \u0ca8\u0c95\u0cbe\u0cb0\u0cbe\u0ca4\u0ccd\u0cae\u0c95"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u0cb9\u0cc1\u0ca1\u0cc1\u0c95\u0cc1"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u0c87\u0ca6\u0cc1 \u0ca5\u0ccd\u0cb0\u0cc6\u0ca1\u0ccd \u0cae\u0ca4\u0ccd\u0ca4\u0cc1 \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.",
194
+ "cancel": "\u0cb0\u0ca6\u0ccd\u0ca6\u0cc1\u0cae\u0cbe\u0ca1\u0cbf",
195
+ "confirm": "\u0ca6\u0cc3\u0ca2\u0caa\u0ca1\u0cbf\u0cb8\u0cbf",
196
+ "deletingChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cbf\u0ca6\u0cc6",
197
+ "chatDeleted": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 \u0c9a\u0cbe\u0c9f\u0ccd \u0c97\u0cb3\u0cc1"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0c96\u0cbe\u0cb2\u0cbf...",
204
+ "today": "\u0c87\u0c82\u0ca6\u0cc1",
205
+ "yesterday": "\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6",
206
+ "previous7days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 7 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1",
207
+ "previous30days": "\u0cb9\u0cbf\u0c82\u0ca6\u0cbf\u0ca8 30 \u0ca6\u0cbf\u0ca8\u0c97\u0cb3\u0cc1"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u0cb8\u0cc8\u0ca1\u0ccd \u0cac\u0cbe\u0cb0\u0ccd \u0cae\u0cc1\u0c9a\u0ccd\u0c9a\u0cc1",
211
+ "openSidebar": "\u0cb8\u0cc8\u0ca1\u0ccd \u0cac\u0cbe\u0cb0\u0ccd \u0ca4\u0cc6\u0cb0\u0cc6\u0caf\u0cbf\u0cb0\u0cbf"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0c97\u0cc6 \u0cb9\u0cbf\u0c82\u0ca4\u0cbf\u0cb0\u0cc1\u0c97\u0cbf",
216
+ "chatCreatedOn": "\u0c88 \u0c9a\u0cbe\u0c9f\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0c88 \u0ca8\u0cb2\u0ccd\u0cb2\u0cbf \u0cb0\u0c9a\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u0c9a\u0cbe\u0c9f\u0ccd",
221
+ "readme": "Readme"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u0caa\u0cc2\u0cb0\u0cc8\u0c95\u0cc6\u0ca6\u0cbe\u0cb0\u0cb0\u0ca8\u0ccd\u0ca8\u0cc1 \u0c95\u0cb0\u0cc6\u0ca4\u0cb0\u0cb2\u0cc1 \u0cb5\u0cbf\u0cab\u0cb2\u0cb5\u0cbe\u0c97\u0cbf\u0ca6\u0cc6:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u0caf\u0cb6\u0cb8\u0ccd\u0cb5\u0cbf\u0caf\u0cbe\u0c97\u0cbf \u0c89\u0cb3\u0cbf\u0cb8\u0cb2\u0cbe\u0c97\u0cbf\u0ca6\u0cc6",
234
+ "requiredApiKeys": "\u0c85\u0cb5\u0cb6\u0ccd\u0caf\u0c95 API \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1",
235
+ "requiredApiKeysInfo": "\u0c88 \u0c85\u0caa\u0ccd\u0cb2\u0cbf\u0c95\u0cc7\u0cb6\u0ca8\u0ccd \u0c85\u0ca8\u0ccd\u0ca8\u0cc1 \u0cac\u0cb3\u0cb8\u0cb2\u0cc1, \u0c88 \u0c95\u0cc6\u0cb3\u0c97\u0cbf\u0ca8 \u0c8e\u0caa\u0cbf\u0c90 \u0c95\u0cc0\u0cb2\u0cbf\u0c97\u0cb3\u0cc1 \u0cac\u0cc7\u0c95\u0cbe\u0c97\u0cc1\u0ca4\u0ccd\u0ca4\u0cb5\u0cc6. \u0c95\u0cc0\u0cb2\u0cbf\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."
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0ca8\u0cc0\u0cb5\u0cc1 \u0c88 \u0caf\u0ccb\u0c9c\u0ca8\u0cc6\u0caf \u0cad\u0cbe\u0c97\u0cb5\u0cbe\u0c97\u0cbf\u0cb2\u0ccd\u0cb2."
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u0c9a\u0cbe\u0c9f\u0ccd \u0caa\u0cc1\u0ca8\u0cb0\u0cbe\u0cb0\u0c82\u0cad\u0cbf\u0cb8\u0cbf"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/ml.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API \u0d15\u0d40\u0d15\u0d7e",
10
+ "logout": "\u0d32\u0d4b\u0d17\u0d4b\u0d1f\u0d4d\u0d1f\u0d4d"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0d1f\u0d3e\u0d38\u0d4d\u0d15\u0d4d \u0d32\u0d3f\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d",
22
+ "loading": "\u0d32\u0d4b\u0d21\u0d3f\u0d02\u0d17\u0d4d...",
23
+ "error": "\u0d12\u0d30\u0d41 \u0d2a\u0d3f\u0d36\u0d15\u0d4d \u0d38\u0d02\u0d2d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0d05\u0d2a\u0d4d\u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d15",
28
+ "removeAttachment": "\u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d2e\u0d46\u0d28\u0d4d\u0d31\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d09\u0d23\u0d4d\u0d1f\u0d3e\u0d15\u0d4d\u0d15\u0d23\u0d4b?",
32
+ "clearChat": "\u0d07\u0d24\u0d4d \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d46 \u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d15\u0d4d\u0d32\u0d3f\u0d2f\u0d7c \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15\u0d2f\u0d41\u0d02 \u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15\u0d2f\u0d41\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d02.",
33
+ "cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
34
+ "confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23\u0d19\u0d4d\u0d19\u0d7e",
38
+ "expandMessages": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d35\u0d3f\u0d15\u0d38\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
39
+ "hideChainOfThought": "\u0d1a\u0d3f\u0d28\u0d4d\u0d24\u0d2f\u0d41\u0d1f\u0d46 \u0d36\u0d43\u0d02\u0d16\u0d32 \u0d2e\u0d31\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
40
+ "darkMode": "\u0d21\u0d3e\u0d7c\u0d15\u0d4d\u0d15\u0d4d \u0d2e\u0d4b\u0d21\u0d4d"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d02",
44
+ "running": "\u0d13\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41",
45
+ "took_one": "{{count}} \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d2a\u0d4d\u0d2a\u0d4d \u0d0e\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d41",
46
+ "took_other": "{{count}} \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d2a\u0d4d\u0d2a\u0d41\u0d15\u0d7e \u0d0e\u0d1f\u0d41\u0d24\u0d4d\u0d24\u0d41"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0d05\u0d2a\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d37\u0d7b \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d32\u0d4b\u0d17\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
51
+ "form": {
52
+ "email": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
53
+ "password": "Password",
54
+ "noAccount": "\u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d07\u0d32\u0d4d\u0d32\u0d47?",
55
+ "alreadyHaveAccount": "\u0d12\u0d30\u0d41 \u0d05\u0d15\u0d4d\u0d15\u0d57\u0d23\u0d4d\u0d1f\u0d4d \u0d09\u0d23\u0d4d\u0d1f\u0d4b?",
56
+ "signup": "\u0d38\u0d48\u0d7b \u0d05\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
57
+ "signin": "\u0d38\u0d48\u0d7b \u0d07\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15",
58
+ "or": "\u0d05\u0d32\u0d4d\u0d32\u0d46\u0d19\u0d4d\u0d15\u0d3f\u0d7d",
59
+ "continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
60
+ "forgotPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2e\u0d31\u0d28\u0d4d\u0d28\u0d4b?",
61
+ "passwordMustContain": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d3f\u0d7d \u0d07\u0d28\u0d3f\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d35 \u0d05\u0d1f\u0d19\u0d4d\u0d19\u0d3f\u0d2f\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d23\u0d02:",
62
+ "emailRequired": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
63
+ "passwordRequired": "Password \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d"
64
+ },
65
+ "error": {
66
+ "default": "\u0d38\u0d48\u0d28\u0d4d \u0d07\u0d28\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d28\u0d4d \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32.",
67
+ "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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
68
+ "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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
69
+ "redirect_uri_mismatch": "\u0d31\u0d40\u0d21\u0d2f\u0d31\u0d15\u0d4d\u0d1f\u0d4d \u0d2f\u0d41\u0d06\u0d7c\u0d10 \u0d13\u0d24\u0d4d\u0d24\u0d4d \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.",
70
+ "oauthcallbackerror": "\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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
71
+ "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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
72
+ "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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
73
+ "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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d7b \u0d36\u0d4d\u0d30\u0d2e\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
74
+ "oauthaccountnotlinked": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d10\u0d21\u0d28\u0d4d\u0d31\u0d3f\u0d31\u0d4d\u0d31\u0d3f \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d, \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \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\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
75
+ "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.",
76
+ "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.",
77
+ "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\u0d36\u0d26\u0d3e\u0d02\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d36\u0d30\u0d3f\u0d2f\u0d3e\u0d23\u0d4b \u0d0e\u0d28\u0d4d\u0d28\u0d4d \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
78
+ "sessionrequired": "\u0d08 \u0d2a\u0d47\u0d1c\u0d4d \u0d06\u0d15\u0d4d\u0d38\u0d38\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d \u0d26\u0d2f\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d48\u0d28\u0d3f\u0d7b \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15."
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d3f\u0d35\u0d3f\u0d1f\u0d46 \u0d0e\u0d24\u0d4d\u0d24\u0d3e\u0d31\u0d3e\u0d2f\u0d3f! \u0d1e\u0d19\u0d4d\u0d19\u0d7e \u0d12\u0d30\u0d41 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d3f\u0d1f\u0d4d\u0d1f\u0d41\u0d23\u0d4d\u0d1f\u0d4d ",
83
+ "verifyEmailLink": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d38\u0d48\u0d28\u0d2a\u0d4d\u0d2a\u0d4d \u0d2a\u0d42\u0d7c\u0d24\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d7b \u0d06 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d32\u0d3f\u0d32\u0d46 \u0d32\u0d3f\u0d19\u0d4d\u0d15\u0d3f\u0d7d \u0d15\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15.",
84
+ "didNotReceive": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d15\u0d23\u0d4d\u0d1f\u0d46\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d3f\u0d32\u0d4d\u0d32\u0d47?",
85
+ "resendEmail": "Email \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
86
+ "goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d15\u0d42",
87
+ "emailSent": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d05\u0d2f\u0d1a\u0d4d\u0d1a\u0d41.",
88
+ "verifyEmail": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
92
+ "signup": "{{provider}} \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d48\u0d7b \u0d05\u0d2a\u0d4d\u0d2a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
96
+ "passwordsMustMatch": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d41\u0d15\u0d7e \u0d2a\u0d4a\u0d30\u0d41\u0d24\u0d4d\u0d24\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d23\u0d02",
97
+ "confirmPasswordRequired": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d23\u0d4d\u0d1f\u0d24\u0d4d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d",
98
+ "newPassword": "\u0d2a\u0d41\u0d24\u0d3f\u0d2f \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d",
99
+ "confirmPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
100
+ "resetPassword": "\u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02",
104
+ "emailRequired": "\u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f \u0d12\u0d30\u0d41 \u0d2b\u0d40\u0d7d\u0d21\u0d3e\u0d23\u0d4d",
105
+ "emailSent": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d7c\u0d26\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d3e\u0d2f\u0d3f {{email}} \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d2a\u0d30\u0d3f\u0d36\u0d4b\u0d27\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15.",
106
+ "enterEmail": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d07\u0d2e\u0d46\u0d2f\u0d3f\u0d7d \u0d35\u0d3f\u0d32\u0d3e\u0d38\u0d02 \u0d28\u0d7d\u0d15\u0d41\u0d15, \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d3e\u0d38\u0d4d \u0d35\u0d47\u0d21\u0d4d \u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d41\u0d33\u0d4d\u0d33 \u0d28\u0d3f\u0d7c\u0d26\u0d4d\u0d26\u0d47\u0d36\u0d19\u0d4d\u0d19\u0d7e \u0d1e\u0d19\u0d4d\u0d19\u0d7e \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d02.",
107
+ "resendEmail": "Email \u0d35\u0d40\u0d23\u0d4d\u0d1f\u0d41\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
108
+ "continue": "\u0d24\u0d41\u0d1f\u0d30\u0d41\u0d15",
109
+ "goBack": "\u0d24\u0d3f\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d15\u0d42"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0d1a\u0d30\u0d3f\u0d24\u0d4d\u0d30\u0d02 \u0d15\u0d3e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
118
+ "lastInputs": "\u0d05\u0d35\u0d38\u0d3e\u0d28 \u0d07\u0d7b\u0d2a\u0d41\u0d1f\u0d4d\u0d1f\u0d41\u0d15\u0d7e",
119
+ "noInputs": "\u0d36\u0d42\u0d28\u0d4d\u0d2f\u0d2e\u0d3e\u0d2f...",
120
+ "loading": "\u0d32\u0d4b\u0d21\u0d3f\u0d02\u0d17\u0d4d..."
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "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\u0d41\u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d06\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
129
+ "stop": "\u0d31\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d7c\u0d21\u0d3f\u0d02\u0d17\u0d4d \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u0d38\u0d28\u0d4d\u0d26\u0d47\u0d36\u0d02 \u0d05\u0d2f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
133
+ "stopTask": "\u0d1c\u0d4b\u0d32\u0d3f \u0d28\u0d3f\u0d7c\u0d24\u0d4d\u0d24\u0d41\u0d15"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d05\u0d31\u0d4d\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d15"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u0d28\u0d3f\u0d7c\u0d2e\u0d4d\u0d2e\u0d3f\u0d1a\u0d4d\u0d1a\u0d24\u0d4d"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u0d13\u0d1f\u0d41\u0d28\u0d4d\u0d28\u0d41",
145
+ "executedSuccessfully": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d28\u0d1f\u0d2a\u0d4d\u0d2a\u0d3f\u0d32\u0d3e\u0d15\u0d4d\u0d15\u0d3f",
146
+ "failed": "\u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
147
+ "feedbackUpdated": "\u0d2b\u0d40\u0d21\u0d4d\u0d2c\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d05\u0d2a\u0d4d \u0d21\u0d47\u0d31\u0d4d\u0d31\u0d41\u0d1a\u0d46\u0d2f\u0d4d \u0d24\u0d41",
148
+ "updating": "\u0d05\u0d2a\u0d4d \u0d21\u0d47\u0d31\u0d4d\u0d31\u0d4d"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d2b\u0d2f\u0d32\u0d41\u0d15\u0d7e \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d07\u0d1f\u0d41\u0d15"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0d05\u0d2a\u0d4d \u0d32\u0d4b\u0d21\u0d4d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41",
169
+ "cancelledUploadOf": "\u0d05\u0d2a\u0d4d \u0d32\u0d4b\u0d21\u0d4d \u0d31\u0d26\u0d4d\u0d26\u0d3e\u0d15\u0d4d\u0d15\u0d3f",
170
+ "couldNotReachServer": "\u0d38\u0d46\u0d7c\u0d35\u0d31\u0d3f\u0d7d \u0d0e\u0d24\u0d4d\u0d24\u0d3e\u0d7b \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d3f\u0d32\u0d4d\u0d32",
171
+ "continuingChat": "\u0d2e\u0d41\u0d2e\u0d4d\u0d2a\u0d24\u0d4d\u0d24\u0d46 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d24\u0d41\u0d1f\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d41"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d23 \u0d2a\u0d3e\u0d28\u0d7d",
175
+ "reset": "\u0d2a\u0d41\u0d28\u0d03\u0d15\u0d4d\u0d30\u0d2e\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
176
+ "cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
177
+ "confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "Feedback: \u0d0e\u0d32\u0d4d\u0d32\u0d3e\u0d02",
185
+ "feedbackPositive": "Feedback: \u0d2a\u0d4b\u0d38\u0d3f\u0d31\u0d4d\u0d31\u0d40\u0d35\u0d4d",
186
+ "feedbackNegative": "Feedback: \u0d28\u0d46\u0d17\u0d31\u0d4d\u0d31\u0d40\u0d35\u0d4d"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u0d24\u0d3f\u0d30\u0d2f\u0d41\u0d15"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\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 \u0d07\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d41\u0d02.",
194
+ "cancel": "\u0d15\u0d4d\u0d2f\u0d3e\u0d7b\u0d38\u0d7d \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d4d",
195
+ "confirm": "\u0d38\u0d4d\u0d25\u0d3f\u0d30\u0d40\u0d15\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15",
196
+ "deletingChat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d07\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d7d",
197
+ "chatDeleted": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d28\u0d40\u0d15\u0d4d\u0d15\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d24\u0d41"
198
+ },
199
+ "index": {
200
+ "pastChats": "Past Chats"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0d36\u0d42\u0d28\u0d4d\u0d2f\u0d02...",
204
+ "today": "\u0d07\u0d28\u0d4d\u0d28\u0d4d",
205
+ "yesterday": "\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46",
206
+ "previous7days": "Previous 7 \u0d26\u0d3f\u0d35\u0d38\u0d02",
207
+ "previous30days": "Previous 30 \u0d26\u0d3f\u0d35\u0d38\u0d02"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u0d38\u0d48\u0d21\u0d4d \u0d2c\u0d3e\u0d7c \u0d05\u0d1f\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d41\u0d15",
211
+ "openSidebar": "\u0d38\u0d48\u0d21\u0d4d \u0d2c\u0d3e\u0d7c \u0d24\u0d41\u0d31\u0d15\u0d4d\u0d15\u0d41\u0d15"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d32\u0d47\u0d15\u0d4d\u0d15\u0d4d \u0d2e\u0d1f\u0d19\u0d4d\u0d19\u0d41\u0d15",
216
+ "chatCreatedOn": "\u0d08 \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d \u0d07\u0d35\u0d3f\u0d1f\u0d46 \u0d38\u0d43\u0d37\u0d4d\u0d1f\u0d3f\u0d1a\u0d4d\u0d1a\u0d41"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02",
221
+ "readme": "Readme"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u0d26\u0d3e\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d33\u0d46 \u0d15\u0d4a\u0d23\u0d4d\u0d1f\u0d41\u0d35\u0d30\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d7d \u0d2a\u0d30\u0d3e\u0d1c\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d4d\u0d1f\u0d41:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u0d35\u0d3f\u0d1c\u0d2f\u0d15\u0d30\u0d2e\u0d3e\u0d2f\u0d3f \u0d38\u0d02\u0d30\u0d15\u0d4d\u0d37\u0d3f\u0d1a\u0d4d\u0d1a\u0d41",
234
+ "requiredApiKeys": "\u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d41\u0d33\u0d4d\u0d33 API \u0d15\u0d40\u0d15\u0d7e",
235
+ "requiredApiKeysInfo": "\u0d08 \u0d05\u0d2a\u0d4d\u0d32\u0d3f\u0d15\u0d4d\u0d15\u0d47\u0d37\u0d7b \u0d09\u0d2a\u0d2f\u0d4b\u0d17\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d3f\u0d28\u0d4d, \u0d07\u0d28\u0d3f\u0d2a\u0d4d\u0d2a\u0d31\u0d2f\u0d41\u0d28\u0d4d\u0d28 \u0d0e\u0d2a\u0d3f\u0d10 \u0d15\u0d40\u0d15\u0d7e \u0d06\u0d35\u0d36\u0d4d\u0d2f\u0d2e\u0d3e\u0d23\u0d4d. \u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d09\u0d2a\u0d15\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d28\u0d4d\u0d31\u0d46 \u0d2a\u0d4d\u0d30\u0d3e\u0d26\u0d47\u0d36\u0d3f\u0d15 \u0d38\u0d02\u0d2d\u0d30\u0d23\u0d24\u0d4d\u0d24\u0d3f\u0d32\u0d3e\u0d23\u0d4d \u0d15\u0d40\u0d15\u0d7e \u0d38\u0d02\u0d2d\u0d30\u0d3f\u0d1a\u0d4d\u0d1a\u0d3f\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d."
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0d28\u0d3f\u0d19\u0d4d\u0d19\u0d7e \u0d08 \u0d2a\u0d26\u0d4d\u0d27\u0d24\u0d3f\u0d2f\u0d41\u0d1f\u0d46 \u0d2d\u0d3e\u0d17\u0d2e\u0d32\u0d4d\u0d32."
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u0d38\u0d02\u0d2d\u0d3e\u0d37\u0d23\u0d02 \u0d2a\u0d41\u0d28\u0d30\u0d3e\u0d30\u0d02\u0d2d\u0d3f\u0d15\u0d4d\u0d15\u0d41\u0d15"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/mr.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
8
+ "settingsKey": "S",
9
+ "APIKeys": "\u090f\u092a\u0940\u0906\u092f \u0915\u0940\u091c",
10
+ "logout": "Logout"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u0928\u0935\u0940\u0928 \u0917\u092a\u094d\u092a\u093e"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0915\u093e\u0930\u094d\u092f \u0938\u0942\u091a\u0940",
22
+ "loading": "\u0932\u094b\u0921\u093f\u0902\u0917...",
23
+ "error": "\u090f\u0915 \u0924\u094d\u0930\u0941\u091f\u0940 \u091d\u093e\u0932\u0940"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0905\u092a\u0932\u094b\u0921 \u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
28
+ "removeAttachment": "\u0938\u0902\u0932\u0917\u094d\u0928\u0924\u093e \u0915\u093e\u0922\u0942\u0928 \u091f\u093e\u0915\u093e"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u093e?",
32
+ "clearChat": "\u092f\u093e\u092e\u0941\u0933\u0947 \u0938\u0927\u094d\u092f\u093e\u091a\u0947 \u092e\u0947\u0938\u0947\u091c \u0915\u094d\u0932\u093f\u0905\u0930 \u0939\u094b\u0924\u0940\u0932 \u0906\u0923\u093f \u0928\u0935\u0940\u0928 \u091a\u0945\u091f \u0938\u0941\u0930\u0942 \u0939\u094b\u0908\u0932.",
33
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
34
+ "confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938",
38
+ "expandMessages": "\u0938\u0902\u0926\u0947\u0936 \u093e\u0902\u091a\u093e \u0935\u093f\u0938\u094d\u0924\u093e\u0930 \u0915\u0930\u093e",
39
+ "hideChainOfThought": "\u0935\u093f\u091a\u093e\u0930\u093e\u0902\u091a\u0940 \u0938\u093e\u0916\u0933\u0940 \u0932\u092a\u0935\u093e",
40
+ "darkMode": "\u0921\u093e\u0930\u094d\u0915 \u092e\u094b\u0921"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u0935\u093e\u092a\u0930\u0924",
44
+ "running": "\u0927\u093e\u0935\u0924 \u0906\u0939\u0947.",
45
+ "took_one": "{{count}} \u092a\u093e\u090a\u0932 \u0909\u091a\u0932\u0932\u0947",
46
+ "took_other": "{{count}} \u092a\u093e\u0935\u0932\u0947 \u0909\u091a\u0932\u0932\u0940"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0905 \u0945\u092a\u092e\u0927\u094d\u092f\u0947 \u092a\u094d\u0930\u0935\u0947\u0936 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0932\u0949\u0917\u093f\u0928 \u0915\u0930\u093e.",
51
+ "form": {
52
+ "email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
53
+ "password": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921",
54
+ "noAccount": "\u0916\u093e\u0924\u0947 \u0928\u093e\u0939\u0940 \u0915\u093e?",
55
+ "alreadyHaveAccount": "\u0906\u0927\u0940\u091a \u0916\u093e\u0924\u0947 \u0906\u0939\u0947 \u0915\u093e?",
56
+ "signup": "\u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u093e",
57
+ "signin": "\u0938\u093e\u0907\u0928 \u0907\u0928",
58
+ "or": "\u0915\u093f\u0902\u0935\u093e",
59
+ "continue": "\u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
60
+ "forgotPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0935\u093f\u0938\u0930\u0932\u093e?",
61
+ "passwordMustContain": "\u0906\u092a\u0932\u094d\u092f\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921\u092e\u0927\u094d\u092f\u0947 \u0939\u0947 \u0905\u0938\u0923\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947:",
62
+ "emailRequired": "\u0908\u092e\u0947\u0932 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
63
+ "passwordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947"
64
+ },
65
+ "error": {
66
+ "default": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u0938 \u0905\u0915\u094d\u0937\u092e.",
67
+ "signin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
68
+ "oauthsignin": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
69
+ "redirect_uri_mismatch": "\u0930\u093f\u0921\u093e\u092f\u0930\u0947\u0915\u094d\u091f \u092f\u0942\u0906\u0930\u0906\u092f \u0911\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.",
70
+ "oauthcallbackerror": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
71
+ "oauthcreateaccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
72
+ "emailcreateaccount": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
73
+ "callback": "\u0935\u0947\u0917\u0933\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u093e \u092a\u094d\u0930\u092f\u0924\u094d\u0928 \u0915\u0930\u093e.",
74
+ "oauthaccountnotlinked": "\u0906\u092a\u0932\u0940 \u0913\u0933\u0916 \u0928\u093f\u0936\u094d\u091a\u093f\u0924 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940, \u0906\u092a\u0923 \u092e\u0942\u0933\u0935\u093e\u092a\u0930\u0932\u0947\u0932\u094d\u092f\u093e \u0916\u093e\u0924\u094d\u092f\u093e\u0938\u0939 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e.",
75
+ "emailsignin": "\u0908-\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0924\u093e \u0906\u0932\u093e \u0928\u093e\u0939\u0940.",
76
+ "emailverify": "\u0915\u0943\u092a\u092f\u093e \u0906\u092a\u0932\u094d\u092f\u093e \u0908\u092e\u0947\u0932\u091a\u0940 \u092a\u0921\u0924\u093e\u0933\u0923\u0940 \u0915\u0930\u093e, \u090f\u0915 \u0928\u0935\u0940\u0928 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u093f\u0932\u093e \u0917\u0947\u0932\u093e \u0906\u0939\u0947.",
77
+ "credentialssignin": "\u0938\u093e\u0907\u0928 \u0907\u0928 \u0905\u092f\u0936\u0938\u094d\u0935\u0940 \u091d\u093e\u0932\u0947. \u0906\u092a\u0923 \u0926\u093f\u0932\u0947\u0932\u093e \u0924\u092a\u0936\u0940\u0932 \u092f\u094b\u0917\u094d\u092f \u0906\u0939\u0947 \u0939\u0947 \u0924\u092a\u093e\u0938\u093e.",
78
+ "sessionrequired": "\u0915\u0943\u092a\u092f\u093e \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 \u0938\u093e\u0907\u0928 \u0907\u0928 \u0915\u0930\u093e."
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0924\u0942 \u091c\u0935\u0933\u091c\u0935\u0933 \u0924\u093f\u0925\u0947\u091a \u0906\u0939\u0947\u0938! \u0906\u092e\u094d\u0939\u0940 \u090f\u0915 \u0908\u092e\u0947\u0932 \u092a\u093e\u0920\u0935\u0932\u093e \u0906\u0939\u0947. ",
83
+ "verifyEmailLink": "\u0906\u092a\u0932\u0947 \u0938\u093e\u0907\u0928\u0905\u092a \u092a\u0942\u0930\u094d\u0923 \u0915\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0924\u094d\u092f\u093e \u0908\u092e\u0947\u0932\u092e\u0927\u0940\u0932 \u0932\u093f\u0902\u0915\u0935\u0930 \u0915\u094d\u0932\u093f\u0915 \u0915\u0930\u093e.",
84
+ "didNotReceive": "\u0908\u092e\u0947\u0932 \u0938\u093e\u092a\u0921\u0924 \u0928\u093e\u0939\u0940 \u0915\u093e?",
85
+ "resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u094d\u0939\u093e \u092a\u093e\u0920\u0935\u093e",
86
+ "goBack": "\u092a\u0930\u0924 \u091c\u093e",
87
+ "emailSent": "\u0908\u092e\u0947\u0932 \u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u092a\u093e\u0920\u0935\u093f\u0932\u093e.",
88
+ "verifyEmail": "\u0906\u092a\u0932\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e \u092a\u0921\u0924\u093e\u0933\u0942\u0928 \u092a\u0939\u093e"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
92
+ "signup": "{{provider}} \u0938\u0939 \u0938\u093e\u0907\u0928 \u0905\u092a \u0915\u0930\u093e"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u0928\u0935\u0940\u0928 \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0939\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
96
+ "passwordsMustMatch": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u091c\u0941\u0933\u0923\u0947 \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947",
97
+ "confirmPasswordRequired": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947 \u092f\u093e\u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
98
+ "newPassword": "\u0928\u0935\u0940\u0928 \u092a\u093e\u0938\u0935\u0930\u094d\u0921",
99
+ "confirmPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u091a\u0940 \u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
100
+ "resetPassword": "\u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e",
104
+ "emailRequired": "\u0908\u092e\u0947\u0932 \u0939\u0947 \u090f\u0915 \u0906\u0935\u0936\u094d\u092f\u0915 \u0915\u094d\u0937\u0947\u0924\u094d\u0930 \u0906\u0939\u0947",
105
+ "emailSent": "\u0906\u092a\u0932\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u094d\u092f\u093e \u0938\u0942\u091a\u0928\u093e\u0902\u0938\u093e\u0920\u0940 \u0915\u0943\u092a\u092f\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e {{email}} \u0924\u092a\u093e\u0938\u093e.",
106
+ "enterEmail": "\u0906\u092a\u0932\u093e \u0908\u092e\u0947\u0932 \u092a\u0924\u094d\u0924\u093e \u092a\u094d\u0930\u0935\u093f\u0937\u094d\u091f \u0915\u0930\u093e \u0906\u0923\u093f \u0906\u092e\u094d\u0939\u0940 \u0906\u092a\u0932\u094d\u092f\u093e\u0932\u093e \u0906\u092a\u0932\u093e \u092a\u093e\u0938\u0935\u0930\u094d\u0921 \u0930\u0940\u0938\u0947\u091f \u0915\u0930\u0923\u094d\u092f\u093e\u091a\u094d\u092f\u093e \u0938\u0942\u091a\u0928\u093e \u092a\u093e\u0920\u0935\u0942.",
107
+ "resendEmail": "\u0908\u092e\u0947\u0932 \u092a\u0941\u0928\u094d\u0939\u093e \u092a\u093e\u0920\u0935\u093e",
108
+ "continue": "\u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e",
109
+ "goBack": "\u092a\u0930\u0924 \u091c\u093e"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0907\u0924\u093f\u0939\u093e\u0938 \u0926\u093e\u0916\u0935\u093e",
118
+ "lastInputs": "\u0936\u0947\u0935\u091f\u091a\u0940 \u092e\u093e\u0939\u093f\u0924\u0940",
119
+ "noInputs": "\u0907\u0924\u0915\u0940 \u0930\u093f\u0915\u093e\u092e\u0940...",
120
+ "loading": "\u0932\u094b\u0921\u093f\u0902\u0917..."
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "placeholder": "\u0924\u0941\u092e\u091a\u093e \u092e\u0947\u0938\u0947\u091c \u0907\u0925\u0947 \u091f\u093e\u0908\u092a \u0915\u0930\u093e..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0938\u0941\u0930\u0942 \u0915\u0930\u093e",
129
+ "stop": "\u0930\u0947\u0915\u0949\u0930\u094d\u0921\u093f\u0902\u0917 \u0925\u093e\u0902\u092c\u0935\u093e"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u0938\u0902\u0926\u0947\u0936 \u092a\u093e\u0920\u0935\u093e",
133
+ "stopTask": "\u0915\u093e\u0930\u094d\u092f \u0925\u093e\u0902\u092c\u0935\u093e"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u092b\u093e\u0908\u0932\u094d\u0938 \u0938\u0902\u0932\u0917\u094d\u0928 \u0915\u0930\u093e"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u092f\u093e\u0938\u0939 \u092c\u093e\u0902\u0927\u0932\u0947 \u0906\u0939\u0947"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u0927\u093e\u0935\u0924 \u0906\u0939\u0947.",
145
+ "executedSuccessfully": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u0930\u093e\u092c\u0935\u093f\u0932\u0940",
146
+ "failed": "\u0905\u092a\u092f\u0936\u0940 \u0920\u0930\u0932\u0947",
147
+ "feedbackUpdated": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f \u0905\u0926\u094d\u092f\u092f\u093e\u0935\u0924",
148
+ "updating": "\u0905\u0926\u094d\u092f\u092f\u093e\u0935\u0924 \u0915\u0930\u0923\u0947"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0906\u092a\u0932\u094d\u092f\u093e \u092b\u093e\u092f\u0932\u0940 \u092f\u0947\u0925\u0947 \u091f\u093e\u0915\u093e"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0905\u092a\u0932\u094b\u0921 \u0915\u0930\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936 \u0906\u0932\u0947",
169
+ "cancelledUploadOf": "\u0930\u0926\u094d\u0926 \u0915\u0947\u0932\u0947\u0932\u0947 \u0905\u092a\u0932\u094b\u0921",
170
+ "couldNotReachServer": "\u0938\u0930\u094d\u0935\u094d\u0939\u0930\u092a\u0930\u094d\u092f\u0902\u0924 \u092a\u094b\u0939\u094b\u091a\u0942 \u0936\u0915\u0932\u0947 \u0928\u093e\u0939\u0940",
171
+ "continuingChat": "\u092e\u093e\u0917\u0940\u0932 \u0917\u092a\u094d\u092a\u093e \u091a\u093e\u0932\u0942 \u0920\u0947\u0935\u093e"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u0938\u0947\u091f\u093f\u0902\u0917\u094d\u0938 \u092a\u0945\u0928\u0947\u0932",
175
+ "reset": "\u0930\u0940\u0938\u0947\u091f \u0915\u0930\u093e",
176
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
177
+ "confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0938\u0930\u094d\u0935",
185
+ "feedbackPositive": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0938\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915",
186
+ "feedbackNegative": "\u0905\u092d\u093f\u092a\u094d\u0930\u093e\u092f: \u0928\u0915\u093e\u0930\u093e\u0924\u094d\u092e\u0915"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u0936\u094b\u0927\u0923\u0947"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u0939\u0947 \u0927\u093e\u0917\u093e \u0924\u0938\u0947\u091a \u0924\u094d\u092f\u093e\u0924\u0940\u0932 \u0938\u0902\u0926\u0947\u0936 \u0906\u0923\u093f \u0918\u091f\u0915 \u0921\u093f\u0932\u0940\u091f \u0915\u0930\u0947\u0932.",
194
+ "cancel": "\u0930\u0926\u094d\u0926 \u0915\u0930\u093e",
195
+ "confirm": "\u092a\u0941\u0937\u094d\u091f\u0940 \u0915\u0930\u093e",
196
+ "deletingChat": "\u091a\u0945\u091f \u0921\u093f\u0932\u0940\u091f \u0915\u0930\u0923\u0947",
197
+ "chatDeleted": "\u091a\u0945\u091f \u0921\u093f\u0932\u0940\u091f"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u092e\u093e\u0917\u0940\u0932 \u0917\u092a\u094d\u092a\u093e"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0930\u093f\u0915\u094d\u0924\u0964\u0964\u0964",
204
+ "today": "\u0906\u091c",
205
+ "yesterday": "\u0915\u093e\u0932",
206
+ "previous7days": "\u092e\u093e\u0917\u0940\u0932 7 \u0926\u093f\u0935\u0938",
207
+ "previous30days": "\u092e\u093e\u0917\u0940\u0932 \u0969\u0966 \u0926\u093f\u0935\u0938"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u0938\u093e\u0907\u0921\u092c\u093e\u0930 \u092c\u0902\u0926 \u0915\u0930\u093e",
211
+ "openSidebar": "\u0913\u092a\u0928 \u0938\u093e\u0907\u0921\u092c\u093e\u0930"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u092a\u0930\u0924 \u0917\u092a\u094d\u092a\u093e \u092e\u093e\u0930\u093e\u092f\u0932\u093e \u091c\u093e",
216
+ "chatCreatedOn": "\u0939\u0947 \u091a\u0945\u091f \u0924\u092f\u093e\u0930 \u0915\u0930\u0923\u094d\u092f\u093e\u0924 \u0906\u0932\u0947 \u0939\u094b\u0924\u0947."
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u092c\u0915\u0935\u093e\u0926 \u0915\u0930\u0923\u0947\u0902",
221
+ "readme": "\u0935\u093e\u091a\u093e"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u092a\u094d\u0930\u0926\u093e\u0924\u094d\u092f\u093e\u0902\u0928\u093e \u0906\u0923\u0923\u094d\u092f\u093e\u0924 \u0905\u092a\u092f\u0936\u0940:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u092f\u0936\u0938\u094d\u0935\u0940\u0930\u093f\u0924\u094d\u092f\u093e \u0935\u093e\u091a\u0935\u0932\u0947",
234
+ "requiredApiKeys": "\u0906\u0935\u0936\u094d\u092f\u0915 \u090f\u092a\u0940\u0906\u092f \u091a\u093e\u0935\u094d\u092f\u093e",
235
+ "requiredApiKeysInfo": "\u0939\u0947 \u0905\u0945\u092a \u0935\u093e\u092a\u0930\u0923\u094d\u092f\u093e\u0938\u093e\u0920\u0940 \u0916\u093e\u0932\u0940\u0932 \u090f\u092a\u0940\u0906\u092f \u091a\u093e\u0935\u094d\u092f\u093e \u0906\u0935\u0936\u094d\u092f\u0915 \u0906\u0939\u0947\u0924. \u091a\u093e\u0935\u094d\u092f\u093e \u0906\u092a\u0932\u094d\u092f\u093e \u0921\u093f\u0935\u094d\u0939\u093e\u0907\u0938\u091a\u094d\u092f\u093e \u0938\u094d\u0925\u093e\u0928\u093f\u0915 \u0938\u094d\u091f\u094b\u0930\u0947\u091c\u0935\u0930 \u0938\u0902\u0917\u094d\u0930\u0939\u093f\u0924 \u0915\u0947\u0932\u094d\u092f\u093e \u091c\u093e\u0924\u093e\u0924."
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0924\u0941\u092e\u094d\u0939\u0940 \u092f\u093e \u092a\u094d\u0930\u0915\u0932\u094d\u092a\u093e\u091a\u093e \u092d\u093e\u0917 \u0928\u093e\u0939\u0940."
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u091a\u0945\u091f \u092a\u0941\u0928\u094d\u0939\u093e \u0938\u0941\u0930\u0942 \u0915\u0930\u093e"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/nl-NL.json ADDED
@@ -0,0 +1,242 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "Instellingen",
8
+ "settingsKey": "I",
9
+ "APIKeys": "API-sleutels",
10
+ "logout": "Uitloggen"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "Nieuwe Chat"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f Takenlijst",
22
+ "loading": "Laden...",
23
+ "error": "Er is een fout opgetreden"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "Upload annuleren",
28
+ "removeAttachment": "Bijlage verwijderen"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "Nieuwe chat maken?",
32
+ "clearChat": "Dit zal de huidige berichten wissen en een nieuwe chat starten.",
33
+ "cancel": "Annuleren",
34
+ "confirm": "Bevestigen"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "Instellingen",
38
+ "expandMessages": "Berichten uitbreiden",
39
+ "hideChainOfThought": "Gedachtenketen verbergen",
40
+ "darkMode": "Donkere modus"
41
+ },
42
+ "detailsButton": {
43
+ "using": "Gebruikt",
44
+ "used": "Gebruikt"
45
+ },
46
+ "auth": {
47
+ "authLogin": {
48
+ "title": "Log in om toegang te krijgen tot de app.",
49
+ "form": {
50
+ "email": "E-mailadres",
51
+ "password": "Wachtwoord",
52
+ "noAccount": "Nog geen account?",
53
+ "alreadyHaveAccount": "Al een account?",
54
+ "signup": "Registreren",
55
+ "signin": "Inloggen",
56
+ "or": "OF",
57
+ "continue": "Doorgaan",
58
+ "forgotPassword": "Wachtwoord vergeten?",
59
+ "passwordMustContain": "Uw wachtwoord moet bevatten:",
60
+ "emailRequired": "e-mail is een verplicht veld",
61
+ "passwordRequired": "wachtwoord is een verplicht veld"
62
+ },
63
+ "error": {
64
+ "default": "Inloggen niet mogelijk.",
65
+ "signin": "Probeer in te loggen met een ander account.",
66
+ "oauthsignin": "Probeer in te loggen met een ander account.",
67
+ "redirect_uri_mismatch": "De omleidings-URI komt niet overeen met de oauth-appconfiguratie.",
68
+ "oauthcallbackerror": "Probeer in te loggen met een ander account.",
69
+ "oauthcreateaccount": "Probeer in te loggen met een ander account.",
70
+ "emailcreateaccount": "Probeer in te loggen met een ander account.",
71
+ "callback": "Probeer in te loggen met een ander account.",
72
+ "oauthaccountnotlinked": "Om uw identiteit te bevestigen, log in met hetzelfde account dat u oorspronkelijk gebruikte.",
73
+ "emailsignin": "De e-mail kon niet worden verzonden.",
74
+ "emailverify": "Verifieer uw e-mail, een nieuwe e-mail is verzonden.",
75
+ "credentialssignin": "Inloggen mislukt. Controleer of de verstrekte gegevens correct zijn.",
76
+ "sessionrequired": "Log in om toegang te krijgen tot deze pagina."
77
+ }
78
+ },
79
+ "authVerifyEmail": {
80
+ "almostThere": "Bijna daar! We hebben een e-mail gestuurd naar ",
81
+ "verifyEmailLink": "Klik op de link in die e-mail om uw registratie te voltooien.",
82
+ "didNotReceive": "Kun je de e-mail niet vinden?",
83
+ "resendEmail": "E-mail opnieuw verzenden",
84
+ "goBack": "Ga terug",
85
+ "emailSent": "E-mail succesvol verzonden.",
86
+ "verifyEmail": "Verifieer uw e-mailadres"
87
+ },
88
+ "providerButton": {
89
+ "continue": "Doorgaan met {{provider}}",
90
+ "signup": "Aanmelden met {{provider}}"
91
+ },
92
+ "authResetPassword": {
93
+ "newPasswordRequired": "Nieuw wachtwoord is een verplicht veld",
94
+ "passwordsMustMatch": "Wachtwoorden moeten overeenkomen",
95
+ "confirmPasswordRequired": "Bevestig wachtwoord is een verplicht veld",
96
+ "newPassword": "Nieuw wachtwoord",
97
+ "confirmPassword": "Bevestig wachtwoord",
98
+ "resetPassword": "Wachtwoord resetten"
99
+ },
100
+ "authForgotPassword": {
101
+ "email": "E-mailadres",
102
+ "emailRequired": "e-mail is een verplicht veld",
103
+ "emailSent": "Controleer het e-mailadres {{email}} voor instructies om uw wachtwoord te resetten.",
104
+ "enterEmail": "Voer uw e-mailadres in en we sturen u instructies om uw wachtwoord te resetten.",
105
+ "resendEmail": "E-mail opnieuw verzenden",
106
+ "continue": "Doorgaan",
107
+ "goBack": "Ga terug"
108
+ }
109
+ }
110
+ },
111
+ "organisms": {
112
+ "chat": {
113
+ "history": {
114
+ "index": {
115
+ "showHistory": "Geschiedenis tonen",
116
+ "lastInputs": "Laatste invoer",
117
+ "noInputs": "Zo leeg...",
118
+ "loading": "Laden..."
119
+ }
120
+ },
121
+ "inputBox": {
122
+ "input": {
123
+ "placeholder": "Typ uw bericht hier..."
124
+ },
125
+ "speechButton": {
126
+ "start": "Opname starten",
127
+ "stop": "Opname stoppen"
128
+ },
129
+ "SubmitButton": {
130
+ "sendMessage": "Bericht verzenden",
131
+ "stopTask": "Taak stoppen"
132
+ },
133
+ "UploadButton": {
134
+ "attachFiles": "Bestanden toevoegen"
135
+ },
136
+ "waterMark": {
137
+ "text": "Gebouwd met"
138
+ }
139
+ },
140
+ "Messages": {
141
+ "index": {
142
+ "running": "Bezig",
143
+ "executedSuccessfully": "succesvol uitgevoerd",
144
+ "failed": "mislukt",
145
+ "feedbackUpdated": "Feedback bijgewerkt",
146
+ "updating": "Bijwerken"
147
+ },
148
+ "copyButton": {
149
+ "copyToClipboard": "Copy to clipboard",
150
+ "copied": "Copied!"
151
+ },
152
+ "feedbackButton": {
153
+ "helpful": "Helpful",
154
+ "notHelpful": "Not helpful",
155
+ "editFeedback": "Edit feedback"
156
+ },
157
+ "feedbackDialog": {
158
+ "dialogTitle": "Add a comment",
159
+ "submitButton": "Submit feedback"
160
+ }
161
+ },
162
+ "dropScreen": {
163
+ "dropYourFilesHere": "Sleep uw bestanden hierheen"
164
+ },
165
+ "index": {
166
+ "failedToUpload": "Uploaden mislukt",
167
+ "cancelledUploadOf": "Upload geannuleerd van",
168
+ "couldNotReachServer": "Server niet bereikbaar",
169
+ "continuingChat": "Vervolg van eerdere chat"
170
+ },
171
+ "settings": {
172
+ "settingsPanel": "Instellingenpaneel",
173
+ "reset": "Resetten",
174
+ "cancel": "Annuleren",
175
+ "confirm": "Bevestigen"
176
+ }
177
+ },
178
+ "threadHistory": {
179
+ "sidebar": {
180
+ "filters": {
181
+ "FeedbackSelect": {
182
+ "feedbackAll": "Feedback: Alles",
183
+ "feedbackPositive": "Feedback: Positief",
184
+ "feedbackNegative": "Feedback: Negatief"
185
+ },
186
+ "SearchBar": {
187
+ "search": "Zoeken"
188
+ }
189
+ },
190
+ "DeleteThreadButton": {
191
+ "confirmMessage": "Dit verwijdert de thread evenals de berichten en elementen.",
192
+ "cancel": "Annuleren",
193
+ "confirm": "Bevestigen",
194
+ "deletingChat": "Chat verwijderen",
195
+ "chatDeleted": "Chat verwijderd"
196
+ },
197
+ "index": {
198
+ "pastChats": "Vorige Chats"
199
+ },
200
+ "ThreadList": {
201
+ "empty": "Leeg...",
202
+ "today": "Vandaag",
203
+ "yesterday": "Gisteren",
204
+ "previous7days": "Afgelopen 7 dagen",
205
+ "previous30days": "Afgelopen 30 dagen"
206
+ },
207
+ "TriggerButton": {
208
+ "closeSidebar": "Zijbalk sluiten",
209
+ "openSidebar": "Zijbalk openen"
210
+ }
211
+ },
212
+ "Thread": {
213
+ "backToChat": "Terug naar chat",
214
+ "chatCreatedOn": "Deze chat is aangemaakt op"
215
+ }
216
+ },
217
+ "header": {
218
+ "chat": "Chat",
219
+ "readme": "Readme"
220
+ }
221
+ }
222
+ },
223
+ "hooks": {
224
+ "useLLMProviders": {
225
+ "failedToFetchProviders": "Kan providers niet ophalen:"
226
+ }
227
+ },
228
+ "pages": {
229
+ "Design": {},
230
+ "Env": {
231
+ "savedSuccessfully": "Succesvol opgeslagen",
232
+ "requiredApiKeys": "Vereiste API-sleutels",
233
+ "requiredApiKeysInfo": "Om deze app te gebruiken, zijn de volgende API-sleutels vereist. De sleutels worden opgeslagen in de lokale opslag van uw apparaat."
234
+ },
235
+ "Page": {
236
+ "notPartOfProject": "U maakt geen deel uit van dit project."
237
+ },
238
+ "ResumeButton": {
239
+ "resumeChat": "Chat hervatten"
240
+ }
241
+ }
242
+ }
backend/.chainlit/translations/ta.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
10
+ "logout": "\u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1\u0bc1"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0baa\u0ba3\u0bbf \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd",
22
+ "loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1...",
23
+ "error": "\u0b92\u0bb0\u0bc1 \u0baa\u0bbf\u0bb4\u0bc8 \u0b8f\u0bb1\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0ba4\u0bcd\u0ba4\u0bc8 \u0bb0\u0ba4\u0bcd\u0ba4\u0bc1\u0b9a\u0bc6\u0baf\u0bcd",
28
+ "removeAttachment": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bb5\u0bbe?",
32
+ "clearChat": "\u0b87\u0ba4\u0bc1 \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b85\u0bb4\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1\u0bae\u0bcd.",
33
+ "cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
34
+ "confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd",
38
+ "expandMessages": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0bb5\u0bbf\u0bb0\u0bbf\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1",
39
+ "hideChainOfThought": "\u0b9a\u0bbf\u0ba8\u0bcd\u0ba4\u0ba9\u0bc8\u0b9a\u0bcd \u0b9a\u0b99\u0bcd\u0b95\u0bbf\u0bb2\u0bbf\u0baf\u0bc8 \u0bae\u0bb1\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1",
40
+ "darkMode": "\u0b87\u0bb0\u0bc1\u0ba3\u0bcd\u0b9f \u0baa\u0baf\u0ba9\u0bcd\u0bae\u0bc1\u0bb1\u0bc8"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf",
44
+ "running": "\u0b93\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd",
45
+ "took_one": "{{count}} \u0b85\u0b9f\u0bbf \u0b8e\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bc8\u0ba4\u0bcd\u0ba4\u0bbe\u0bb0\u0bcd",
46
+ "took_other": "{{count}} \u0baa\u0b9f\u0bbf\u0b95\u0bb3\u0bc8 \u0b8e\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb0\u0bcd"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc8 \u0b85\u0ba3\u0bc1\u0b95 \u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95.",
51
+ "form": {
52
+ "email": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
53
+ "password": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
54
+ "noAccount": "\u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8\u0baf\u0bbe?",
55
+ "alreadyHaveAccount": "\u0b8f\u0bb1\u0bcd\u0b95\u0ba9\u0bb5\u0bc7 \u0b92\u0bb0\u0bc1 \u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bc1 \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bbe?",
56
+ "signup": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1\u0baa\u0bc6\u0bb1\u0bc1",
57
+ "signin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0b95",
58
+ "or": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1",
59
+ "continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd",
60
+ "forgotPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bb1\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bbe?",
61
+ "passwordMustContain": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bbf\u0bb2\u0bcd \u0b87\u0bb5\u0bc8 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd:",
62
+ "emailRequired": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b92\u0bb0\u0bc1 \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
63
+ "passwordRequired": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd"
64
+ },
65
+ "error": {
66
+ "default": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0baf \u0b87\u0baf\u0bb2\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
67
+ "signin": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
68
+ "oauthsignin": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
69
+ "redirect_uri_mismatch": "\u0bb5\u0bb4\u0bbf\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 URI oauth \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1 \u0b89\u0bb3\u0bcd\u0bb3\u0bae\u0bc8\u0bb5\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
70
+ "oauthcallbackerror": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
71
+ "oauthcreateaccount": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
72
+ "emailcreateaccount": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
73
+ "callback": "\u0bb5\u0bc7\u0bb1\u0bca\u0bb0\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.",
74
+ "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, \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \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.",
75
+ "emailsignin": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa \u0b87\u0baf\u0bb2\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.",
76
+ "emailverify": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd, \u0b92\u0bb0\u0bc1 \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\u0ba4\u0bc1.",
77
+ "credentialssignin": "\u0b89\u0bb3\u0bcd\u0ba8\u0bc1\u0bb4\u0bc8\u0bb5\u0bc1 \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\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\u0ba4\u0bbe \u0b8e\u0ba9\u0bcd\u0bb1\u0bc1 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd.",
78
+ "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."
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bbf\u0b9f\u0bcd\u0b9f\u0ba4\u0bcd\u0ba4\u0b9f\u0bcd\u0b9f \u0bb5\u0ba8\u0bcd\u0ba4\u0bc1\u0bb5\u0bbf\u0b9f\u0bcd\u0b9f\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bcd! -\u0b95\u0bcd\u0b95\u0bc1 \u0b92\u0bb0\u0bc1 \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0baf\u0bc1\u0bb3\u0bcd\u0bb3\u0bcb\u0bae\u0bcd ",
83
+ "verifyEmailLink": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bb2\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc8\u0bb5\u0bc1\u0b9a\u0bc6\u0baf\u0bcd\u0baf \u0b85\u0ba8\u0bcd\u0ba4 \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bbf\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8\u0b95\u0bcd \u0b95\u0bbf\u0bb3\u0bbf\u0b95\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0bb5\u0bc1\u0bae\u0bcd.",
84
+ "didNotReceive": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8\u0b95\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8\u0baf\u0bbe?",
85
+ "resendEmail": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bb5\u0bc1\u0bae\u0bcd",
86
+ "goBack": "\u0baa\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd",
87
+ "emailSent": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1.",
88
+ "verifyEmail": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b88\u0bae\u0bc6\u0baf\u0bbf\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8\u0b9a\u0bcd \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u0b89\u0b9f\u0ba9\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bb5\u0bc1\u0bae\u0bcd",
92
+ "signup": "{{provider}} \u0b89\u0b9f\u0ba9\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
96
+ "passwordsMustMatch": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd",
97
+ "confirmPasswordRequired": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
98
+ "newPassword": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd",
99
+ "confirmPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd",
100
+ "resetPassword": "\u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf",
104
+ "emailRequired": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0b92\u0bb0\u0bc1 \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 \u0baa\u0bc1\u0bb2\u0bae\u0bcd",
105
+ "emailSent": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0ba4\u0bb1\u0bcd\u0b95\u0bbe\u0ba9 \u0bb5\u0bb4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1 {{email}} \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd.",
106
+ "enterEmail": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bb5\u0bc1\u0bae\u0bcd, \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0b9f\u0bb5\u0bc1\u0b9a\u0bcd\u0b9a\u0bca\u0bb2\u0bcd\u0bb2\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8\u0b95\u0bcd\u0b95 \u0ba8\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0bb5\u0bb4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bc8 \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0bb5\u0bcb\u0bae\u0bcd.",
107
+ "resendEmail": "\u0bae\u0bbf\u0ba9\u0bcd\u0ba9\u0b9e\u0bcd\u0b9a\u0bb2\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bb5\u0bc1\u0bae\u0bcd",
108
+ "continue": "\u0ba4\u0bca\u0b9f\u0bb0\u0bcd",
109
+ "goBack": "\u0baa\u0bbf\u0ba9\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bcd\u0bb1\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95",
118
+ "lastInputs": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf \u0b89\u0bb3\u0bcd\u0bb3\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd",
119
+ "noInputs": "\u0b85\u0bb5\u0bcd\u0bb5\u0bb3\u0bb5\u0bc1 \u0bb5\u0bc6\u0bb1\u0bc1\u0bae\u0bc8...",
120
+ "loading": "\u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1..."
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "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\u0b95..."
126
+ },
127
+ "speechButton": {
128
+ "start": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bc1",
129
+ "stop": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0bb5\u0ba4\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf \u0b85\u0ba9\u0bc1\u0baa\u0bcd\u0baa\u0bc1",
133
+ "stopTask": "\u0baa\u0ba3\u0bbf\u0baf\u0bc8 \u0ba8\u0bbf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0ba3\u0bc8\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u0b89\u0b9f\u0ba9\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u0b93\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd",
145
+ "executedSuccessfully": "\u0bb5\u0bc6\u0bb1\u0bcd\u0bb1\u0bbf\u0b95\u0bb0\u0bae\u0bbe\u0b95 \u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
146
+ "failed": "\u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1",
147
+ "feedbackUpdated": "\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",
148
+ "updating": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb1\u0ba4\u0bc1"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc7 \u0bb5\u0bbf\u0b9f\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd:"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1\u0bb5\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf",
169
+ "cancelledUploadOf": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0baf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bae\u0bcd",
170
+ "couldNotReachServer": "\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",
171
+ "continuingChat": "\u0ba4\u0bca\u0b9f\u0bb0\u0bc1\u0bae\u0bcd \u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u0b85\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd \u0b95\u0bc1\u0bb4\u0bc1",
175
+ "reset": "\u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bae\u0bc8",
176
+ "cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
177
+ "confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1\u0bae\u0bcd",
185
+ "feedbackPositive": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0ba8\u0bc7\u0bb0\u0bcd\u0bae\u0bb1\u0bc8",
186
+ "feedbackNegative": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bc2\u0b9f\u0bcd\u0b9f\u0bae\u0bcd: \u0b8e\u0ba4\u0bbf\u0bb0\u0bcd\u0bae\u0bb1\u0bc8"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u0ba4\u0bc7\u0b9f\u0bc1"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u0b87\u0ba4\u0bc1 \u0ba8\u0bc2\u0bb2\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0ba4\u0ba9\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bbf\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b95\u0bc2\u0bb1\u0bc1\u0b95\u0bb3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd.",
194
+ "cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1",
195
+ "confirm": "\u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0b9a\u0bc6\u0baf\u0bcd",
196
+ "deletingChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
197
+ "chatDeleted": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bb3\u0bcd"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0b95\u0bbe\u0bb2\u0bbf\u0baf\u0bbe\u0ba9...",
204
+ "today": "\u0b87\u0ba9\u0bcd\u0bb1\u0bc1",
205
+ "yesterday": "\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1",
206
+ "previous7days": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf 7 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",
207
+ "previous30days": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf 30 \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bae\u0bc2\u0b9f\u0bc1",
211
+ "openSidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8\u0ba4\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bcd\u0bb2\u0bb5\u0bc1\u0bae\u0bcd",
216
+ "chatCreatedOn": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0ba4\u0bc7\u0ba4\u0bbf"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8",
221
+ "readme": "\u0bb0\u0bc0\u0b9f\u0bcd\u0bae\u0bc0"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u0bb5\u0bb4\u0b99\u0bcd\u0b95\u0bc1\u0ba8\u0bb0\u0bcd\u0b95\u0bb3\u0bc8\u0baa\u0bcd \u0baa\u0bc6\u0bb1\u0bc1\u0bb5\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\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",
234
+ "requiredApiKeys": "\u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 API \u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
235
+ "requiredApiKeysInfo": "\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."
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4\u0ba4\u0bcd \u0ba4\u0bbf\u0b9f\u0bcd\u0b9f\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0b92\u0bb0\u0bc1 \u0baa\u0b95\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0b87\u0bb2\u0bcd\u0bb2\u0bc8."
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u0b85\u0bb0\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bc8 \u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/te.json ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d \u0c32\u0c41",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API Keys",
10
+ "logout": "Logout"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u0c1f\u0c3e\u0c38\u0c4d\u0c15\u0c4d \u0c32\u0c3f\u0c38\u0c4d\u0c1f\u0c4d",
22
+ "loading": "\u0c32\u0c4b\u0c21\u0c3f\u0c02\u0c17\u0c4d...",
23
+ "error": "\u0c12\u0c15 \u0c26\u0c4b\u0c37\u0c02 \u0c38\u0c02\u0c2d\u0c35\u0c3f\u0c02\u0c1a\u0c3f\u0c02\u0c26\u0c3f"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d \u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f",
28
+ "removeAttachment": "\u0c05\u0c1f\u0c3e\u0c1a\u0c4d \u0c2e\u0c46\u0c02\u0c1f\u0c4d \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c02\u0c1a\u0c41"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c3e\u0c32\u0c3e?",
32
+ "clearChat": "\u0c07\u0c26\u0c3f \u0c2a\u0c4d\u0c30\u0c38\u0c4d\u0c24\u0c41\u0c24 \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c15\u0c4d\u0c32\u0c3f\u0c2f\u0c30\u0c4d \u0c1a\u0c47\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d\u0c28\u0c41 \u0c2a\u0c4d\u0c30\u0c3e\u0c30\u0c02\u0c2d\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f.",
33
+ "cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
34
+ "confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d \u0c32\u0c41",
38
+ "expandMessages": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c28\u0c41 \u0c35\u0c3f\u0c38\u0c4d\u0c24\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
39
+ "hideChainOfThought": "\u0c06\u0c32\u0c4b\u0c1a\u0c28\u0c3e \u0c17\u0c4a\u0c32\u0c41\u0c38\u0c41\u0c28\u0c41 \u0c26\u0c3e\u0c1a\u0c02\u0c21\u0c3f",
40
+ "darkMode": "\u0c21\u0c3e\u0c30\u0c4d\u0c15\u0c4d \u0c2e\u0c4b\u0c21\u0c4d"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c02",
44
+ "running": "\u0c30\u0c28\u0c4d\u0c28\u0c3f\u0c02\u0c17\u0c4d",
45
+ "took_one": "{{count}} \u0c05\u0c21\u0c41\u0c17\u0c41 \u0c35\u0c47\u0c38\u0c3f\u0c02\u0c26\u0c3f",
46
+ "took_other": "{{count}} \u0c05\u0c21\u0c41\u0c17\u0c41\u0c32\u0c41 \u0c35\u0c47\u0c38\u0c3f\u0c02\u0c26\u0c3f"
47
+ },
48
+ "auth": {
49
+ "authLogin": {
50
+ "title": "\u0c2f\u0c3e\u0c2a\u0c4d \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c38\u0c41\u0c15\u0c4b\u0c35\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c32\u0c3e\u0c17\u0c3f\u0c28\u0c4d \u0c05\u0c35\u0c4d\u0c35\u0c02\u0c21\u0c3f.",
51
+ "form": {
52
+ "email": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
53
+ "password": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d",
54
+ "noAccount": "\u0c2e\u0c40\u0c15\u0c41 \u0c05\u0c15\u0c4c\u0c02\u0c1f\u0c4d \u0c32\u0c47\u0c26\u0c3e?",
55
+ "alreadyHaveAccount": "\u0c07\u0c2a\u0c4d\u0c2a\u0c1f\u0c3f\u0c15\u0c47 \u0c16\u0c3e\u0c24\u0c3e \u0c09\u0c02\u0c26\u0c3e?",
56
+ "signup": "\u0c38\u0c46\u0c56\u0c28\u0c4d \u0c05\u0c2a\u0c4d",
57
+ "signin": "\u0c38\u0c46\u0c56\u0c28\u0c4d \u0c07\u0c28\u0c4d",
58
+ "or": "\u0c32\u0c47\u0c26\u0c3e",
59
+ "continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c41",
60
+ "forgotPassword": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c2e\u0c30\u0c4d\u0c1a\u0c3f\u0c2a\u0c4b\u0c2f\u0c3e\u0c30\u0c3e?",
61
+ "passwordMustContain": "\u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c32\u0c4b \u0c07\u0c35\u0c3f \u0c09\u0c02\u0c21\u0c3e\u0c32\u0c3f:",
62
+ "emailRequired": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
63
+ "passwordRequired": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d"
64
+ },
65
+ "error": {
66
+ "default": "\u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c26\u0c41.",
67
+ "signin": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
68
+ "oauthsignin": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
69
+ "redirect_uri_mismatch": "\u0c30\u0c40\u0c21\u0c48\u0c30\u0c46\u0c15\u0c4d\u0c1f\u0c4d URI \u0c13\u0c2f\u0c42\u0c24\u0c4d \u0c2f\u0c3e\u0c2a\u0c4d \u0c15\u0c3e\u0c28\u0c4d\u0c2b\u0c3f\u0c17\u0c30\u0c47\u0c37\u0c28\u0c4d \u0c15\u0c41 \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c21\u0c02 \u0c32\u0c47\u0c26\u0c41.",
70
+ "oauthcallbackerror": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
71
+ "oauthcreateaccount": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
72
+ "emailcreateaccount": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
73
+ "callback": "\u0c35\u0c47\u0c30\u0c4a\u0c15 \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.",
74
+ "oauthaccountnotlinked": "\u0c2e\u0c40 \u0c17\u0c41\u0c30\u0c4d\u0c24\u0c3f\u0c02\u0c2a\u0c41\u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\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.",
75
+ "emailsignin": "\u0c07-\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c26\u0c41.",
76
+ "emailverify": "\u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \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.",
77
+ "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\u0c3f\u0c17\u0c4d\u0c17\u0c3e \u0c09\u0c28\u0c4d\u0c28\u0c3e\u0c2f\u0c4b \u0c32\u0c47\u0c26\u0c4b \u0c1a\u0c46\u0c15\u0c4d \u0c1a\u0c47\u0c38\u0c41\u0c15\u0c4b\u0c02\u0c21\u0c3f.",
78
+ "sessionrequired": "\u0c08 \u0c2a\u0c47\u0c1c\u0c40\u0c28\u0c3f \u0c2f\u0c3e\u0c15\u0c4d\u0c38\u0c46\u0c38\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c15\u0c4a\u0c30\u0c15\u0c41 \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c38\u0c48\u0c28\u0c4d \u0c07\u0c28\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f."
79
+ }
80
+ },
81
+ "authVerifyEmail": {
82
+ "almostThere": "\u0c2e\u0c40\u0c30\u0c41 \u0c26\u0c3e\u0c26\u0c3e\u0c2a\u0c41 \u0c05\u0c15\u0c4d\u0c15\u0c21\u0c47 \u0c09\u0c28\u0c4d\u0c28\u0c3e\u0c30\u0c41! \u0c2e\u0c47\u0c2e\u0c41 \u0c26\u0c40\u0c28\u0c3f\u0c15\u0c3f \u0c12\u0c15 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c2a\u0c02\u0c2a\u0c3e\u0c2e\u0c41 ",
83
+ "verifyEmailLink": "\u0c2e\u0c40 \u0c38\u0c48\u0c28\u0c4d \u0c05\u0c2a\u0c4d \u0c2a\u0c42\u0c30\u0c4d\u0c24\u0c3f \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f \u0c06 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c32\u0c4b\u0c28\u0c3f \u0c32\u0c3f\u0c02\u0c15\u0c4d \u0c2a\u0c48 \u0c15\u0c4d\u0c32\u0c3f\u0c15\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f.",
84
+ "didNotReceive": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c15\u0c28\u0c41\u0c17\u0c4a\u0c28\u0c32\u0c47\u0c15\u0c2a\u0c4b\u0c2f\u0c3e\u0c30\u0c3e?",
85
+ "resendEmail": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
86
+ "goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c41",
87
+ "emailSent": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c2a\u0c02\u0c2a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f.",
88
+ "verifyEmail": "\u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f"
89
+ },
90
+ "providerButton": {
91
+ "continue": "{{provider}} \u0c24\u0c4b \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
92
+ "signup": "{{provider}} \u0c24\u0c4b \u0c38\u0c48\u0c28\u0c4d \u0c05\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
93
+ },
94
+ "authResetPassword": {
95
+ "newPasswordRequired": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
96
+ "passwordsMustMatch": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c32\u0c41 \u0c24\u0c2a\u0c4d\u0c2a\u0c28\u0c3f\u0c38\u0c30\u0c3f\u0c17\u0c3e \u0c38\u0c30\u0c3f\u0c2a\u0c4b\u0c32\u0c3e\u0c32\u0c3f",
97
+ "confirmPasswordRequired": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d \u0c05\u0c28\u0c3f \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
98
+ "newPassword": "\u0c15\u0c4a\u0c24\u0c4d\u0c24 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d",
99
+ "confirmPassword": "\u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c28\u0c41 \u0c27\u0c43\u0c35\u0c40\u0c15\u0c30\u0c3f\u0c02\u0c1a\u0c02\u0c21\u0c3f",
100
+ "resetPassword": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d"
101
+ },
102
+ "authForgotPassword": {
103
+ "email": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e",
104
+ "emailRequired": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c05\u0c28\u0c47\u0c26\u0c3f \u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 \u0c2b\u0c40\u0c32\u0c4d\u0c21\u0c4d",
105
+ "emailSent": "\u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c38\u0c42\u0c1a\u0c28\u0c32 \u0c15\u0c4a\u0c30\u0c15\u0c41 \u0c26\u0c2f\u0c1a\u0c47\u0c38\u0c3f {{email}} \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c24\u0c28\u0c3f\u0c16\u0c40 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f.",
106
+ "enterEmail": "\u0c2e\u0c40 \u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c1a\u0c3f\u0c30\u0c41\u0c28\u0c3e\u0c2e\u0c3e\u0c28\u0c41 \u0c28\u0c2e\u0c4b\u0c26\u0c41 \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c2e\u0c40 \u0c2a\u0c3e\u0c38\u0c4d \u0c35\u0c30\u0c4d\u0c21\u0c4d \u0c28\u0c41 \u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c2e\u0c47\u0c2e\u0c41 \u0c2e\u0c40\u0c15\u0c41 \u0c38\u0c42\u0c1a\u0c28\u0c32\u0c41 \u0c2a\u0c02\u0c2a\u0c41\u0c24\u0c3e\u0c2e\u0c41.",
107
+ "resendEmail": "\u0c07\u0c2e\u0c46\u0c2f\u0c3f\u0c32\u0c4d \u0c28\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c2a\u0c02\u0c2a\u0c02\u0c21\u0c3f",
108
+ "continue": "\u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c41",
109
+ "goBack": "\u0c35\u0c46\u0c28\u0c15\u0c4d\u0c15\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c33\u0c41"
110
+ }
111
+ }
112
+ },
113
+ "organisms": {
114
+ "chat": {
115
+ "history": {
116
+ "index": {
117
+ "showHistory": "\u0c1a\u0c30\u0c3f\u0c24\u0c4d\u0c30\u0c28\u0c41 \u0c1a\u0c42\u0c2a\u0c3f\u0c02\u0c1a\u0c41",
118
+ "lastInputs": "\u0c1a\u0c3f\u0c35\u0c30\u0c3f \u0c07\u0c28\u0c4d \u0c2a\u0c41\u0c1f\u0c4d \u0c32\u0c41",
119
+ "noInputs": "\u0c05\u0c02\u0c24 \u0c16\u0c3e\u0c33\u0c40\u0c17\u0c3e...",
120
+ "loading": "\u0c32\u0c4b\u0c21\u0c3f\u0c02\u0c17\u0c4d..."
121
+ }
122
+ },
123
+ "inputBox": {
124
+ "input": {
125
+ "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..."
126
+ },
127
+ "speechButton": {
128
+ "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",
129
+ "stop": "\u0c30\u0c3f\u0c15\u0c3e\u0c30\u0c4d\u0c21\u0c3f\u0c02\u0c17\u0c4d \u0c06\u0c2a\u0c02\u0c21\u0c3f"
130
+ },
131
+ "SubmitButton": {
132
+ "sendMessage": "\u0c38\u0c02\u0c26\u0c47\u0c36\u0c02 \u0c2a\u0c02\u0c2a\u0c41",
133
+ "stopTask": "\u0c38\u0c4d\u0c1f\u0c3e\u0c2a\u0c4d \u0c1f\u0c3e\u0c38\u0c4d\u0c15\u0c4d"
134
+ },
135
+ "UploadButton": {
136
+ "attachFiles": "\u0c2b\u0c48\u0c33\u0c4d\u0c32\u0c28\u0c41 \u0c1c\u0c4b\u0c21\u0c3f\u0c02\u0c1a\u0c41"
137
+ },
138
+ "waterMark": {
139
+ "text": "\u0c26\u0c40\u0c28\u0c3f\u0c24\u0c4b \u0c28\u0c3f\u0c30\u0c4d\u0c2e\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
140
+ }
141
+ },
142
+ "Messages": {
143
+ "index": {
144
+ "running": "\u0c30\u0c28\u0c4d\u0c28\u0c3f\u0c02\u0c17\u0c4d",
145
+ "executedSuccessfully": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c05\u0c2e\u0c32\u0c41 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
146
+ "failed": "\u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
147
+ "feedbackUpdated": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d \u0c05\u0c2a\u0c4d \u0c21\u0c47\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
148
+ "updating": "\u0c05\u0c2a\u0c4d \u0c21\u0c47\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02"
149
+ },
150
+ "copyButton": {
151
+ "copyToClipboard": "Copy to clipboard",
152
+ "copied": "Copied!"
153
+ },
154
+ "feedbackButton": {
155
+ "helpful": "Helpful",
156
+ "notHelpful": "Not helpful",
157
+ "editFeedback": "Edit feedback"
158
+ },
159
+ "feedbackDialog": {
160
+ "dialogTitle": "Add a comment",
161
+ "submitButton": "Submit feedback"
162
+ }
163
+ },
164
+ "dropScreen": {
165
+ "dropYourFilesHere": "\u0c2e\u0c40 \u0c2b\u0c48\u0c33\u0c4d\u0c32\u0c28\u0c41 \u0c07\u0c15\u0c4d\u0c15\u0c21 \u0c21\u0c4d\u0c30\u0c3e\u0c2a\u0c4d \u0c1a\u0c47\u0c2f\u0c02\u0c21\u0c3f"
166
+ },
167
+ "index": {
168
+ "failedToUpload": "\u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02 \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f",
169
+ "cancelledUploadOf": "\u0c30\u0c26\u0c4d\u0c26\u0c41 \u0c1a\u0c47\u0c38\u0c3f\u0c28 \u0c05\u0c2a\u0c4d \u0c32\u0c4b\u0c21\u0c4d",
170
+ "couldNotReachServer": "\u0c38\u0c30\u0c4d\u0c35\u0c30\u0c4d \u0c15\u0c41 \u0c1a\u0c47\u0c30\u0c41\u0c15\u0c4b\u0c35\u0c21\u0c02 \u0c38\u0c3e\u0c27\u0c4d\u0c2f\u0c02 \u0c15\u0c3e\u0c32\u0c47\u0c26\u0c41",
171
+ "continuingChat": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f \u0c1a\u0c3e\u0c1f\u0c4d \u0c28\u0c41 \u0c15\u0c4a\u0c28\u0c38\u0c3e\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c02"
172
+ },
173
+ "settings": {
174
+ "settingsPanel": "\u0c38\u0c46\u0c1f\u0c4d\u0c1f\u0c3f\u0c02\u0c17\u0c4d\u0c38\u0c4d \u0c2a\u0c4d\u0c2f\u0c3e\u0c28\u0c46\u0c32\u0c4d",
175
+ "reset": "\u0c30\u0c40\u0c38\u0c46\u0c1f\u0c4d",
176
+ "cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
177
+ "confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41"
178
+ }
179
+ },
180
+ "threadHistory": {
181
+ "sidebar": {
182
+ "filters": {
183
+ "FeedbackSelect": {
184
+ "feedbackAll": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c05\u0c28\u0c4d\u0c28\u0c40",
185
+ "feedbackPositive": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c2a\u0c3e\u0c1c\u0c3f\u0c1f\u0c3f\u0c35\u0c4d",
186
+ "feedbackNegative": "\u0c2b\u0c40\u0c21\u0c4d \u0c2c\u0c4d\u0c2f\u0c3e\u0c15\u0c4d: \u0c28\u0c46\u0c17\u0c46\u0c1f\u0c3f\u0c35\u0c4d"
187
+ },
188
+ "SearchBar": {
189
+ "search": "\u0c35\u0c46\u0c24\u0c41\u0c15\u0c41"
190
+ }
191
+ },
192
+ "DeleteThreadButton": {
193
+ "confirmMessage": "\u0c07\u0c26\u0c3f \u0c25\u0c4d\u0c30\u0c46\u0c21\u0c4d\u0c24\u0c4b \u0c2a\u0c3e\u0c1f\u0c41 \u0c26\u0c3e\u0c28\u0c3f \u0c38\u0c02\u0c26\u0c47\u0c36\u0c3e\u0c32\u0c41 \u0c2e\u0c30\u0c3f\u0c2f\u0c41 \u0c0e\u0c32\u0c3f\u0c2e\u0c46\u0c02\u0c1f\u0c4d\u0c32\u0c28\u0c41 \u0c24\u0c4a\u0c32\u0c17\u0c3f\u0c38\u0c4d\u0c24\u0c41\u0c02\u0c26\u0c3f.",
194
+ "cancel": "\u0c30\u0c26\u0c4d\u0c26\u0c41",
195
+ "confirm": "\u0c27\u0c4d\u0c30\u0c41\u0c35\u0c2a\u0c30\u0c1a\u0c41",
196
+ "deletingChat": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c28\u0c41 \u0c21\u0c3f\u0c32\u0c40\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c02",
197
+ "chatDeleted": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c21\u0c3f\u0c32\u0c40\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
198
+ },
199
+ "index": {
200
+ "pastChats": "\u0c17\u0c24 \u0c1a\u0c3e\u0c1f\u0c4d \u0c32\u0c41"
201
+ },
202
+ "ThreadList": {
203
+ "empty": "\u0c16\u0c3e\u0c33\u0c40...",
204
+ "today": "\u0c08 \u0c30\u0c4b\u0c1c\u0c41",
205
+ "yesterday": "\u0c28\u0c3f\u0c28\u0c4d\u0c28",
206
+ "previous7days": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f 7 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",
207
+ "previous30days": "\u0c2e\u0c41\u0c28\u0c41\u0c2a\u0c1f\u0c3f 30 \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41"
208
+ },
209
+ "TriggerButton": {
210
+ "closeSidebar": "\u0c15\u0c4d\u0c32\u0c4b\u0c1c\u0c4d \u0c38\u0c48\u0c21\u0c4d \u0c2c\u0c3e\u0c30\u0c4d",
211
+ "openSidebar": "\u0c13\u0c2a\u0c46\u0c28\u0c4d \u0c38\u0c48\u0c21\u0c4d \u0c2c\u0c3e\u0c30\u0c4d"
212
+ }
213
+ },
214
+ "Thread": {
215
+ "backToChat": "\u0c1a\u0c3e\u0c1f\u0c4d \u0c1a\u0c47\u0c2f\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f \u0c24\u0c3f\u0c30\u0c3f\u0c17\u0c3f \u0c35\u0c46\u0c33\u0c4d\u0c32\u0c02\u0c21\u0c3f",
216
+ "chatCreatedOn": "\u0c08 \u0c1a\u0c3e\u0c1f\u0c4d \u0c26\u0c40\u0c28\u0c3f\u0c32\u0c4b \u0c38\u0c43\u0c37\u0c4d\u0c1f\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f"
217
+ }
218
+ },
219
+ "header": {
220
+ "chat": "\u0c2e\u0c41\u0c1a\u0c4d\u0c1a\u0c1f\u0c3f\u0c02\u0c1a\u0c41",
221
+ "readme": "Readme"
222
+ }
223
+ }
224
+ },
225
+ "hooks": {
226
+ "useLLMProviders": {
227
+ "failedToFetchProviders": "\u0c2a\u0c4d\u0c30\u0c4a\u0c35\u0c48\u0c21\u0c30\u0c4d\u0c32\u0c28\u0c41 \u0c2a\u0c4a\u0c02\u0c26\u0c21\u0c02\u0c32\u0c4b \u0c35\u0c3f\u0c2b\u0c32\u0c2e\u0c48\u0c02\u0c26\u0c3f:"
228
+ }
229
+ },
230
+ "pages": {
231
+ "Design": {},
232
+ "Env": {
233
+ "savedSuccessfully": "\u0c35\u0c3f\u0c1c\u0c2f\u0c35\u0c02\u0c24\u0c02\u0c17\u0c3e \u0c38\u0c47\u0c35\u0c4d \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c3f\u0c02\u0c26\u0c3f",
234
+ "requiredApiKeys": "\u0c05\u0c35\u0c38\u0c30\u0c2e\u0c48\u0c28 API \u0c15\u0c40\u0c32\u0c41",
235
+ "requiredApiKeysInfo": "\u0c08 \u0c2f\u0c3e\u0c2a\u0c4d \u0c09\u0c2a\u0c2f\u0c4b\u0c17\u0c3f\u0c02\u0c1a\u0c21\u0c3e\u0c28\u0c3f\u0c15\u0c3f, \u0c08 \u0c15\u0c4d\u0c30\u0c3f\u0c02\u0c26\u0c3f API \u0c15\u0c40\u0c32\u0c41 \u0c05\u0c35\u0c38\u0c30\u0c02 \u0c05\u0c35\u0c41\u0c24\u0c3e\u0c2f\u0c3f. \u0c15\u0c40\u0c32\u0c41 \u0c2e\u0c40 \u0c2a\u0c30\u0c3f\u0c15\u0c30\u0c02 \u0c2f\u0c4a\u0c15\u0c4d\u0c15 \u0c38\u0c4d\u0c25\u0c3e\u0c28\u0c3f\u0c15 \u0c38\u0c4d\u0c1f\u0c4b\u0c30\u0c47\u0c1c\u0c40\u0c32\u0c4b \u0c28\u0c3f\u0c32\u0c4d\u0c35 \u0c1a\u0c47\u0c2f\u0c2c\u0c21\u0c24\u0c3e\u0c2f\u0c3f."
236
+ },
237
+ "Page": {
238
+ "notPartOfProject": "\u0c2e\u0c40\u0c30\u0c41 \u0c08 \u0c2a\u0c4d\u0c30\u0c3e\u0c1c\u0c46\u0c15\u0c4d\u0c1f\u0c41\u0c32\u0c4b \u0c2d\u0c3e\u0c17\u0c02 \u0c15\u0c3e\u0c26\u0c41."
239
+ },
240
+ "ResumeButton": {
241
+ "resumeChat": "\u0c30\u0c46\u0c1c\u0c4d\u0c2f\u0c42\u0c2e\u0c4d \u0c1a\u0c3e\u0c1f\u0c4d"
242
+ }
243
+ }
244
+ }
backend/.chainlit/translations/zh-CN.json ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "components": {
3
+ "atoms": {
4
+ "buttons": {
5
+ "userButton": {
6
+ "menu": {
7
+ "settings": "\u8bbe\u7f6e",
8
+ "settingsKey": "S",
9
+ "APIKeys": "API \u5bc6\u94a5",
10
+ "logout": "\u767b\u51fa"
11
+ }
12
+ }
13
+ }
14
+ },
15
+ "molecules": {
16
+ "newChatButton": {
17
+ "newChat": "\u65b0\u5efa\u5bf9\u8bdd"
18
+ },
19
+ "tasklist": {
20
+ "TaskList": {
21
+ "title": "\ud83d\uddd2\ufe0f \u4efb\u52a1\u5217\u8868",
22
+ "loading": "\u52a0\u8f7d\u4e2d...",
23
+ "error": "\u53d1\u751f\u9519\u8bef"
24
+ }
25
+ },
26
+ "attachments": {
27
+ "cancelUpload": "\u53d6\u6d88\u4e0a\u4f20",
28
+ "removeAttachment": "\u79fb\u9664\u9644\u4ef6"
29
+ },
30
+ "newChatDialog": {
31
+ "createNewChat": "\u521b\u5efa\u65b0\u5bf9\u8bdd\uff1f",
32
+ "clearChat": "\u8fd9\u5c06\u6e05\u9664\u5f53\u524d\u6d88\u606f\u5e76\u5f00\u59cb\u65b0\u7684\u5bf9\u8bdd\u3002",
33
+ "cancel": "\u53d6\u6d88",
34
+ "confirm": "\u786e\u8ba4"
35
+ },
36
+ "settingsModal": {
37
+ "settings": "\u8bbe\u7f6e",
38
+ "expandMessages": "\u5c55\u5f00\u6d88\u606f",
39
+ "hideChainOfThought": "\u9690\u85cf\u601d\u8003\u94fe",
40
+ "darkMode": "\u6697\u8272\u6a21\u5f0f"
41
+ },
42
+ "detailsButton": {
43
+ "using": "\u4f7f\u7528",
44
+ "used": "\u5df2\u7528"
45
+ },
46
+ "auth": {
47
+ "authLogin": {
48
+ "title": "\u767b\u5f55\u4ee5\u8bbf\u95ee\u5e94\u7528\u3002",
49
+ "form": {
50
+ "email": "\u7535\u5b50\u90ae\u7bb1\u5730\u5740",
51
+ "password": "\u5bc6\u7801",
52
+ "noAccount": "\u6ca1\u6709\u8d26\u6237\uff1f",
53
+ "alreadyHaveAccount": "\u5df2\u6709\u8d26\u6237\uff1f",
54
+ "signup": "\u6ce8\u518c",
55
+ "signin": "\u767b\u5f55",
56
+ "or": "\u6216\u8005",
57
+ "continue": "\u7ee7\u7eed",
58
+ "forgotPassword": "\u5fd8\u8bb0\u5bc6\u7801\uff1f",
59
+ "passwordMustContain": "\u60a8\u7684\u5bc6\u7801\u5fc5\u987b\u5305\u542b\uff1a",
60
+ "emailRequired": "\u7535\u5b50\u90ae\u7bb1\u662f\u5fc5\u586b\u9879",
61
+ "passwordRequired": "\u5bc6\u7801\u662f\u5fc5\u586b\u9879"
62
+ },
63
+ "error": {
64
+ "default": "\u65e0\u6cd5\u767b\u5f55\u3002",
65
+ "signin": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
66
+ "oauthsignin": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
67
+ "redirect_uri_mismatch": "\u91cd\u5b9a\u5411URI\u4e0eOAuth\u5e94\u7528\u914d\u7f6e\u4e0d\u5339\u914d\u3002",
68
+ "oauthcallbackerror": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
69
+ "oauthcreateaccount": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
70
+ "emailcreateaccount": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
71
+ "callback": "\u5c1d\u8bd5\u4f7f\u7528\u4e0d\u540c\u7684\u8d26\u6237\u767b\u5f55\u3002",
72
+ "oauthaccountnotlinked": "\u4e3a\u4e86\u9a8c\u8bc1\u60a8\u7684\u8eab\u4efd\uff0c\u8bf7\u4f7f\u7528\u6700\u521d\u4f7f\u7528\u7684\u540c\u4e00\u8d26\u6237\u767b\u5f55\u3002",
73
+ "emailsignin": "\u65e0\u6cd5\u53d1\u9001\u90ae\u4ef6\u3002",
74
+ "emailverify": "\u8bf7\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\uff0c\u5df2\u53d1\u9001\u4e00\u5c01\u65b0\u90ae\u4ef6\u3002",
75
+ "credentialssignin": "\u767b\u5f55\u5931\u8d25\u3002\u8bf7\u68c0\u67e5\u60a8\u63d0\u4f9b\u7684\u8be6\u7ec6\u4fe1\u606f\u662f\u5426\u6b63\u786e\u3002",
76
+ "sessionrequired": "\u8bf7\u767b\u5f55\u4ee5\u8bbf\u95ee\u6b64\u9875\u9762\u3002"
77
+ }
78
+ },
79
+ "authVerifyEmail": {
80
+ "almostThere": "\u60a8\u5feb\u6210\u529f\u4e86\uff01\u6211\u4eec\u5df2\u5411 ",
81
+ "verifyEmailLink": "\u8bf7\u5355\u51fb\u8be5\u90ae\u4ef6\u4e2d\u7684\u94fe\u63a5\u4ee5\u5b8c\u6210\u6ce8\u518c\u3002",
82
+ "didNotReceive": "\u6ca1\u627e\u5230\u90ae\u4ef6\uff1f",
83
+ "resendEmail": "\u91cd\u65b0\u53d1\u9001\u90ae\u4ef6",
84
+ "goBack": "\u8fd4\u56de",
85
+ "emailSent": "\u90ae\u4ef6\u5df2\u6210\u529f\u53d1\u9001\u3002",
86
+ "verifyEmail": "\u9a8c\u8bc1\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740"
87
+ },
88
+ "providerButton": {
89
+ "continue": "\u4f7f\u7528{{provider}}\u7ee7\u7eed",
90
+ "signup": "\u4f7f\u7528{{provider}}\u6ce8\u518c"
91
+ },
92
+ "authResetPassword": {
93
+ "newPasswordRequired": "\u65b0\u5bc6\u7801\u662f\u5fc5\u586b\u9879",
94
+ "passwordsMustMatch": "\u5bc6\u7801\u5fc5\u987b\u4e00\u81f4",
95
+ "confirmPasswordRequired": "\u786e\u8ba4\u5bc6\u7801\u662f\u5fc5\u586b\u9879",
96
+ "newPassword": "\u65b0\u5bc6\u7801",
97
+ "confirmPassword": "\u786e\u8ba4\u5bc6\u7801",
98
+ "resetPassword": "\u91cd\u7f6e\u5bc6\u7801"
99
+ },
100
+ "authForgotPassword": {
101
+ "email": "\u7535\u5b50\u90ae\u7bb1\u5730\u5740",
102
+ "emailRequired": "\u7535\u5b50\u90ae\u7bb1\u662f\u5fc5\u586b\u9879",
103
+ "emailSent": "\u8bf7\u68c0\u67e5\u7535\u5b50\u90ae\u7bb1{{email}}\u4ee5\u83b7\u53d6\u91cd\u7f6e\u5bc6\u7801\u7684\u6307\u793a\u3002",
104
+ "enterEmail": "\u8bf7\u8f93\u5165\u60a8\u7684\u7535\u5b50\u90ae\u7bb1\u5730\u5740\uff0c\u6211\u4eec\u5c06\u53d1\u9001\u91cd\u7f6e\u5bc6\u7801\u7684\u6307\u793a\u3002",
105
+ "resendEmail": "\u91cd\u65b0\u53d1\u9001\u90ae\u4ef6",
106
+ "continue": "\u7ee7\u7eed",
107
+ "goBack": "\u8fd4\u56de"
108
+ }
109
+ }
110
+ },
111
+ "organisms": {
112
+ "chat": {
113
+ "history": {
114
+ "index": {
115
+ "showHistory": "\u663e\u793a\u5386\u53f2",
116
+ "lastInputs": "\u6700\u540e\u8f93\u5165",
117
+ "noInputs": "\u5982\u6b64\u7a7a\u65f7...",
118
+ "loading": "\u52a0\u8f7d\u4e2d..."
119
+ }
120
+ },
121
+ "inputBox": {
122
+ "input": {
123
+ "placeholder": "\u5728\u8fd9\u91cc\u8f93\u5165\u60a8\u7684\u6d88\u606f..."
124
+ },
125
+ "speechButton": {
126
+ "start": "\u5f00\u59cb\u5f55\u97f3",
127
+ "stop": "\u505c\u6b62\u5f55\u97f3",
128
+ "loading": "\u8fde\u63a5\u4e2d"
129
+ },
130
+ "SubmitButton": {
131
+ "sendMessage": "\u53d1\u9001\u6d88\u606f",
132
+ "stopTask": "\u505c\u6b62\u4efb\u52a1"
133
+ },
134
+ "UploadButton": {
135
+ "attachFiles": "\u9644\u52a0\u6587\u4ef6"
136
+ },
137
+ "waterMark": {
138
+ "text": "\u4f7f\u7528"
139
+ }
140
+ },
141
+ "Messages": {
142
+ "index": {
143
+ "running": "\u8fd0\u884c\u4e2d",
144
+ "executedSuccessfully": "\u6267\u884c\u6210\u529f",
145
+ "failed": "\u5931\u8d25",
146
+ "feedbackUpdated": "\u53cd\u9988\u66f4\u65b0",
147
+ "updating": "\u6b63\u5728\u66f4\u65b0"
148
+ },
149
+ "copyButton": {
150
+ "copyToClipboard": "\u62f7\u8d1d\u5230\u526a\u8d34\u677f",
151
+ "copied": "\u5df2\u62f7\u8d1d\uff01"
152
+ },
153
+ "feedbackButton": {
154
+ "helpful": "Helpful",
155
+ "notHelpful": "Not helpful",
156
+ "editFeedback": "Edit feedback"
157
+ },
158
+ "feedbackDialog": {
159
+ "dialogTitle": "Add a comment",
160
+ "submitButton": "Submit feedback"
161
+ }
162
+ },
163
+ "dropScreen": {
164
+ "dropYourFilesHere": "\u5728\u8fd9\u91cc\u62d6\u653e\u60a8\u7684\u6587\u4ef6"
165
+ },
166
+ "index": {
167
+ "failedToUpload": "\u4e0a\u4f20\u5931\u8d25",
168
+ "cancelledUploadOf": "\u53d6\u6d88\u4e0a\u4f20",
169
+ "couldNotReachServer": "\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668",
170
+ "continuingChat": "\u7ee7\u7eed\u4e4b\u524d\u7684\u5bf9\u8bdd"
171
+ },
172
+ "settings": {
173
+ "settingsPanel": "\u8bbe\u7f6e\u9762\u677f",
174
+ "reset": "\u91cd\u7f6e",
175
+ "cancel": "\u53d6\u6d88",
176
+ "confirm": "\u786e\u8ba4"
177
+ }
178
+ },
179
+ "threadHistory": {
180
+ "sidebar": {
181
+ "filters": {
182
+ "FeedbackSelect": {
183
+ "feedbackAll": "\u53cd\u9988\uff1a\u5168\u90e8",
184
+ "feedbackPositive": "\u53cd\u9988\uff1a\u6b63\u9762",
185
+ "feedbackNegative": "\u53cd\u9988\uff1a\u8d1f\u9762"
186
+ },
187
+ "SearchBar": {
188
+ "search": "\u641c\u7d22"
189
+ }
190
+ },
191
+ "DeleteThreadButton": {
192
+ "confirmMessage": "\u8fd9\u5c06\u5220\u9664\u7ebf\u7a0b\u53ca\u5176\u6d88\u606f\u548c\u5143\u7d20\u3002",
193
+ "cancel": "\u53d6\u6d88",
194
+ "confirm": "\u786e\u8ba4",
195
+ "deletingChat": "\u5220\u9664\u5bf9\u8bdd",
196
+ "chatDeleted": "\u5bf9\u8bdd\u5df2\u5220\u9664"
197
+ },
198
+ "index": {
199
+ "pastChats": "\u8fc7\u5f80\u5bf9\u8bdd"
200
+ },
201
+ "ThreadList": {
202
+ "empty": "\u7a7a\u7684...",
203
+ "today": "\u4eca\u5929",
204
+ "yesterday": "\u6628\u5929",
205
+ "previous7days": "\u524d7\u5929",
206
+ "previous30days": "\u524d30\u5929"
207
+ },
208
+ "TriggerButton": {
209
+ "closeSidebar": "\u5173\u95ed\u4fa7\u8fb9\u680f",
210
+ "openSidebar": "\u6253\u5f00\u4fa7\u8fb9\u680f"
211
+ }
212
+ },
213
+ "Thread": {
214
+ "backToChat": "\u8fd4\u56de\u5bf9\u8bdd",
215
+ "chatCreatedOn": "\u6b64\u5bf9\u8bdd\u521b\u5efa\u4e8e"
216
+ }
217
+ },
218
+ "header": {
219
+ "chat": "\u5bf9\u8bdd",
220
+ "readme": "\u8bf4\u660e"
221
+ }
222
+ }
223
+ },
224
+ "hooks": {
225
+ "useLLMProviders": {
226
+ "failedToFetchProviders": "\u83b7\u53d6\u63d0\u4f9b\u8005\u5931\u8d25:"
227
+ }
228
+ },
229
+ "pages": {
230
+ "Design": {},
231
+ "Env": {
232
+ "savedSuccessfully": "\u4fdd\u5b58\u6210\u529f",
233
+ "requiredApiKeys": "\u5fc5\u9700\u7684API\u5bc6\u94a5",
234
+ "requiredApiKeysInfo": "\u8981\u4f7f\u7528\u6b64\u5e94\u7528\uff0c\u9700\u8981\u4ee5\u4e0bAPI\u5bc6\u94a5\u3002\u8fd9\u4e9b\u5bc6\u94a5\u5b58\u50a8\u5728\u60a8\u7684\u8bbe\u5907\u672c\u5730\u5b58\u50a8\u4e2d\u3002"
235
+ },
236
+ "Page": {
237
+ "notPartOfProject": "\u60a8\u4e0d\u662f\u6b64\u9879\u76ee\u7684\u4e00\u90e8\u5206\u3002"
238
+ },
239
+ "ResumeButton": {
240
+ "resumeChat": "\u6062\u590d\u5bf9\u8bdd"
241
+ }
242
+ }
243
+ }
backend/Dockerfile ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install system dependencies
6
+ RUN apt-get update && apt-get install -y \
7
+ build-essential \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ # Install Python dependencies
11
+ COPY backend/requirements.txt .
12
+ RUN pip install --no-cache-dir -r requirements.txt
13
+
14
+ # Copy source files
15
+ COPY backend/ .
16
+
17
+ # Install aimakerspace package in development mode
18
+ RUN pip install -e .
19
+
20
+ # Expose port
21
+ EXPOSE 7860
22
+
23
+ # Start the app
24
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
backend/aimakerspace/__init__.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ """
2
+ AI Maker Space RAG implementation
3
+ """
4
+
5
+ __version__ = "0.1.0"
backend/aimakerspace/openai_utils/chatmodel.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dotenv import load_dotenv
2
+ from openai import AsyncOpenAI, OpenAI
3
+ import openai
4
+ from typing import List, Dict, Any
5
+ import os
6
+ import asyncio
7
+
8
+
9
+ class ChatOpenAI:
10
+ def __init__(self, model_name: str = "gpt-4-turbo-preview"):
11
+ load_dotenv()
12
+ self.openai_api_key = os.getenv("OPENAI_API_KEY")
13
+ self.async_client = AsyncOpenAI()
14
+ self.client = OpenAI()
15
+
16
+ if self.openai_api_key is None:
17
+ raise ValueError(
18
+ "OPENAI_API_KEY environment variable is not set. Please set it to your OpenAI API key."
19
+ )
20
+ openai.api_key = self.openai_api_key
21
+ self.model_name = model_name
22
+
23
+ async def agenerate(self, messages: List[Dict[str, str]]) -> str:
24
+ chat_completion = await self.async_client.chat.completions.create(
25
+ model=self.model_name,
26
+ messages=messages,
27
+ temperature=0.7,
28
+ )
29
+
30
+ return chat_completion.choices[0].message.content
31
+
32
+ async def astream(self, messages: List[Dict[str, str]]):
33
+ stream = await self.async_client.chat.completions.create(
34
+ model=self.model_name,
35
+ messages=messages,
36
+ temperature=0.7,
37
+ stream=True,
38
+ )
39
+
40
+ async for chunk in stream:
41
+ if chunk.choices[0].delta.content is not None:
42
+ yield chunk.choices[0].delta.content
43
+
44
+ def generate(self, messages: List[Dict[str, str]]) -> str:
45
+ chat_completion = self.client.chat.completions.create(
46
+ model=self.model_name,
47
+ messages=messages,
48
+ temperature=0.7,
49
+ )
50
+
51
+ return chat_completion.choices[0].message.content
backend/aimakerspace/openai_utils/embedding.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dotenv import load_dotenv
2
+ from openai import AsyncOpenAI, OpenAI
3
+ import openai
4
+ from typing import List
5
+ import os
6
+ import asyncio
7
+
8
+
9
+ class EmbeddingModel:
10
+ def __init__(self, embeddings_model_name: str = "text-embedding-3-small"):
11
+ load_dotenv()
12
+ self.openai_api_key = os.getenv("OPENAI_API_KEY")
13
+ self.async_client = AsyncOpenAI()
14
+ self.client = OpenAI()
15
+
16
+ if self.openai_api_key is None:
17
+ raise ValueError(
18
+ "OPENAI_API_KEY environment variable is not set. Please set it to your OpenAI API key."
19
+ )
20
+ openai.api_key = self.openai_api_key
21
+ self.embeddings_model_name = embeddings_model_name
22
+
23
+ async def async_get_embeddings(self, list_of_text: List[str]) -> List[List[float]]:
24
+ embedding_response = await self.async_client.embeddings.create(
25
+ input=list_of_text, model=self.embeddings_model_name
26
+ )
27
+
28
+ return [embeddings.embedding for embeddings in embedding_response.data]
29
+
30
+ async def async_get_embedding(self, text: str) -> List[float]:
31
+ embedding = await self.async_client.embeddings.create(
32
+ input=text, model=self.embeddings_model_name
33
+ )
34
+
35
+ return embedding.data[0].embedding
36
+
37
+ def get_embeddings(self, list_of_text: List[str]) -> List[List[float]]:
38
+ embedding_response = self.client.embeddings.create(
39
+ input=list_of_text, model=self.embeddings_model_name
40
+ )
41
+
42
+ return [embeddings.embedding for embeddings in embedding_response.data]
43
+
44
+ def get_embedding(self, text: str) -> List[float]:
45
+ embedding = self.client.embeddings.create(
46
+ input=text, model=self.embeddings_model_name
47
+ )
48
+
49
+ return embedding.data[0].embedding
50
+
51
+ async def aembed_documents(self, texts: List[str]) -> List[List[float]]:
52
+ return await self.async_get_embeddings(texts)
53
+
54
+ async def embed_query(self, text: str) -> List[float]:
55
+ return await self.async_get_embedding(text)
backend/aimakerspace/openai_utils/prompts.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Dict, Any
2
+
3
+
4
+ class SystemRolePrompt:
5
+ def __init__(self, template: str):
6
+ self.template = template
7
+
8
+ def create_message(self, **kwargs) -> Dict[str, str]:
9
+ return {"role": "system", "content": self.template.format(**kwargs)}
10
+
11
+
12
+ class UserRolePrompt:
13
+ def __init__(self, template: str):
14
+ self.template = template
15
+
16
+ def create_message(self, **kwargs) -> Dict[str, str]:
17
+ return {"role": "user", "content": self.template.format(**kwargs)}
18
+
19
+
20
+ class AssistantRolePrompt:
21
+ def __init__(self, template: str):
22
+ self.template = template
23
+
24
+ def create_message(self, **kwargs) -> Dict[str, str]:
25
+ return {"role": "assistant", "content": self.template.format(**kwargs)}
backend/aimakerspace/text_utils.py ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from typing import List
3
+ import PyPDF2
4
+
5
+
6
+ class TextFileLoader:
7
+ def __init__(self, path: str, encoding: str = "utf-8"):
8
+ self.documents = []
9
+ self.path = path
10
+ self.encoding = encoding
11
+
12
+ def load(self):
13
+ if os.path.isdir(self.path):
14
+ self.load_directory()
15
+ elif os.path.isfile(self.path) and self.path.endswith(".txt"):
16
+ self.load_file()
17
+ else:
18
+ raise ValueError(
19
+ "Provided path is neither a valid directory nor a .txt file."
20
+ )
21
+
22
+ def load_file(self):
23
+ with open(self.path, "r", encoding=self.encoding) as f:
24
+ self.documents.append(f.read())
25
+
26
+ def load_directory(self):
27
+ for root, _, files in os.walk(self.path):
28
+ for file in files:
29
+ if file.endswith(".txt"):
30
+ with open(
31
+ os.path.join(root, file), "r", encoding=self.encoding
32
+ ) as f:
33
+ self.documents.append(f.read())
34
+
35
+ def load_documents(self):
36
+ self.load()
37
+ return self.documents
38
+
39
+
40
+ class CharacterTextSplitter:
41
+ def __init__(
42
+ self,
43
+ chunk_size: int = 1000,
44
+ chunk_overlap: int = 200,
45
+ ):
46
+ assert (
47
+ chunk_size > chunk_overlap
48
+ ), "Chunk size must be greater than chunk overlap"
49
+
50
+ self.chunk_size = chunk_size
51
+ self.chunk_overlap = chunk_overlap
52
+
53
+ def split(self, text: str) -> List[str]:
54
+ chunks = []
55
+ for i in range(0, len(text), self.chunk_size - self.chunk_overlap):
56
+ chunks.append(text[i : i + self.chunk_size])
57
+ return chunks
58
+
59
+ def split_texts(self, texts: List[str]) -> List[str]:
60
+ chunks = []
61
+ for text in texts:
62
+ chunks.extend(self.split(text))
63
+ return chunks
64
+
65
+
66
+ class PDFLoader:
67
+ def __init__(self, path: str):
68
+ self.documents = []
69
+ self.path = path
70
+ print(f"PDFLoader initialized with path: {self.path}")
71
+
72
+ def load(self):
73
+ print(f"Loading PDF from path: {self.path}")
74
+ print(f"Path exists: {os.path.exists(self.path)}")
75
+ print(f"Is file: {os.path.isfile(self.path)}")
76
+ print(f"Is directory: {os.path.isdir(self.path)}")
77
+ print(f"File permissions: {oct(os.stat(self.path).st_mode)[-3:]}")
78
+
79
+ try:
80
+ # Try to open the file first to verify access
81
+ with open(self.path, 'rb') as test_file:
82
+ pass
83
+
84
+ # If we can open it, proceed with loading
85
+ self.load_file()
86
+
87
+ except IOError as e:
88
+ print(f"IOError accessing file at '{self.path}': {str(e)}")
89
+ raise ValueError(f"Cannot access file at '{self.path}': {str(e)}")
90
+ except Exception as e:
91
+ print(f"Error processing file at '{self.path}': {str(e)}")
92
+ raise ValueError(f"Error processing file at '{self.path}': {str(e)}")
93
+
94
+ def load_file(self):
95
+ try:
96
+ with open(self.path, 'rb') as file:
97
+ # Create PDF reader object
98
+ pdf_reader = PyPDF2.PdfReader(file)
99
+
100
+ if len(pdf_reader.pages) == 0:
101
+ raise ValueError("PDF file is empty")
102
+
103
+ # Extract text from each page
104
+ text = ""
105
+ for page in pdf_reader.pages:
106
+ try:
107
+ page_text = page.extract_text()
108
+ if page_text:
109
+ text += page_text + "\n"
110
+ except Exception as e:
111
+ print(f"Error extracting text from page: {str(e)}")
112
+
113
+ if not text.strip():
114
+ raise ValueError("No text could be extracted from the PDF")
115
+
116
+ self.documents.append(text)
117
+ print(f"Successfully extracted {len(text)} characters from PDF")
118
+
119
+ except PyPDF2.PdfReadError as e:
120
+ print(f"PDF read error: {str(e)}")
121
+ raise ValueError(f"Error reading PDF file: {str(e)}")
122
+ except Exception as e:
123
+ print(f"Error in load_file: {str(e)}")
124
+ raise ValueError(f"Error processing PDF file: {str(e)}")
125
+
126
+ def load_directory(self):
127
+ for root, _, files in os.walk(self.path):
128
+ for file in files:
129
+ if file.lower().endswith('.pdf'):
130
+ file_path = os.path.join(root, file)
131
+ try:
132
+ with open(file_path, 'rb') as f:
133
+ pdf_reader = PyPDF2.PdfReader(f)
134
+
135
+ # Extract text from each page
136
+ text = ""
137
+ for page in pdf_reader.pages:
138
+ try:
139
+ page_text = page.extract_text()
140
+ if page_text:
141
+ text += page_text + "\n"
142
+ except Exception as e:
143
+ print(f"Error extracting text from page in {file}: {str(e)}")
144
+
145
+ if text.strip():
146
+ self.documents.append(text)
147
+ print(f"Successfully extracted {len(text)} characters from {file}")
148
+ else:
149
+ print(f"No text could be extracted from {file}")
150
+
151
+ except Exception as e:
152
+ print(f"Error processing {file}: {str(e)}")
153
+
154
+ def load_documents(self):
155
+ self.load()
156
+ return self.documents
backend/aimakerspace/vectordatabase.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ from typing import List, Tuple
3
+ from aimakerspace.openai_utils.embedding import EmbeddingModel
4
+
5
+
6
+ class VectorDatabase:
7
+ def __init__(self):
8
+ print("Initializing VectorDatabase...") # Debug log
9
+ try:
10
+ self.embedding_model = EmbeddingModel()
11
+ print("EmbeddingModel initialized") # Debug log
12
+ self.embeddings = []
13
+ self.texts = []
14
+ except Exception as e:
15
+ print(f"Error initializing VectorDatabase: {str(e)}") # Debug log
16
+ raise
17
+
18
+ async def abuild_from_list(self, texts: List[str]):
19
+ try:
20
+ print(f"Building vector database from {len(texts)} texts") # Debug log
21
+ self.texts = texts
22
+ print("Generating embeddings...") # Debug log
23
+ self.embeddings = await self.embedding_model.async_get_embeddings(texts)
24
+ print(f"Generated {len(self.embeddings)} embeddings") # Debug log
25
+ return self
26
+ except Exception as e:
27
+ print(f"Error building vector database: {str(e)}") # Debug log
28
+ raise
29
+
30
+ def _cosine_similarity(self, a: List[float], b: List[float]) -> float:
31
+ a = np.array(a)
32
+ b = np.array(b)
33
+ return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
34
+
35
+ async def search_by_text(self, query: str, k: int = 4) -> List[Tuple[str, float]]:
36
+ try:
37
+ print(f"Searching for query: {query}") # Debug log
38
+ query_embedding = await self.embedding_model.embed_query(query)
39
+ print("Generated query embedding") # Debug log
40
+
41
+ # Calculate similarities
42
+ similarities = []
43
+ for i, embedding in enumerate(self.embeddings):
44
+ similarity = self._cosine_similarity(query_embedding, embedding)
45
+ similarities.append((self.texts[i], similarity))
46
+
47
+ # Sort by similarity and return top k
48
+ similarities.sort(key=lambda x: x[1], reverse=True)
49
+ print(f"Found {len(similarities)} matches") # Debug log
50
+ return similarities[:k]
51
+ except Exception as e:
52
+ print(f"Error in search_by_text: {str(e)}") # Debug log
53
+ raise
backend/main.py ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, UploadFile, File, HTTPException
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+ from typing import List
4
+ from aimakerspace.text_utils import CharacterTextSplitter, TextFileLoader, PDFLoader
5
+ from aimakerspace.openai_utils.prompts import (
6
+ UserRolePrompt,
7
+ SystemRolePrompt,
8
+ )
9
+ from aimakerspace.openai_utils.embedding import EmbeddingModel
10
+ from aimakerspace.vectordatabase import VectorDatabase
11
+ from aimakerspace.openai_utils.chatmodel import ChatOpenAI
12
+ import tempfile
13
+ import shutil
14
+ import os
15
+ from pydantic import BaseModel
16
+ import openai
17
+ from dotenv import load_dotenv
18
+
19
+ # Load environment variables
20
+ load_dotenv()
21
+
22
+ app = FastAPI()
23
+
24
+ # Initialize application state
25
+ app.state.pipeline = None
26
+ app.state.vector_db = None
27
+ app.state.llm = None
28
+
29
+ # Add CORS middleware
30
+ app.add_middleware(
31
+ CORSMiddleware,
32
+ allow_origins=["http://localhost:3000"], # React frontend URL
33
+ allow_credentials=True,
34
+ allow_methods=["*"],
35
+ allow_headers=["*"],
36
+ )
37
+
38
+ # Initialize components
39
+ text_splitter = CharacterTextSplitter()
40
+ system_template = """\
41
+ Use the following context to answer a users question. If you cannot find the answer in the context, say you don't know the answer."""
42
+ system_role_prompt = SystemRolePrompt(system_template)
43
+ user_prompt_template = """\
44
+ Context:
45
+ {context}
46
+
47
+ Question:
48
+ {question}
49
+ """
50
+ user_role_prompt = UserRolePrompt(user_prompt_template)
51
+
52
+ # Initialize OpenAI client
53
+ openai.api_key = os.getenv("OPENAI_API_KEY")
54
+ if not openai.api_key:
55
+ raise ValueError("OPENAI_API_KEY environment variable is not set")
56
+
57
+ class RetrievalAugmentedQAPipeline:
58
+ def __init__(self, llm: ChatOpenAI, vector_db_retriever: VectorDatabase) -> None:
59
+ self.llm = llm
60
+ self.vector_db_retriever = vector_db_retriever
61
+
62
+ async def arun_pipeline(self, user_query: str):
63
+ context_list = await self.vector_db_retriever.search_by_text(user_query, k=4)
64
+
65
+ context_prompt = ""
66
+ for context in context_list:
67
+ context_prompt += context[0] + "\n"
68
+
69
+ formatted_system_prompt = system_role_prompt.create_message()
70
+ formatted_user_prompt = user_role_prompt.create_message(
71
+ question=user_query,
72
+ context=context_prompt
73
+ )
74
+
75
+ response = await self.llm.agenerate([formatted_system_prompt, formatted_user_prompt])
76
+ return {"response": response, "context": context_list}
77
+
78
+ class QueryRequest(BaseModel):
79
+ query: str
80
+
81
+ @app.post("/upload")
82
+ async def upload_file(file: UploadFile = File(...)):
83
+ temp_file_path = None
84
+ try:
85
+ print("Starting file upload process...") # Debug log
86
+ print(f"Received file: {file.filename}") # Debug log
87
+
88
+ # Create a temporary file with the correct extension
89
+ suffix = f".{file.filename.split('.')[-1]}"
90
+ with tempfile.NamedTemporaryFile(delete=False, suffix=suffix) as temp_file:
91
+ content = await file.read()
92
+ temp_file.write(content)
93
+ temp_file_path = temp_file.name
94
+ print(f"Created temporary file: {temp_file_path}") # Debug log
95
+ print(f"File exists: {os.path.exists(temp_file_path)}") # Debug log
96
+ print(f"File size: {os.path.getsize(temp_file_path)}") # Debug log
97
+
98
+ # Create appropriate loader
99
+ try:
100
+ if file.filename.lower().endswith('.pdf'):
101
+ print("Using PDF loader") # Debug log
102
+ loader = PDFLoader(temp_file_path)
103
+ else:
104
+ print("Using text file loader") # Debug log
105
+ raise HTTPException(status_code=400, detail="Only PDF files are supported")
106
+
107
+ # Load and process the documents
108
+ print("Loading documents...") # Debug log
109
+ documents = loader.load_documents()
110
+ print(f"Loaded {len(documents)} documents") # Debug log
111
+
112
+ if not documents:
113
+ raise ValueError("No text could be extracted from the document")
114
+
115
+ # Split text into chunks
116
+ text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
117
+ texts = text_splitter.split_texts(documents)
118
+ print(f"Split into {len(texts)} text chunks") # Debug log
119
+
120
+ if not texts:
121
+ raise ValueError("No text chunks were generated from the document")
122
+
123
+ except Exception as e:
124
+ print(f"Error processing document: {str(e)}") # Debug log
125
+ raise HTTPException(status_code=500, detail=f"Error processing document: {str(e)}")
126
+
127
+ # Create vector store
128
+ print("Creating vector database...") # Debug log
129
+ try:
130
+ vector_db = VectorDatabase()
131
+ print("VectorDatabase initialized") # Debug log
132
+ vector_db = await vector_db.abuild_from_list(texts)
133
+ print("Vector database created successfully") # Debug log
134
+ app.state.vector_db = vector_db # Store vector_db in application state
135
+ except Exception as e:
136
+ print(f"Error creating vector database: {str(e)}") # Debug log
137
+ raise HTTPException(status_code=500, detail=f"Error creating vector database: {str(e)}")
138
+
139
+ # Initialize chat model
140
+ print("Initializing chat model...") # Debug log
141
+ try:
142
+ chat_openai = ChatOpenAI()
143
+ print("ChatOpenAI initialized") # Debug log
144
+ app.state.llm = chat_openai # Store llm in application state
145
+ except Exception as e:
146
+ print(f"Error initializing chat model: {str(e)}") # Debug log
147
+ raise HTTPException(status_code=500, detail=f"Error initializing chat model: {str(e)}")
148
+
149
+ # Create pipeline
150
+ print("Creating pipeline...") # Debug log
151
+ try:
152
+ pipeline = RetrievalAugmentedQAPipeline(
153
+ vector_db_retriever=vector_db,
154
+ llm=chat_openai
155
+ )
156
+ print("Pipeline created successfully") # Debug log
157
+ app.state.pipeline = pipeline # Store pipeline in application state
158
+ except Exception as e:
159
+ print(f"Error creating pipeline: {str(e)}") # Debug log
160
+ raise HTTPException(status_code=500, detail=f"Error creating pipeline: {str(e)}")
161
+
162
+ return {"message": "File processed successfully", "num_chunks": len(texts)}
163
+
164
+ except Exception as e:
165
+ print(f"Error in upload_file: {str(e)}") # Debug log
166
+ print(f"Error type: {type(e)}") # Debug log
167
+ import traceback
168
+ print(f"Traceback: {traceback.format_exc()}") # Debug log
169
+ raise HTTPException(status_code=500, detail=str(e))
170
+ finally:
171
+ # Clean up temporary file
172
+ if temp_file_path and os.path.exists(temp_file_path):
173
+ try:
174
+ os.unlink(temp_file_path)
175
+ print("Temporary file cleaned up") # Debug log
176
+ except Exception as e:
177
+ print(f"Error cleaning up temporary file: {str(e)}") # Debug log
178
+
179
+ @app.post("/query")
180
+ async def query_document(request: QueryRequest):
181
+ try:
182
+ print("Starting query processing...") # Debug log
183
+ # Get the pipeline from application state
184
+ pipeline = app.state.pipeline
185
+ if not pipeline:
186
+ print("No pipeline found in application state") # Debug log
187
+ # Try to recreate pipeline from stored components
188
+ if app.state.vector_db and app.state.llm:
189
+ print("Recreating pipeline from stored components") # Debug log
190
+ pipeline = RetrievalAugmentedQAPipeline(
191
+ vector_db_retriever=app.state.vector_db,
192
+ llm=app.state.llm
193
+ )
194
+ app.state.pipeline = pipeline
195
+ else:
196
+ raise HTTPException(status_code=400, detail="No document has been uploaded yet")
197
+
198
+ print(f"Processing query: {request.query}") # Debug log
199
+ print(f"Pipeline state: {pipeline}") # Debug log
200
+
201
+ try:
202
+ result = await pipeline.arun_pipeline(request.query)
203
+ print(f"Query result: {result}") # Debug log
204
+ return result
205
+ except Exception as pipeline_error:
206
+ print(f"Pipeline error: {str(pipeline_error)}") # Debug log
207
+ print(f"Pipeline error type: {type(pipeline_error)}") # Debug log
208
+ import traceback
209
+ print(f"Pipeline traceback: {traceback.format_exc()}") # Debug log
210
+ raise HTTPException(status_code=500, detail=f"Pipeline error: {str(pipeline_error)}")
211
+
212
+ except HTTPException:
213
+ raise
214
+ except Exception as e:
215
+ print(f"Error in query_document: {str(e)}") # Debug log
216
+ print(f"Error type: {type(e)}") # Debug log
217
+ import traceback
218
+ print(f"Traceback: {traceback.format_exc()}") # Debug log
219
+ raise HTTPException(status_code=500, detail=str(e))
220
+
221
+ class VectorDatabase:
222
+ def __init__(self):
223
+ print("Initializing VectorDatabase...") # Debug log
224
+ try:
225
+ self.embedding_model = EmbeddingModel()
226
+ print("EmbeddingModel initialized") # Debug log
227
+ self.embeddings = []
228
+ self.texts = []
229
+ except Exception as e:
230
+ print(f"Error initializing VectorDatabase: {str(e)}") # Debug log
231
+ raise
232
+
233
+ async def abuild_from_list(self, texts: List[str]):
234
+ try:
235
+ print(f"Building vector database from {len(texts)} texts") # Debug log
236
+ self.texts = texts
237
+ print("Generating embeddings...") # Debug log
238
+ self.embeddings = await self.embedding_model.aembed_documents(texts)
239
+ print(f"Generated {len(self.embeddings)} embeddings") # Debug log
240
+ return self
241
+ except Exception as e:
242
+ print(f"Error building vector database: {str(e)}") # Debug log
243
+ raise
244
+
245
+ async def search_by_text(self, query: str, k: int = 4):
246
+ try:
247
+ print(f"Searching for query: {query}") # Debug log
248
+ query_embedding = await self.embedding_model.embed_query(query)
249
+ print("Generated query embedding") # Debug log
250
+
251
+ # Calculate similarities
252
+ similarities = []
253
+ for i, embedding in enumerate(self.embeddings):
254
+ similarity = self._cosine_similarity(query_embedding, embedding)
255
+ similarities.append((self.texts[i], similarity))
256
+
257
+ # Sort by similarity and return top k
258
+ similarities.sort(key=lambda x: x[1], reverse=True)
259
+ print(f"Found {len(similarities)} matches") # Debug log
260
+ return similarities[:k]
261
+ except Exception as e:
262
+ print(f"Error in search_by_text: {str(e)}") # Debug log
263
+ raise
264
+
265
+ def _cosine_similarity(self, a, b):
266
+ try:
267
+ import numpy as np
268
+ a = np.array(a)
269
+ b = np.array(b)
270
+ return float(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)))
271
+ except Exception as e:
272
+ print(f"Error calculating cosine similarity: {str(e)}") # Debug log
273
+ raise
274
+
275
+ if __name__ == "__main__":
276
+ import uvicorn
277
+ uvicorn.run(app, host="0.0.0.0", port=8000)
backend/pyproject.toml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "aimakerspace"
7
+ version = "0.1.0"
8
+ description = "AI Maker Space RAG implementation"
9
+ requires-python = ">=3.8"
10
+ dependencies = [
11
+ "openai>=1.0.0",
12
+ "PyPDF2>=3.0.0",
13
+ "python-dotenv>=0.19.0",
14
+ "numpy>=1.21.0",
15
+ "fastapi>=0.68.0",
16
+ "uvicorn>=0.15.0",
17
+ "python-multipart>=0.0.5",
18
+ ]
19
+
20
+ [tool.setuptools]
21
+ packages = ["aimakerspace"]
backend/requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ fastapi==0.109.2
2
+ uvicorn==0.27.1
3
+ python-multipart==0.0.9
4
+ pydantic==2.10.1
5
+ openai==1.59.9
6
+ numpy==1.26.4
7
+ pypdf2==3.0.1
8
+ websockets==14.2
9
+ python-dotenv==1.0.1
backend/test.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import sys
2
+ print("Python path:", sys.path)
3
+ try:
4
+ import main
5
+ print("Successfully imported main module")
6
+ except ImportError as e:
7
+ print("Error importing main module:", e)
backend/test.txt ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Artificial Intelligence and Machine Learning
2
+
3
+ Introduction
4
+ Artificial Intelligence (AI) and Machine Learning (ML) are transforming the way we live and work. AI refers to the simulation of human intelligence in machines that are programmed to think and learn like humans. Machine Learning is a subset of AI that enables systems to learn and improve from experience without being explicitly programmed.
5
+
6
+ Key Concepts in Machine Learning
7
+ 1. Supervised Learning: In supervised learning, the algorithm learns from labeled training data. The model is trained on a dataset where the correct answers (labels) are provided, and it learns to predict the labels for new, unseen data.
8
+
9
+ 2. Unsupervised Learning: This type of learning deals with unlabeled data. The algorithm tries to find patterns and relationships in the data without any predefined labels.
10
+
11
+ 3. Reinforcement Learning: In reinforcement learning, an agent learns to make decisions by interacting with an environment. It receives rewards or penalties for its actions and learns to maximize the cumulative reward.
12
+
13
+ Applications of AI and ML
14
+ 1. Natural Language Processing (NLP): NLP enables machines to understand, interpret, and generate human language. Applications include machine translation, chatbots, and sentiment analysis.
15
+
16
+ 2. Computer Vision: This field focuses on enabling computers to understand and process visual information from the world. Applications include facial recognition, object detection, and autonomous vehicles.
17
+
18
+ 3. Recommendation Systems: These systems use ML algorithms to suggest products, content, or services based on user preferences and behavior.
19
+
20
+ Challenges and Ethical Considerations
21
+ 1. Data Privacy: As AI systems require large amounts of data for training, ensuring data privacy and security is crucial.
22
+
23
+ 2. Bias in AI: AI systems can inherit biases present in their training data, leading to unfair or discriminatory outcomes.
24
+
25
+ 3. Transparency: The "black box" nature of some AI models makes it difficult to understand how they arrive at their decisions.
26
+
27
+ Future Trends
28
+ 1. Edge AI: Moving AI processing to edge devices for faster, more efficient computation.
29
+ 2. AutoML: Automating the process of applying machine learning to real-world problems.
30
+ 3. AI Ethics: Growing focus on developing responsible and ethical AI systems.
31
+
32
+ Conclusion
33
+ AI and ML continue to evolve rapidly, offering new opportunities and challenges. Understanding these technologies and their implications is crucial for anyone interested in the future of technology and its impact on society.
backend/test_app.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+
3
+ app = FastAPI()
4
+
5
+ @app.get("/")
6
+ async def root():
7
+ return {"message": "Hello World"}
backend/test_rag.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from aimakerspace.text_utils import TextFileLoader, CharacterTextSplitter
3
+ from aimakerspace.vectordatabase import VectorDatabase
4
+ from aimakerspace.openai_utils.chatmodel import ChatOpenAI
5
+ from aimakerspace.openai_utils.prompts import SystemRolePrompt, UserRolePrompt
6
+ import asyncio
7
+
8
+ system_template = """\
9
+ Use the following context to answer a users question. If you cannot find the answer in the context, say you don't know the answer."""
10
+ system_role_prompt = SystemRolePrompt(system_template)
11
+
12
+ user_prompt_template = """\
13
+ Context:
14
+ {context}
15
+
16
+ Question:
17
+ {question}
18
+ """
19
+ user_role_prompt = UserRolePrompt(user_prompt_template)
20
+
21
+ class RetrievalAugmentedQAPipeline:
22
+ def __init__(self, llm: ChatOpenAI, vector_db_retriever: VectorDatabase) -> None:
23
+ self.llm = llm
24
+ self.vector_db_retriever = vector_db_retriever
25
+
26
+ async def arun_pipeline(self, user_query: str):
27
+ context_list = self.vector_db_retriever.search_by_text(user_query, k=4)
28
+
29
+ context_prompt = ""
30
+ for context in context_list:
31
+ context_prompt += context[0] + "\n"
32
+
33
+ formatted_system_prompt = system_role_prompt.create_message()
34
+ formatted_user_prompt = user_role_prompt.create_message(
35
+ question=user_query,
36
+ context=context_prompt
37
+ )
38
+
39
+ response = await self.llm.agenerate([formatted_system_prompt, formatted_user_prompt])
40
+ return {"response": response, "context": context_list}
41
+
42
+ async def test_rag_pipeline(text_path: str, test_query: str):
43
+ print("1. Loading text file...")
44
+ loader = TextFileLoader(text_path)
45
+ documents = loader.load_documents()
46
+ print(f"Loaded {len(documents)} documents")
47
+
48
+ print("\n2. Splitting text...")
49
+ splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
50
+ texts = splitter.split_texts(documents)
51
+ print(f"Split into {len(texts)} chunks")
52
+
53
+ print("\n3. Creating vector database...")
54
+ vector_db = VectorDatabase()
55
+ vector_db = await vector_db.abuild_from_list(texts)
56
+ print("Vector database created")
57
+
58
+ print("\n4. Testing search...")
59
+ results = vector_db.search_by_text(test_query, k=3)
60
+ print(f"Found {len(results)} relevant chunks")
61
+ for i, (text, score) in enumerate(results):
62
+ print(f"\nChunk {i+1} (score: {score:.4f}):")
63
+ print(text[:200] + "...")
64
+
65
+ print("\n5. Testing full pipeline...")
66
+ chat_openai = ChatOpenAI()
67
+ pipeline = RetrievalAugmentedQAPipeline(
68
+ vector_db_retriever=vector_db,
69
+ llm=chat_openai
70
+ )
71
+
72
+ result = await pipeline.arun_pipeline(test_query)
73
+ print("\nResponse:")
74
+ print(result["response"])
75
+ print("\nContext used:")
76
+ for i, (text, score) in enumerate(result["context"]):
77
+ print(f"\nContext {i+1} (score: {score:.4f}):")
78
+ print(text[:200] + "...")
79
+
80
+ if __name__ == "__main__":
81
+ # Test with our sample text file
82
+ text_path = "test.txt"
83
+ test_query = "What are the main applications of AI and ML?"
84
+
85
+ asyncio.run(test_rag_pipeline(text_path, test_query))
chainlit.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # Welcome to Chat with Your Text/PDF File
2
+
3
+ With this application, you can chat with an uploaded text/PDFfile that is smaller than 2MB!
docker-compose.yml ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ version: '3.8'
2
+
3
+ services:
4
+ frontend:
5
+ build:
6
+ context: .
7
+ dockerfile: frontend/Dockerfile
8
+ ports:
9
+ - "3000:3000"
10
+ environment:
11
+ - REACT_APP_API_URL=http://backend:7860
12
+ depends_on:
13
+ - backend
14
+
15
+ backend:
16
+ build:
17
+ context: .
18
+ dockerfile: backend/Dockerfile
19
+ ports:
20
+ - "7860:7860"
21
+ environment:
22
+ - OPENAI_API_KEY=${OPENAI_API_KEY}
23
+ - PYTHONUNBUFFERED=1
frontend/Dockerfile ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:18-alpine
2
+
3
+ WORKDIR /app
4
+
5
+ # Install dependencies
6
+ COPY package*.json ./
7
+ RUN npm install
8
+
9
+ # Copy source
10
+ COPY . .
11
+
12
+ # Expose port
13
+ EXPOSE 3000
14
+
15
+ # Start the app
16
+ CMD ["npm", "start"]
frontend/package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
frontend/package.json ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "rag-frontend",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@emotion/react": "^11.14.0",
7
+ "@emotion/styled": "^11.14.0",
8
+ "@mui/icons-material": "^5.17.1",
9
+ "@mui/material": "^5.17.1",
10
+ "axios": "^1.8.4",
11
+ "react": "^18.2.0",
12
+ "react-dom": "^18.2.0",
13
+ "react-scripts": "5.0.1"
14
+ },
15
+ "scripts": {
16
+ "start": "react-scripts start",
17
+ "build": "react-scripts build",
18
+ "test": "react-scripts test",
19
+ "eject": "react-scripts eject"
20
+ },
21
+ "eslintConfig": {
22
+ "extends": [
23
+ "react-app",
24
+ "react-app/jest"
25
+ ]
26
+ },
27
+ "browserslist": {
28
+ "production": [
29
+ ">0.2%",
30
+ "not dead",
31
+ "not op_mini all"
32
+ ],
33
+ "development": [
34
+ "last 1 chrome version",
35
+ "last 1 firefox version",
36
+ "last 1 safari version"
37
+ ]
38
+ }
39
+ }
frontend/public/index.html ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="theme-color" content="#000000" />
7
+ <meta name="description" content="Document Q&A System" />
8
+ <title>Document Q&A</title>
9
+ <link
10
+ rel="stylesheet"
11
+ href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
12
+ />
13
+ </head>
14
+ <body>
15
+ <noscript>You need to enable JavaScript to run this app.</noscript>
16
+ <div id="root"></div>
17
+ </body>
18
+ </html>
frontend/src/App.css ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8d6a3351b7fe8743a2a7dea3b253648acc70c79796874dc76744316575b97bb3
3
+ size 2232
frontend/src/App.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5d45f6c322d97d8dce1c5f45ecce438fe8e4a93f276180e324f41bd4c4caf5ee
3
+ size 4758
frontend/src/index.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:51a633421a8d0153cd6117a3414d765c53d9218372f896cbf4e7a3c260605e06
3
+ size 619