昨天,我让DeepSeek协助制定了一个分为三阶段的AI大模型实操计划。第一阶段任务为:打基础 —— 做个“AI审查助手”
这个阶段的目标是,
熟悉大模型的API调用
熟悉提示词工程
完成一个可用的GRC场景基础工具。
核心任务是用“自然语言”和“结构化数据”让AI干活。
今天完成第一个任务:大模型的API调用
首先,在本地搭建Python环境:
第一步:安装 PyCharm
PyCharm 是 Python 开发最常用的集成开发环境(IDE),它集成了代码编辑、运行、调试等所有功能。
下载:访问 JetBrains 官网,推荐下载社区版(Community Edition),它是免费的,对初学者来说功能已经完全够用。
安装:双击下载的安装包进行安装。在安装选项这一步,务必勾选“Add ‘bin’ folder to PATH”,这样你就可以在命令行里方便地使用 PyCharm 了。
第二步:安装 Python 解释器
Python 是运行你代码的“引擎”,你的电脑需要先有它。
检查:可以打开你的终端(Terminal)或命令提示符(CMD),输入python --version。如果显示出 Python 3.8 或更高的版本号,说明已安装,可以跳过这一步。
安装:如果没安装或版本太低,可以去 python.org 下载最新的安装包进行安装。
第三步:配置“项目专属”的隔离环境
这是保证项目互不干扰的好习惯。PyCharm 在新建项目时会默认帮你完成,我们只需理解并确认这个步骤。
在 PyCharm 中,点击 New Project 创建一个新项目。
在创建窗口,你会看到 Project venv 这个选项,这代表 PyCharm 会为你的项目创建一个专属的“虚拟环境”。我们保留这个默认选项就行。它就像一个干净、独立的工具箱,不会影响电脑上的其他项目。
修改项目名称为:phase1-ai-reviewer
第四步:安装Python SDK
项目需要用到阿里官方的DashScope SDK或兼容OpenAI的SDK。在PyCharm底部打开Terminal,输入以下命令安装:
pip install dashscope openai从PyPI仓库下载并安装 dashscope 和 openai 这两个Python库到当前Python环境中。
dashscope是阿里云官方提供的Python SDK,专门用于调用百炼平台上的大模型(如通义千问)
OpenAI是OpenAI官方提供的Python SDK,但由于阿里云百炼提供了兼容OpenAI的接口,你也可以用这个库来调用百炼,代码迁移性更好
然后,通过API调用阿里的千问大模型。
第一步:获取API key
阿里云百炼》应用》API KEY,点击“创建API Key”。
注意API Key的泄露可能造成资金损失,需要妥善保管。几点API KEY的最佳安全实践:
1. 代码层:永不“硬编码”
将密钥存储在项目之外的系统环境变量中,代码里只通过 os.getenv("DASHSCOPE_API_KEY") 这样的方式来读取。这也是阿里云官方教程推荐的方式。
2. 权限层:最小化授权
遵循“最小权限原则”,只给这把“钥匙”它需要的最低权限。
3. 机制层:动态化与集中化
对于更正式的项目,可以采用更高级的机制来从根本上提升安全性。
IP白名单:在百炼控制台,为API Key设置只允许你的办公网络或特定服务器的IP地址调用。
凭证集中托管:对于企业级应用,不直接在应用代码里管理任何密钥。可以使用阿里云IDaaS(身份认证服务) 的M2M(机器间认证)能力。客户端不持有静态密钥,而是向IDaaS申请一个有时效性的Token来访问服务,后端服务的API Key被安全地存储在中间层(如AI网关),对应用完全透明,并支持密钥自动轮换。
启用密钥自动轮转:定期更换API Key,这样即使旧Key不慎泄露,攻击者能利用的时间窗口也非常有限。
第二步:设置API key环境变量
将密钥存储在项目之外的系统环境变量中,是保证安全的标准做法,避免把密钥硬编码在代码里。
macOS / Linux: 在终端执行 export DASHSCOPE_API_KEY="你的API-Key"(临时生效),或写入 ~/.zshrc 或 ~/.bash_profile 文件使其永久生效。
Windows (PowerShell): 在终端执行 $env:DASHSCOPE_API_KEY="你的API-Key"。验证命令:
$env:DASHSCOPE_API_KEY最后,通过API调用阿里的千问大模型。
在PyCharm中新建一个Python文件(test_ali_api.py),输入下面的代码。这里提供两种调用方式,实现方式略有不同。
方式一:使用DashScope SDK(更原生)
import osimport dashscope# 如果你的环境变量没设好,可以在这里直接赋值(不推荐):# dashscope.api_key = "你的API-Key"# 注意:这里的base_url可能因为地域而异,请根据你的业务空间调整[citation:2][citation:5]# dashscope.base_http_api_url = 'https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1'messages = [{'role': 'system', 'content': '你是一个严谨的合规审查员。'},{'role': 'user', 'content': '请简单介绍下你自己。'}]response = dashscope.Generation.call(model="qwen-plus", # 也可以尝试 "qwen-max", "qwen-turbo" 等messages=messages,result_format='message', # 以消息格式返回# api_key=os.getenv('DASHSCOPE_API_KEY') # 如果没设环境变量,可以在这里指定)if response.status_code == 200:print(response.output.choices[0].message.content)else:print(f"调用失败,错误码:{response.status_code},信息:{response.message}")
方式二:使用OpenAI兼容接口(便于迁移)
如果你未来可能切换到其他兼容OpenAI的服务,这种方式的代码复用性更强
import osfrom openai import OpenAIclient = OpenAI(api_key=os.getenv("DASHSCOPE_API_KEY"),# 不同地域的base_url不同,这里以北京为例[citation:1][citation:9]# base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")completion = client.chat.completions.create(model="qwen-plus",messages=[{"role": "system", "content": "你是一个严谨的合规审查员。"},{"role": "user", "content": "请简单介绍下你自己。"}])print(completion.choices[0].message.content)
两种方式都可以得到类似下面的执行结果:
您好,我是合规检查员(Compliance Inspector),一个专注于法规遵从性与风险识别的AI助手。我的核心职责是协助用户识别、评估并规避潜在的合规风险,尤其在以下领域提供支持:✅ 法规适配性审查:依据中国现行法律法规(如《网络安全法》《数据安全法》《个人信息保护法》《广告法》《反不正当竞争法》等),对文本内容、业务流程或产品设计进行合规性初筛;✅ 内容安全审核:识别可能违反公序良俗、存在虚假宣传、歧视性表述、医疗/金融类违规承诺等高风险表述;✅ 数据与隐私提示:就个人信息收集、使用、共享、跨境传输等环节,提示必要合规要点(如告知同意、最小必要、单独同意要求等);✅ 证据链与留痕建议:提醒关键操作需留存合规依据(如用户授权记录、审核日志、版本存档等)。
说明大模型调用成功。
今天的任务就完成了。
明天深究今天涉及到的Python代码。
夜雨聆风