你定义的 AI 编码规则是什么?全网寻找通义灵码 Rules {头号玩家}!
1、打开设置,启用All Rules。
2、我的Rules规则截图如下:
3、生成了一段符合Rule规则的Python代码
from fastapi import FastAPI, HTTPException, Depends, status
from pydantic import BaseModel, SecretStr, EmailStr
from typing import Optional
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, Session
from passlib.context import CryptContext
# 数据库配置
DATABASE_URL = 'postgresql://user:password@localhost/dbname'
engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
# 密码哈希工具
pwd_context = CryptContext(schemes=['bcrypt'], deprecated='auto')
# 用户模型
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True, index=True)
email = Column(String, unique=True, index=True, nullable=False)
hashed_password = Column(String, nullable=False)
# 创建数据库表
Base.metadata.create_all(bind=engine)
# Pydantic模型
class UserCreate(BaseModel):
email: EmailStr
password: SecretStr
class UserLogin(BaseModel):
email: EmailStr
password: SecretStr
class UserResponse(BaseModel):
id: int
email: str
# FastAPI应用
app = FastAPI()
# 依赖项:获取数据库会话
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
# 工具函数:哈希密码
def hash_password(password: str) -> str:
return pwd_context.hash(password)
# 工具函数:验证密码
def verify_password(plain_password: str, hashed_password: str) -> bool:
return pwd_context.verify(plain_password, hashed_password)
# 用户注册API
@app.post('/register/', response_model=UserResponse, status_code=status.HTTP_201_CREATED)
def register_user(user: UserCreate, db: Session = Depends(get_db)):
# 检查用户是否已存在
db_user = db.query(User).filter(User.email == user.email).first()
if db_user:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail='Email already registered'
)
# 创建新用户
hashed_password = hash_password(user.password.get_secret_value())
new_user = User(email=user.email, hashed_password=hashed_password)
db.add(new_user)
db.commit()
db.refresh(new_user)
return new_user
# 用户登录API
@app.post('/login/')
def login_user(user: UserLogin, db: Session = Depends(get_db)):
# 查找用户
db_user = db.query(User).filter(User.email == user.email).first()
if not db_user:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail='Incorrect email or password'
)
# 验证密码
if not verify_password(user.password.get_secret_value(), db_user.hashed_password):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail='Incorrect email or password'
)
return {'message': 'Login successful'}
# 启动应用
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, host='0.0.0.0', port=8000)
4、生成的代码符合我定义的Rule。
5、通义灵码的Rule有如下的优势:
1)提高效率:通过定义明确的项目规则,团队成员可以更快地理解项目要求和期望,减少误解和重复工作。
2)一致性:确保所有项目遵循相同的标准和流程,这有助于保持项目的连贯性和质量的一致性。
3)易于管理:良好的项目规则使得项目更易于跟踪和管理,帮助项目经理更好地分配资源、设定里程碑以及监控进度。
4)规范行为准则:建立团队内部的行为标准,包括代码风格、文档编写等,促进团队内部的和谐与效率。
赞49
踩0