实践建议
中文exp-2810未验证
函数设计原则 单一职责:每个函数只做一件事 清晰命名:函数名和参数名要有意义 完整描述:提供详细的函数和参数描述 安全考虑 输入验证:严格验证所有输入参数 权限控制:限制函数的访问权限 日志记录:记录函数调用日志
参数设计
# 好的参数设计 { "type" : "object" , "properties" : { "city" : { "type" : "string" , "description" : "城市名称,支持中英文,如:北京、Beijing" , "examples" : [ "北京" , "上海" , "New York" ] }, "unit" : { "type" : "string" , "enum" : [ "celsius" , "fahrenheit" ], "description" : "温度单位" , "default" : "celsius" } }, "required" : [ "city" ] }
错误处理
def robust_function ( param : str ) -> dict : """健壮的函数实现""" try : # 参数验证 if not param or not isinstance (param, str ): return { "success" : False , "error" : "参数无效" , "error_code" : "INVALID_PARAM" } # 业务逻辑 result = process_data(param) return { "success" : True , "data" : result, "timestamp" : datetime.now().isoformat() } except ValueError as e: return { "success" : False , "error" : f "数据错误: { str (e) } " , "error_code" : "DATA_ERROR" } except Exception as e: return { "success" : False , "error" : f "系统错误: { str (e) } " , "error_code" : "SYSTEM_ERROR" }
输入验证
def secure_function ( user_input : str ) -> dict : """安全的函数实现""" # 输入长度限制 if len (user_input) > 1000 : return { "error" : "输入过长" } # 危险字符过滤 dangerous_chars = [ '<' , '>' , '&' , '"' , "'" ] if any (char in user_input for char in dangerous_chars): return { "error" : "输入包含危险字符" } # SQL 注入防护 sql_keywords = [ 'DROP' , 'DELETE' , 'UPDATE' , 'INSERT' ] if any (keyword in user_input.upper() for keyword in sql_keywords): return { "error" : "输入包含危险关键词" } return { "success" : True , "processed_input" : user_input}
权限控制
def check_permissions ( user_id : str , operation : str ) -> bool : """检查用户权限""" user_permissions = get_user_permissions(user_id) return operation in user_permissions def protected_function ( user_id : str , operation : str , data : dict ) -> dict : """需要权限验证的函数""" if not check_permissions(user_id, operation): return { "success" : False , "error" : "权限不足" , "error_code" : "PERMISSION_DENIED" } # 执行操作 return perform_operation(operation, data)
建议为每个函数提供详细的文档和示例,帮助模型更好地理解函数的用途和使用方法。
函数调用涉及代码执行,请确保实现适当的安全措施,包括输入验证、权限控制和错误处理。
复制后粘贴到 AI 对话框发送,本次对话全程生效
怎么用(对话型)复制后粘贴到对话框发送,本次对话全程生效。想长期用:支持自定义指令的产品(设置→个性化)可设为默认。