Implementing AI Assistants with Python
Guidelines for developing AI-powered virtual assistants using Python, focusing on natural language processing and user interaction.
0 likes
194 views
Rule Content
---
description: Guidelines for developing AI-powered virtual assistants using Python, focusing on natural language processing and user interaction.
globs: ["**/*.py"]
tags: [python, ai, virtual-assistant, nlp, user-interaction]
priority: 1
version: 1.0.0
---
# Implementing AI Assistants with Python
## Context
- Applicable when developing AI-powered virtual assistants in Python.
- Focuses on natural language processing (NLP) and user interaction components.
## Requirements
- **Code Structure and Organization**
- Follow a modular and organized file structure.
- Separate templates into reusable components.
- Divide logic into small, reusable modules and use ES6+ syntax.
- Follow PEP 8 standards and divide large scripts into smaller functions/classes.
- **Coding Standards**
- Use Python with strict types for each variable.
- Write down types of function results like `-> ...`.
- Use Pydantic models for data structures instead of TypedDict or other solutions.
- Try to avoid type `Any`.
- Do not use `@staticmethod`.
- Always prefer functional programming over OOP when possible.
- **Style Guidelines**
- Use 4 spaces for indentation.
- Follow PEP 8 naming conventions:
- Module names: all lowercase, separate words with underscores if necessary.
- Variable and function names: lowercase words separated by underscores.
- Class names: CapWords convention.
- **Best Practices**
- Write clear, optimized code that balances efficiency with readability.
- Break functionality into self-contained, reusable components.
- Implement multiple testing levels including unit, integration, and end-to-end tests.
- Implement security best practices.
- Write self-documenting code with clear comments.
- Optimize for performance and resource usage.
- Include robust error handling and logging.
- Support CI/CD practices.
- Design for scalability.
- Follow API design best practices when applicable.
- **Documentation**
- Use JSDoc comments for all functions and components.
- Keep README.md up-to-date with project setup and contribution guidelines.
## Examples
# Good example: Using Pydantic for data validation
from pydantic import BaseModel
class UserInput(BaseModel):
name: str
age: int
email: str
def process_input(user_input: UserInput) -> str:
return f"Processing input for {user_input.name}"
# Bad example: Using untyped dictionaries
def process_input(user_input: dict) -> str:
return f"Processing input for {user_input['name']}"