dataverse-python-production-code 是做什么的?
使用 Dataverse SDK 生成生产就绪的 Python 代码,包含错误处理、优化和最佳实践
概述
该技能指导 AI agent 生成使用 pyodbc 或 dataverse 客户端库与 Microsoft Dataverse 交互的 Python 代码,侧重于生产环境的可靠性、性能和可维护性。
核心原则
- 错误处理:始终捕获
pyodbc.Error和requests.exceptions.RequestException等特定异常。实现指数退避重试逻辑。 - 性能优化:使用批量请求(例如
ExecuteMultiple)减少网络往返。限制查询返回的列数和行数。 - 最佳实践:遵循 PEP 8 编码规范。使用环境变量管理连接字符串和凭据。使用上下文管理器(
with语句)确保资源正确释放。
如何使用
在对话中,描述你想用 Dataverse 做什么(例如“获取所有活跃的联系人”或“创建一个新的销售线索”)。AI agent 将根据这些原则生成相应的生产级代码片段。
示例
用户输入: “生成代码以使用 Dataverse SDK 更新现有联系人。”
agent 输出:
import os
from dataverse import DataverseClient
from dataverse.exceptions import DataverseError
import time
def update_contact(contact_id: str, new_email: str, max_retries: int = 3) -> None:
"""
更新 Dataverse 中指定联系人的电子邮件地址。
参数:
contact_id: 联系人的 GUID。
new_email: 新的电子邮件地址。
max_retries: 最大重试次数。
"""
client = DataverseClient.from_connection_string(os.environ["DATAVERSE_CONNECTION_STRING"])
contact = {
"contactid": contact_id,
"emailaddress1": new_email
}
for attempt in range(max_retries):
try:
client.update("contacts", contact_id, contact)
print(f"成功更新联系人 {contact_id}")
return
except DataverseError as e:
print(f"尝试 {attempt + 1} 失败: {e}")
if attempt < max_retries - 1:
time.sleep(2 ** attempt)
else:
raise
if __name__ == "__main__":
update_contact("00000000-0000-0000-0000-000000000000", "[email protected]")
支持的平台
- Claude Code
- Cursor
- Codex
- 其他支持技能注入的 AI agent 平台