add main.py

This commit is contained in:
2026-05-27 14:04:34 +00:00
parent 831348a539
commit aee33d81db
+57 -15
View File
@@ -1,25 +1,67 @@
import os import os
import json import json
from dotenv import load_dotenv
from models import TaskCard
from parser import TaskParser from parser import TaskParser
# Example raw texts load_dotenv()
RAW_TEXTS = [
"Напишите мини-отчёт по LangChain до пятницы, 3-5 страниц, критерии: полнота и примеры кода", # Example raw task descriptions
"Сделать агента на LangGraph который умеет искать в интернете, сдать ссылку на github", EXAMPLES = [
"Реализовать REST API на FastAPI с авторизацией JWT, покрыть тестами, дедлайн 1 июня", "Write a mini-report on LangChain for Friday, 3-5 pages, include code examples",
"Build a LangGraph agent with memory and interrupts, push code to github by Monday",
"Implement a REST API with FastAPI and JWT auth, add unit tests, deadline in 1 week",
"Create a RAG pipeline using Qdrant vector store and OpenAI embeddings",
"Build a chat bot with multi-turn memory using LangChain ConversationBufferMemory",
] ]
def main() -> None: def demo_single(parser: TaskParser, text: str, idx: int) -> TaskCard:
parser = TaskParser() """Parse one example and print result."""
cards = parser.batch_parse(RAW_TEXTS) print(f"\n=== Example {idx} ===")
for idx, card in enumerate(cards, start=1): print(f"Raw: {text[:80]}")
print(f"\n=== Task {idx} ===") card = parser.parse(text)
print(card.to_markdown()) print(card.to_markdown())
filename = f"task_{idx}.json" return card
parser.save_to_file(card, filename)
print(f"Saved to {filename}") def demo_batch(parser: TaskParser, texts: list) -> list:
"""Parse a batch of texts and save as JSON."""
print("\n=== Batch parse ===")
cards = parser.batch_parse(texts)
for i, card in enumerate(cards):
fname = f"card_{i+1}.json"
with open(fname, "w", encoding="utf-8") as f:
json.dump(card.model_dump(), f, ensure_ascii=False, indent=2)
print(f" Saved {fname}: {card.title}")
return cards
def demo_format(card: TaskCard) -> None:
"""Demonstrate different output formats."""
print("\n=== Formats ===")
print("Markdown:")
print(card.to_markdown())
print("\nJSON:")
print(json.dumps(card.model_dump(), ensure_ascii=False, indent=2))
def main() -> None:
"""Run all demos."""
parser = TaskParser()
# Demo 1: single parse
card1 = demo_single(parser, EXAMPLES[0], 1)
# Demo 2: another single parse
demo_single(parser, EXAMPLES[1], 2)
# Demo 3: third single parse
demo_single(parser, EXAMPLES[2], 3)
# Demo 4: batch parse all examples
demo_batch(parser, EXAMPLES)
# Demo 5: show formats
demo_format(card1)
print("\nDone!")
if __name__ == "__main__": if __name__ == "__main__":
main() main()
# End of main.py