Spaces:
Runtime error
Runtime error
| from tech_wizard.tech_kb import TechKnowledgeBase | |
| from tech_wizard.openai_module import OpenAIClient | |
| import os | |
| import json | |
| class TechWizardTools: | |
| def __init__(self, openai_api_key=None): | |
| self.kb = TechKnowledgeBase() | |
| self.llm = OpenAIClient(api_key=openai_api_key or os.getenv("OPENAI_API_KEY")) | |
| def architect_system(self, requirements: str) -> str: | |
| """Design a technical system architecture.""" | |
| kb_context = self.kb.get_info("architecture") | |
| prompt = f""" | |
| Requirements: {requirements} | |
| Architecture Patterns Knowledge: {json.dumps(kb_context, indent=2)} | |
| Please design a technical architecture. Include: | |
| 1. Recommended Pattern (e.g., Microservices vs Monolith). | |
| 2. Technology Stack (Frontend, Backend, DB, Cache). | |
| 3. A Mermaid.js diagram representing the system. | |
| 4. Scalability and Security considerations. | |
| """ | |
| return self.llm.chat(prompt) | |
| def design_api(self, features: str) -> str: | |
| """Design a secure and versioned API surface.""" | |
| kb_context = self.kb.get_info("api") | |
| prompt = f""" | |
| Feature Requirements: {features} | |
| API Best Practices: {json.dumps(kb_context, indent=2)} | |
| Design a REST or GraphQL API surface. Include: | |
| 1. Endpoint paths and methods. | |
| 2. Request/Response schemas (JSON). | |
| 3. Authentication/Authorization strategy. | |
| 4. Error handling logic. | |
| """ | |
| return self.llm.chat(prompt) | |
| def setup_webhooks(self, source_platform: str) -> str: | |
| """Generate secure webhook handler logic.""" | |
| kb_context = self.kb.get_info("webhooks") | |
| prompt = f""" | |
| Source Platform (e.g., Stripe, GitHub, Shopify): {source_platform} | |
| Webhook Knowledge: {json.dumps(kb_context, indent=2)} | |
| Generate a secure webhook handler (Python/FastAPI or Node.js). | |
| Must include signature verification, idempotency, and asynchronous processing. | |
| """ | |
| return self.llm.chat(prompt) | |
| def configure_routing(self, domain: str, app_details: str) -> str: | |
| """Design DNS and routing configuration.""" | |
| kb_context = self.kb.get_info("domains") | |
| prompt = f""" | |
| Domain: {domain} | |
| App/Infrastructure Details: {app_details} | |
| Routing Knowledge: {json.dumps(kb_context, indent=2)} | |
| Provide a DNS configuration plan (A, CNAME, TXT records) and SSL/TLS strategy. | |
| """ | |
| return self.llm.chat(prompt) | |