前言
最近开始学习AI相关的东西,程序员嘛接触一门新的技术时总是会输出一个“Hello world”的入门项目。我的AI学习历程也不例外。
AI大语言模型如火如荼,便是借了ChatGPT的大风。之后国内更是出现了DeepSeek、豆包、元宝、千问等Chat型的AI大模型应用。
于是,作为AI入门的第一个程序,就简单写个控制台调用大模型接口输出答案的简易代码。不求通达于大模型原理,只是暂且入个门。也算简单了解各种AI应用是怎么基于现有大模型进行功能开发的。
废话少说上代码
工欲善其事
-
选择使用的大模型,可以是千问,也可以直接接入DeepSeek大模型。这里以通义千问(内含DeepSeek)为🌰。
-
在 阿里百炼 注册并申请API_KEY
4.参考 接入文档 本地配置 API_KEY,并copy相关代码到自己的工程内。
Code
import os
# 如果这里报错,需要手动在控制台安装 openai SDK:pip install openai
from openai import OpenAI
# 1. 准备工作:初始化客户端
client = OpenAI(
# 建议通过环境变量配置API Key,避免硬编码。
api_key=os.environ["DASHSCOPE_API_KEY"],
# API Key与地域强绑定,请确保base_url与API Key的地域一致。
# AI大模型发生改变时,切记也一定要相应修改这里。比如阿里千问切到deepseek,需要切到deepseek域名
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# 2. 发起流式请求
completion = client.chat.completions.create(
# 模型名字,不可乱填!!!可参考各模型官网
# model="qwen-plus", # 阿里千问
model="deepseek-v3.2", # deepseek
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "iOS开发转型AI大模型应用开发该怎么学习?"}
],
# 通过 extra_body 设置 enable_thinking 开启思考模式
# extra_body={"enable_thinking": True},
stream=True,
stream_options={"include_usage": True}
)
# 3. 处理流式响应
# 用列表暂存响应片段,最后 join 比逐次 += 字符串更高效
content_parts = []
print("AI: ", end="", flush=True)
for chunk in completion:
if chunk.choices:
content = chunk.choices[0].delta.content or ""
print(content, end="", flush=True)
content_parts.append(content)
elif chunk.usage:
print("\n--- 请求用量 ---")
print(f"输入 Tokens: {chunk.usage.prompt_tokens}")
print(f"输出 Tokens: {chunk.usage.completion_tokens}")
print(f"总计 Tokens: {chunk.usage.total_tokens}")
full_response = "".join(content_parts)
print(f"\n--- 完整回复 ---\n{full_response}")
我的理解
其实对于程序员很好理解,就是一个简单的API调用。和移动端的接口请求差不多。
- 使用API Key 创建本地客户端
- 使用客户端,结合提示词发起AI请求
- 客户端解析AI返回数据,呈现给用户。
意外发现
-
python的 openai sdk定义了openAI接入的标准接口。市面上几乎所有大模型都对此做了兼容,比如阿里千问和DeepSeek(豆包也应该ok)。如此的好处是:
- 切换不同的模型不需要修改太多代码,只需要修改几个关键处即可
- 对于开发者可以说省不少事
-
阿里千问除了有兼容openai接口,也同样定义了自己独有的sdk接口:DashScope
-
阿里云自研的API架构,采用面向MaaS(模型即服务)的深度设计。例如,其多模态接口直接区分文本生成(
/text-generation/generation)和 multimodal 生成(/multimodal-generation/generation),而非强制统一到ChatCompletion格式 -
DashScope原生接口对通义系列模型(如千问VL、Qwen-Long)有深度优化,例如Qwen-Long支持1000万tokens超长上下文,且通过文件方式提交时可突破HTTP请求限制。OpenAI兼容模式对此类特性支持较弱。
-
流式输出控制:OpenAI兼容模式通过
stream布尔参数控制,而DashScope原生模式提供streamCall方法及incremental_output等细粒度参数
-
至此, helloAI程序就写完了。恭喜你已经迈进AI大模型开发大门一小步喽。
AI思维要求企业从万物互联角度重构战略,“算法、算力、数据”是互联网成长的核心动力。人口红利消失后,AI技术创新将成为新的增长引擎。
--------------------------------------------------- Robin