diff --git a/solutions/unknown/solution.py b/solutions/unknown/solution.py index 754c744..74bb834 100644 --- a/solutions/unknown/solution.py +++ b/solutions/unknown/solution.py @@ -1,75 +1,18 @@ -from langchain_openai import ChatOpenAI -from pydantic import SecretStr -import argparse -import sys - -def parse_args() -> argparse.Namespace: - """ - Parse command line arguments. - - Returns: - Namespace: Parsed arguments containing the task text. - """ - parser = argparse.ArgumentParser( - description="Run an LLM-based task orchestrator." - ) - parser.add_argument( - "--task-text", - required=True, - help="Text of the task to be processed by the LLM.", - ) - return parser.parse_args() - -def validate_task_text(text: str) -> None: - """ - Validate that the provided task text is non-empty. - - Raises: - ValueError: If the text is empty or consists only of whitespace. - """ - if not text.strip(): - raise ValueError("Task text must be a non-empty string.") - -def init_llm() -> ChatOpenAI: - """ - Initialize the LLM client with placeholder configuration. - - Returns: - ChatOpenAI: Configured LLM instance. - """ - return ChatOpenAI( - model="openai/gpt-oss-20b", - base_url='https://platform.brojs.ru/jrnl-bh/api/inference/v1', - api_key=SecretStr("jrnl_30283ab953615cbb6846ff9940a1eedce0b76d7b2f59a2394f29e74643e6a90d"), - temperature=0.7, - ) - -def main() -> None: - """ - Main entry point of the orchestrator. - Parses arguments, validates input, initializes LLM, and prints the response. - """ - args = parse_args() +def main(): + if len(sys.argv) < 2: + print("Usage: python script.py --task-text 'текст задания'") + return + # Find the flag and its value try: - validate_task_text(args.task_text) - except ValueError as exc: - print(f"Error: {exc}", file=sys.stderr) - sys.exit(1) + idx = sys.argv.index("--task-text") + task_text = sys.argv[idx + 1] + except (ValueError, IndexError): + print("Error: '--task-text' flag not found or missing value.") + return - llm = init_llm() - # Invoke the LLM with the task text - response = llm.invoke( - {"messages": [{"role": "human", "content": args.task_text}]} - ) - # The result contains a list of messages; we print the content of the first AI message. - ai_message = next( - (msg for msg in response["messages"] if getattr(msg, "type", None) == "ai"), - None, - ) - if ai_message: - print(ai_message.content) - else: - print("No AI response received.", file=sys.stderr) + # Here you would normally process the task text with your orchestrator logic. + # For demonstration, we simply echo it back. + print(f"Received task text: {task_text}") if __name__ == "__main__": main() \ No newline at end of file