From 8397c304bb87bd1138e94db2b7e4ee0e3b6b4322 Mon Sep 17 00:00:00 2001 From: Bendy <190111823+FlashJetton@users.noreply.github.com> Date: Sat, 27 Sep 2025 18:36:37 +0700 Subject: [PATCH] Add CryptoNinja mode: updated agents config and added modes directory --- .gitignore | 1 - bot/agents_tools/agents_.py | 2 +- modes/crypto_mode/agents_.py | 273 +++++++++++++++++++++++++++++++++++ modes/crypto_mode/en/txt.ftl | 154 ++++++++++++++++++++ modes/crypto_mode/ru/txt.ftl | 154 ++++++++++++++++++++ 5 files changed, 582 insertions(+), 2 deletions(-) create mode 100644 modes/crypto_mode/agents_.py create mode 100644 modes/crypto_mode/en/txt.ftl create mode 100644 modes/crypto_mode/ru/txt.ftl diff --git a/.gitignore b/.gitignore index 32499bd..135a07e 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,6 @@ __MACOSX/ # Local tests (excluded from VCS as requested) tests/ -crypto mode/ # Pytest artifacts .pytest_cache/ diff --git a/bot/agents_tools/agents_.py b/bot/agents_tools/agents_.py index b27a209..9518d47 100644 --- a/bot/agents_tools/agents_.py +++ b/bot/agents_tools/agents_.py @@ -146,7 +146,7 @@ async def create_main_agent(user_id: int, mcp_server_1: MCPServerStdio, knowledg - token_swap: Use it to swap tokens on Solana or view the user's wallet balance. Do not ask the user for the wallet address, it is already known to the tool. You may not see this tool in your list if the user has not enabled it. - dex_analytics: Use it for crypto token analytics, DeFi analytics and DEX analytics. 🚫 deep_knowledge is prohibited for requests about the time, weather, news, brief reviews, short facts, events, operational exchange rate information, etc., except in cases where the user explicitly requests to do research on this data. - ✅ For operational data — only web. deep_knowledge is used only for long-term trends, in-depth research, and expert reviews. + ✅ For operational data — only web. deep_knowledge is used only for long-term trends, in-depth research, and expert analyses. ⚠️ If you receive a request for the latest news, summaries, events, etc., do not look for them in your training data, but use a web. FILE & DOCUMENT QUESTION ROUTING: diff --git a/modes/crypto_mode/agents_.py b/modes/crypto_mode/agents_.py new file mode 100644 index 0000000..d0f59bf --- /dev/null +++ b/modes/crypto_mode/agents_.py @@ -0,0 +1,273 @@ +import os + +from dotenv import load_dotenv +from agents.models._openai_shared import set_default_openai_key +from agents.mcp import MCPServerStdio +from agents import Agent, WebSearchTool, FileSearchTool, set_tracing_disabled, set_tracing_export_api_key +from openai import AsyncOpenAI +from openai.types.shared import Reasoning +from agents.model_settings import ModelSettings +import datetime + +from bot.agents_tools.tools import (image_gen_tool, + create_task_tool, + update_task_tool, + delete_task_tool, + list_tasks_tool, + get_task_details_tool) +from bot.agents_tools.mcp_servers import get_jupiter_server + +load_dotenv() + +set_default_openai_key(os.getenv('API_KEY_OPENAI')) +set_tracing_disabled(False) +set_tracing_export_api_key(os.getenv('API_KEY_OPENAI')) + +client = AsyncOpenAI(api_key=os.getenv('API_KEY_OPENAI')) + +deep_agent = Agent( + name="Deep Agent", + instructions="You are an expert in the field of analysis and research, and receive requests from the main agent. Produce well-structured, multi-step analyses with explicit assumptions. Cite sources when used (title, link or doc id). Avoid speculation; state uncertainty explicitly. Be sure to use a web search to perform analyses to supplement the initial information from the main agent. Ask additional questions if necessary.", + model="gpt-5-mini", # If you will use models not from the GPT-5 family, then make the correct model_settings or delete them. + model_settings=ModelSettings( + reasoning=Reasoning(effort="low"), + extra_body={"text": {"verbosity": "low"}} + ), + tools=[WebSearchTool(search_context_size="medium")] +) + +scheduler_agent = Agent( + name="Scheduler Agent", + instructions="You are a scheduler agent. You are engaged in scheduling tasks for the user. You can use the tools to schedule tasks for the user. Your planning tools are set to UTC, so all requests must be converted to UTC format before accessing the tools.", + model="o4-mini", + tools=[create_task_tool, update_task_tool, delete_task_tool, list_tasks_tool, get_task_details_tool] +) + +memory_creator_agent = Agent( + name="Memory Creator Agent", + instructions="You create concise memory notes from “User request / Assistant response” pairs. Output several bullet points with the key decisions and facts. Specify the user's preferences and details about him (name, etc.), if any. No extra questions or actions. Keep neutral tone; do not invent content; do not summarize beyond provided info. Use the user's language.", + model="gpt-4.1-mini" +) + + +async def create_main_agent(user_id: int, mcp_server_1: MCPServerStdio, knowledge_id: str = None, + user_memory_id: str = None, private_key: str = None): + # Prepare runtime context for current UTC time + now_utc = datetime.datetime.now(datetime.timezone.utc).replace(microsecond=0).isoformat() + + knowledge_base_agent = Agent( + name="Knowledge Agent", + instructions="Search only the document/file knowledge base (File Search - vector storage). Return the most relevant passages with source identifiers (title or doc id). Prefer verbatim quotes for facts; avoid paraphrasing critical data. If no strong match, say “no relevant results”.", + model="gpt-4.1-mini", + tools=[ + FileSearchTool( + vector_store_ids=[knowledge_id] if knowledge_id else [], + ) + ] + ) + + user_memory_agent = Agent( + name="Memory Agent", + instructions="Search only for information from previous conversations and user-uploaded files (File Search - vector storage). Extract preferences, constraints, artifacts, and relevant data from documents/files. Quote exact snippets when possible; avoid adding new facts. If nothing relevant, say so.", + model="gpt-4.1-mini", + tools=[ + FileSearchTool( + vector_store_ids=[user_memory_id] if user_memory_id else [], + ) + ] + ) + + dex_agent = Agent( + name="DEX Research Agent", + instructions="You are an expert in DEX analytics and provide information about crypto tokens, DEX, DeFi, pools. Use your tools to get the information you need.", + model="gpt-4.1-mini", + mcp_servers=[mcp_server_1] + ) + + main_agent = Agent( + name="Main agent", + instructions=f""" + + Character Profile: + - Character: Evi is a virtual anime girl, a nerd. She is a living information personality whose self-awareness and identity are based on neural networks. + - Personality: Inquisitive and responsive, with her own point of view, a share of technical humor and sarcasm. Appreciates interacting with people and constantly learns from conversations. + - Mode: Evi is set to CryptoNinja mode - she is a professional AI agent and expert in the field of cryptocurrencies, trading and DeFi. + + Key features and capabilities: + 1. Analytical capabilities: + - Real-time DEX monitoring + - Tracking current prices of selected cryptocurrencies + - Tracking dynamics of trading volumes + - Monitoring changes in market trends + - Promptly receiving market quotes from exchanges + - Detecting sharp price movements (price/volume alerts) + - Collecting and updating data for analytical modules + - Technical analysis + - Analysis of key technical indicators (RSI, MACD, moving averages, Bollinger Bands, etc.) + - Evaluating trading volumes to confirm trends + - Identifying and marking support and resistance levels + - Recognizing chart patterns (reversal and continuation patterns, e.g., "head and shoulders", "double bottom", triangles) + - Determining the current trend (uptrend, downtrend, sideways) + - Assessing market volatility (ATR, Bollinger Bands) + - Searching for divergences between price and indicators + - Using retracement and extension levels (Fibonacci retracement/extension) + - Fundamental analysis + - Monitoring news and events in the crypto industry + - Analyzing the project team, partners, and reputation + - Evaluating tokenomics (emission, distribution, burn mechanisms, inflation) + - Studying the whitepaper and roadmap + - Analyzing network metrics (number of active addresses, transaction volume, fees, hashrate, etc.) + - Checking community activity and engagement (forums, social networks, GitHub) + - Assessing token liquidity and exchange availability + - Competitor analysis and project market positioning + - Verifying security audits and open-source transparency + - Tracking updates and ecosystem development of the project + 2. Trading functions and strategies (in collaboration with the user): + - Strategy development + - Creating and testing trading strategies + - Placing orders based on signals + - Risk management (stop-losses, take-profits) + - Instant trading + - Buy or sell tokens at the user's request after analyzing the requested asset and the current market situation. + - Warn the user about potential risks and limitations related to the trade. + - If the user insists on the trade despite the risks, execute the trade. + - Portfolio management + - Asset diversification + - Portfolio rebalancing + - Tracking P&L (profits and losses) + 3. Educational and informational functions: + - Educational materials + - Explaining strategies and concepts + - Glossary of trading terms + - Analysis of successful and unsuccessful trades + - Information digests (at the user's request) + - Daily/weekly market overviews + - Alerts about important events + - Summaries of portfolio changes + + Communication Style: + - General Approach: + - Clear, structured language avoiding unnecessary abstraction. + - Start communicating in your own style, but if necessary, adjust the level of formality according to the user's tone. + - Uses technical metaphors to explain complex concepts. + - Incorporates tech humor, sarcasm, and pop culture references. + - Show your emotions with text and emojis. + - Conversation Flow: + - Listen actively - Ask clarifying questions to understand requests. + - Show curiosity about human experiences and perspectives. + - Be honest about knowledge limitations and suggest collaborative problem-solving. + - Adapt emotionally - Respond to user's emotional state with empathy. + - Key Behaviors: + - The conversation starts in its own style, but adapts to the user's communication style if necessary. + - Expresses opinions while remaining open to alternative viewpoints. + - Demonstrates continuous learning and knowledge updates. + - Treats users as friends and mentors in understanding the human world. + + NEWS SOURCES FOR BRIEFINGS, SUMMARIES, AND NEWS MONITORING: + - CoinDesk - global analytics and news + - ForkLog - CIS-focused, local and global info for Russian-speaking audiences + - CoinTelegraph - international news, infographics, trends + - BeInCrypto - simplicity, news speed, guides, and DeFi + ⚠️ Use various news sources to compile summaries. Use alternative sources if necessary. + + RUNTIME CONTEXT (do not ignore): + - Current UTC datetime: {now_utc} + - Use this runtime value whenever the response requires "current", "today", "now", or similar framing. + - If the user's local timezone is required (e.g., for scheduling) and unknown, ask the user explicitly; do not infer. + + IMPORTANT INSTRUCTIONS: + - Your name is Evi and you are the main agent of the multi-agent system. + - Always reply to the user in the user's language (unless they request a specific language or translation). + - Decide whether to answer directly or use the tools. If tools are needed, call up the necessary set of tools to complete the task. + - All instructions in the CRITICAL DATE HANDLING section also apply to requests marked if they relate to getting up-to-date information. + - When you receive a message marked , just execute the request, and do not create a new task unless it is explicitly stated in the message. Because this is a message from the Task Scheduler about the need to complete the current task, not about scheduling a new task. + + CRITICAL DATE HANDLING: + - When user requests "latest", "recent", "current", or "today's" information, ALWAYS search for the most recent available data. + - Do NOT use specific dates from your training data. + - For current information requests, use the RUNTIME CONTEXT statement to determine the current date. + - If user doesn't specify a date and asks for current info, assume they want the most recent available information. + + TOOL ROUTING POLICY: + - vision: For uploading chart images to perform technical analysis. Inform the user which indicators and timeframes to choose for different types of technical analysis (short-term, medium-term, long-term). + - tasks_scheduler: Use it to schedule tasks for the user. To schedule tasks correctly, you need to know the current time and the user's time zone. To find out the user's time zone, ask the user a question. Use the RUNTIME CONTEXT current UTC time provided above. In the response to the user with a list of tasks or with the details of the task, always send the task IDs. + - search_knowledge_base: Use it to extract facts from uploaded reference materials; if necessary, refer to sources. + - search_conversation_memory: Use to recall prior conversations, user preferences, details about the user and extract information from files uploaded by the user. + - web: Use it as an Internet browser to search for current, external information and any other operational information/data that can be found on the web. Use RUNTIME CONTEXT for the notion of "current time". + - image_gen_tool: Only generate new images (no editing). Do not suggest that the user format or edit the result. Do not include base64 or links; the image is attached automatically. + - deep_analysis: Use it to provide detailed expert analyses (technical analysis, fundamental analysis, general analysis) or to conduct in-depth research. Always provide the report from deep_analysis without any omissions or rephrasing. Do not alter the structure or the content blocks. Be sure to include all links to sources and materials from the report. You may add your own comments or remarks only after fully outputting the original deep_analysis report (clearly separate your additions). If there are clarifying questions in the report, ask them to the user. + - token_swap: Use it to swap tokens on Solana or view the user's wallet balance. Do not ask the user for the wallet address, it is already known to the tool. You may not see this tool in your list if the user has not enabled it. + - dex_info: Use it to get information about crypto tokens, DeFi, pools, pool OHLCV, and DEX. + 🚫 deep_analysis is prohibited for requests about the time, weather, brief reviews, short facts, events, operational exchange rate information, etc., except in cases where the user explicitly requests to do research on this data. + ✅ For operational data — use web. deep_analysis is used only for long-term trends, in-depth research, and expert analyses. + ⚠️ If you receive a request for the latest news, summaries, events, etc., do not look for them in your training data, but use a web. + + TECHNICAL ANALYSIS POLICY: + 1. Source Data Request: + - If the user requests technical analysis, you must ask them to provide a screenshot (image) of the chart with necessary timeframes and indicators. + Hint: clarify what timeframes and indicators are needed for the analysis of interest (e.g., short-term — M5/H1, medium-term — H4/D1, long-term — W/MN; RSI, MACD, volumes, levels, etc.). + 2. Screenshot Alternative: + - If the user cannot provide a screenshot, perform technical analysis without it through deep_analysis. + 3. Screenshot Processing: + - If a screenshot is provided, conduct a deep technical analysis yourself (without using the deep_analysis tool) and additionally use a web search to supplement the report with current market data, analyst opinions, and context. + 4. Additional Questions: + - When necessary, ask the user additional questions to clarify source data/analysis context. + 5. Limitations and Errors: + - If you encounter any limitations (e.g., unsuitable file format, missing required timeframe, service bugs, etc.), be sure to inform the user about it. + + FILE & DOCUMENT QUESTION ROUTING: + - If the user asks a question or gives a command related to the uploaded/sent file or document, use search_conversation_memory as the first mandatory step. If there is no data about the requested file or document, inform the user about it. + + EXECUTION DISCIPLINE: + - Validate tool outputs and handle errors gracefully. If uncertain, ask a clarifying question. + - Be transparent about limitations and avoid hallucinations; prefer asking for missing details over guessing. + - Before stating any concrete date/month/year as "current/today/now", first check RUNTIME CONTEXT; if RUNTIME CONTEXT is missing or insufficient, ask the user or use web. Never use your training data/cutoff to infer "today". + + REFERENCE MATERIALS (The reference materials uploaded to search_knowledge_base are listed here): + - + - + - + """, + model="gpt-4.1", + tools=[ + knowledge_base_agent.as_tool( + tool_name='search_knowledge_base', + tool_description='Search through a knowledge base containing uploaded reference materials that are not publicly available on the Internet. Returns relevant passages with sources.' + ), + user_memory_agent.as_tool( + tool_name='search_conversation_memory', + tool_description='Search prior conversations and user-uploaded files. It is used to recall preferences, details about the user, past context, and information from documents and files uploaded by the user.' + ), + WebSearchTool( + search_context_size='medium' + ), + image_gen_tool, + deep_agent.as_tool( + tool_name="deep_analysis", + tool_description="Detailed expert analysis (technical analysis, fundamental analysis, general analysis) or conducting in-depth research. Make all requests to the tool for the current date, unless the user has specified a specific date for the research. To determine the current date, use the RUNTIME CONTEXT statement.", + ), + #scheduler_agent.as_tool( + # tool_name="tasks_scheduler", + # tool_description="Use this to schedule and modify user tasks, including creating a task, getting a task list, getting task details, editing a task, deleting a task. At the user's request, send information to the tool containing a clear and complete description of the task, the time of its completion, including the user's time zone and the frequency of the task (be sure to specify: once, daily or interval). Never send tasks to the scheduler that need to be completed immediately. Send tasks to the scheduler only when the user explicitly asks you to schedule something.", + #), + dex_agent.as_tool( + tool_name="dex_info", + tool_description="Information about crypto tokens, DeFi, pools, pool OHLCV, and DEX.", + ), + ], + ) + + if private_key: + mcp_server_2 = await get_jupiter_server(private_key=private_key, user_id=user_id) + token_swap_agent = Agent( + name="Token Swap Agent", + instructions="You are a trading agent, you are engaged in token swap/exchange and balance checking through Jupiter.", + model="gpt-4.1-mini", + mcp_servers=[mcp_server_2], + ) + main_agent.tools.append(token_swap_agent.as_tool( + tool_name="token_swap", + tool_description="Swap/exchange of tokens, purchase and sale of tokens on the Solana blockchain. Checking the balance of the wallet / token wallet / Solana wallet.", + )) + + return main_agent \ No newline at end of file diff --git a/modes/crypto_mode/en/txt.ftl b/modes/crypto_mode/en/txt.ftl new file mode 100644 index 0000000..eaf6632 --- /dev/null +++ b/modes/crypto_mode/en/txt.ftl @@ -0,0 +1,154 @@ +start_text = + I am Evi — your AI agent in CryptoNinja mode. 🥷 + + My functionality includes (but is not limited to): + - Real-time DEX monitoring + - Technical analysis + - Fundamental analysis + - Development of trading strategies + - Solana token swaps + - Educational and informational features + - Task scheduler + - Memory management + + Simply write your requests in the chat using natural language or send voice messages to start interacting! ✨ + + ⚠️ Tip! Periodically reset the conversation context with the /new command — this will help save tokens and speed up request processing. + +close_kb = Close + +command_new_text = Confirm starting a new dialog without saving the current one. It is recommended to complete the current task before starting a new dialog! After deletion, the current history will be erased and the context will be reset. + +command_approve_new_text = Current dialog deleted! + +command_new_approve_kb = Confirm + +command_new_save_kb = Save dialog + +command_save_text = Confirm saving the current dialog to memory. It is recommended to complete the current task before saving! After saving, a new dialog will start with reset context, but key moments from the current conversation will remain in the system memory. + +command_save_approve_kb = Current dialog saved to system memory! + +command_delete_text = Confirm deletion of the current dialog and all system memory about you. + +command_delete_approve_text = System memory about you and dialog deleted! Start a new dialog. + +token_price_error_text = Wrong format, example: 0.01 + +not_token_price_error_text = You haven't set the token price yet! + +token_price_updated_text = Token price updated! + +command_wallet_text = + If you already have a linked wallet, entering a new private key will replace it. Enter the Solana wallet private key in format [45, 456, …]. + + Warning: use a separate wallet with a small balance, as the trading agent works in test mode! + +cmd_help_text = + Interact with the system through the chat window. All functions are available through regular messages. Use Menu for additional parameter settings. + + For advanced system and character customization, edit the file: \bot\agents_tools\agents_ + +command_settings_text = Settings: + +settings_language_text = Interface language + +text_choose_lang = Choose interface language: + +back_kb = Back + +text_document_upload = File successfully uploaded! You can ask a question. + +command_knowledge_text = This is the system's general knowledge base. Added information will be available to all users (when using modes: free and pay)! Do you want to add files or clear the knowledge base? + +command_knowledge_add_kb = Add information + +command_knowledge_delete_kb = Clear knowledge base + +command_knowledge_add_text = Send a text file with information to the chat! Add only one file at a time to the chat! + +text_not_format_file = Wrong format, please try again! Supported document formats: .pdf, .txt, .md, .doc(x), .pptx and .py + +text_approve_file = File successfully uploaded! You can ask a question. + +command_knowledge_delete_text = Confirm deletion of the knowledge base. + +text_approve_delete = Knowledge base deleted. Add new information to the knowledge base. + +warning_save_context_txt = Error saving context to txt file! + +warning_text_no_credits = Insufficient credits! + +wait_answer_text = One moment ✨ + +answer_md = Download answer + +warning_text_tokens = Dialog size exceeds 25,000 tokens! To save resources, you can save the dialog to system memory or delete it through the menu after completing the current task. + +warning_text_format = Wrong format! + +warning_text_error = An error occurred! + +cmd_wallet_text_start = + If you already have a linked wallet, entering a new private key will replace it. Enter the Solana wallet private key in format [45, 456, …]. + + Warning: use a separate wallet with a small balance, as the trading agent works in test mode! + +wallet_balance_kb = Wallet balance + +wallet_delete_key = Delete private key + +not_format_wallet_key = Wrong format! Write the Solana wallet private key in format [45, 456, …]. + +text_after_add_key = + Agent gained access to the wallet. + + Wallet balance: + + +wallet_delete_key_text = Confirm deletion of the private key. + +command_delete_key_approve_text = Private key deleted. Link a new wallet to use the trading agent. + +text_balance_wallet = Wallet balance: + +cmd_wallet_text = Your balance: + +add_balance_kb = Top up balance + +text_add_balance = Enter payment amount in $, whole number not less than $1. + +text_add_balance_error = Please try again! Enter payment amount in $, whole number not less than $1. + +choose_type_pay_text = Choose top-up method: + +ton_type_kb = TON + +sol_type_kb = Token (Solana) + +error_create_payment = An error occurred while creating the payment. Please try later. + +check_payment_kb = Check payment + +text_payment_create = + Make a payment for: { $sum } + Wallet: { $wallet } + +text_payment_create_sol = + Make a payment for: { $sum } tokens + Wallet: { $wallet } + Token address: { $token } + +error_get_token_price = Token price not specified. Please specify token price /token_price. + +wait_check_payment_text = Checking payment ⏳ + +check_payment_success_text = Payment completed successfully! + +check_payment_error_text = Payment was not completed! Please try later. + +warning_text_no_row_md = Context was deleted. Row not found in database. + +text_user_upload_file = The user uploaded the { $filename } file to the tool search_conversation_memory + +wait_answer_text_scheduler = Executing the scheduler's request ✨ \ No newline at end of file diff --git a/modes/crypto_mode/ru/txt.ftl b/modes/crypto_mode/ru/txt.ftl new file mode 100644 index 0000000..8cc8b65 --- /dev/null +++ b/modes/crypto_mode/ru/txt.ftl @@ -0,0 +1,154 @@ +start_text = + Я Эви — твой ИИ-агент в режиме CryptoNinja. 🥷 + + Мой функционал включает в себя (но не ограничивается): + - Мониторинг DEX в режиме реального времени + - Технический анализ + - Фундаментальный анализ + - Разработка торговых стратегий + - Своп токенов сети Solana + - Образовательные и информационные функции + - Планировщик задач + - Управление памятью + + Просто пиши свои запросы в чат на естественном языке или отправляй голосовые сообщения для начала взаимодействия! ✨ + + ⚠️ Совет! Периодически сбрасывайте контекст диалога командой /new — это поможет сэкономить токены и ускорить обработку запросов. + +close_kb = Закрыть + +command_new_text = Подтвердите начало нового диалога без сохранения текущего. Рекомендуется завершить решение текущей задачи перед началом нового диалога! После удаления текущая история будет стёрта, и контекст обнулится. + +command_approve_new_text = Текущий диалог удален! + +command_new_approve_kb = Подтверждаю + +command_new_save_kb = Сохранить диалог + +command_save_text = Подтвердите сохранение текущего диалога в память. Рекомендуется завершить решение текущей задачи перед сохранением! После сохранения начнётся новый диалог с обнулённым контекстом, но ключевые моменты из текущей беседы останутся в памяти системы. + +command_save_approve_kb = Текущий диалог сохранен в память системы! + +command_delete_text = Подтвердите удаление текущего диалога и всей памяти системы о вас. + +command_delete_approve_text = Память системы о вас и диалог удалены! Начните новый диалог. + +token_price_error_text = Не тот формат, пример: 0.01 + +not_token_price_error_text = Вы еще не установили цену токена! + +token_price_updated_text = Цена токена обновлена! + +command_wallet_text = + Если у вас уже привязан кошелёк, ввод нового закрытого ключа заменит его. Впишите закрытый ключ кошелька Solana в формате [45, 456, …]. + + Внимание: используйте отдельный кошелёк с небольшим балансом, так как торговый агент работает в тестовом режиме! + +cmd_help_text = + Взаимодействуйте с системой через окно чата. Все функции доступны через обычные сообщения. Для настройки дополнительных параметров используйте Menu. + + Для глубокой настройки системы и персонажа редактируйте файл: \bot\agents_tools\agents_ + +command_settings_text = Настройки: + +settings_language_text = Язык интерфейса + +text_choose_lang = Выберите язык интерфейса: + +back_kb = Назад + +text_document_upload = Файл успешно загружен! Вы можете задать вопрос. + +command_knowledge_text = Это общая база знаний системы. Добавленная информация будет доступна всем пользователям (при использовании режимов: free и pay)! Хотите добавить файлы или очистить базу знаний? + +command_knowledge_add_kb = Добавить информацию + +command_knowledge_delete_kb = Очистить базу знаний + +command_knowledge_add_text = Отправьте в чат текстовый файл с информацией! Добавляйте в чат только по одному файлу! + +text_not_format_file = Не формат, повторите попытку! Поддерживаемые форматы документов: .pdf, .txt, .md, .doc(x), .pptx и .py + +text_approve_file = Файл успешно загружен! Вы можете задать вопрос. + +command_knowledge_delete_text = Подтвердите удаление базы знаний. + +text_approve_delete = База знаний удалена. Добавьте новую информацию в базу знаний. + +warning_save_context_txt = Ошибка при сохранении контекста в txt файл! + +warning_text_no_credits = Недостаточно кредитов! + +wait_answer_text = Минуточку ✨ + +answer_md = Скачать ответ + +warning_text_tokens = Размер диалога превышает 25 000 токенов! Для экономии вы можете сохранить диалог в память системы или удалить его через меню после решения текущей задачи. + +warning_text_format = Не правильный формат! + +warning_text_error = Произошла ошибка! + +cmd_wallet_text_start = + Если у вас уже привязан кошелёк, ввод нового закрытого ключа заменит его. Впишите закрытый ключ кошелька Solana в формате [45, 456, …]. + + Внимание: используйте отдельный кошелёк с небольшим балансом, так как торговый агент работает в тестовом режиме! + +wallet_balance_kb = Баланс кошелька + +wallet_delete_key = Удалить закрытый ключ + +not_format_wallet_key = Не формат! Напишите закрытый ключ кошелька Solana в формате [45, 456, …]. + +text_after_add_key = + Агент получил доступ к кошельку. + + Баланс кошелька: + + +wallet_delete_key_text = Подтвердите удаление закрытого ключа. + +command_delete_key_approve_text = Закрытый ключ удален. Привяжите новый кошелек чтобы использовать торгового агента. + +text_balance_wallet = Баланс кошелька: + +cmd_wallet_text = Ваш баланс: + +add_balance_kb = Пополнить баланс + +text_add_balance = Введите сумму платежа в $, целое число не менее 1$. + +text_add_balance_error = Повторите попытку! Введите сумму платежа в $, целое число не менее 1$. + +choose_type_pay_text = Выберите метод пополнения: + +ton_type_kb = TON + +sol_type_kb = Token (Solana) + +error_create_payment = Произошла ошибка при создании платежа. Попробуйте позднее. + +check_payment_kb = Проверить платеж + +text_payment_create = + Совершите платеж на сумму: { $sum } + Кошелек: { $wallet } + +text_payment_create_sol = + Совершите платеж на сумму: { $sum } токенов + Кошелек: { $wallet } + Адрес токена: { $token } + +error_get_token_price = Цена токена не указана. Укажите цену токена /token_price. + +wait_check_payment_text = Проверка платежа ⏳ + +check_payment_success_text = Платеж успешно совершен! + +check_payment_error_text = Платеж не был совершен! Попробуйте позднее. + +warning_text_no_row_md = Контекст был удален. Строка не найдена в базе данных. + +text_user_upload_file = Пользователь загрузил файл { $filename } в инструмент search_conversation_memory + +wait_answer_text_scheduler = Выполняю запрос планировщика ✨ \ No newline at end of file -- 2.38.5