学完了python基础写一个脚本调用通义千问大模型API实现一个简单的聊天功能。一、准备工作1、执行以下命令安装请求库pip install requests2、去通义千问开放平台申请API Key注册阿里云账号并完成实名认证https://dashscope.console.aliyun.com/注册完后打开 DashScope 控制台创建API Key以sk-开头注意立刻保存好API Key关闭之后再也看不到完整密钥https://dashscope.console.aliyun.com/overview二、最简单的python聊天脚本import requests # 你的 API Key替换成你自己的 API_KEY sk-xxxxxxxxxxxxxxxxxxxxxxxx # 通义千问 API 地址 URL https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation # 请求头 HEADERS { Authorization: fBearer {API_KEY}, # Authorization作用身份验证告诉大模型服务器 “我是谁”Bearer 是固定格式后面必须跟你的 API Key Content-Type: application/json # 作用告诉服务器 “我给你发的数据格式是什么”application/json 表示我发的是 JSON 格式数据几乎所有大模型 API 都只认 JSON所以这个值固定不变 } # 历史对话记录让 AI 记住上下文 history [] print( 简单聊天机器人输入 exit 退出\n) while True: # 1. 用户输入 user_input input(你) # 退出条件 if user_input.lower() exit: print(AI再见) break # 2. 把用户问题加入历史 history.append({role: user, content: user_input}) # 3. 构造请求数据 data { # input、parameters → 通义千问专属其他模型豆包、Kimi、DeepSeek格式略有不同但逻辑一样 model: qwen-turbo, # model模型名称所有大模型都有 input: { messages: history # messages放对话历史所有大模型都有 }, parameters: { result_format: message # 通义千问专属参数让 AI 返回标准聊天格式message 格式 适合聊天机器人方便我们解析回答。不加返回原始文本格式不方便做上下文对话。 } } try: # 4. 发送请求 response requests.post(URL, jsondata, headersHEADERS) # response.raise_for_status() 报错会抛出异常比如 API Key 错了、网络挂了、额度用完 # 401未授权API Key错 # 403权限不足 # 429请求超限 # 500服务器错误 response.raise_for_status() # 5. 解析 AI 回答 result response.json() ai_reply result[output][choices][0][message][content] # 从 API 返回的 JSON 里把 AI 的回答文字取出来 print(fAI{ai_reply}\n) # 6. 把 AI 回答也加入历史实现上下文记忆 history.append({role: assistant, content: ai_reply}) except Exception as e: print(f出错啦{e}\n)三、运行效果你你好呀千问 AI你好不过看起来你可能打错了我是通义千问不是千问。不过如果你是想和我交流那我非常高兴有什么问题或者需要帮助的地方吗 你千问和通义千问不一样吗 AI你好其实“千问”和“通义千问”指的是同一个模型。不过为了更准确地表达我的身份我通常会使用完整的名称“通义千问”。如果你有任何问题或需要帮助我都很乐意为你提供支持 你exit AI再见四、如果想换成其他大模型所有大模型调用逻辑几乎一样所以只需要改以下3个地方1、URLAPI地址2、API_KEY你的密钥3、model名称例如豆包字节URL https://ark.cn-beijing.volces.com/api/v3/chat/completions API_KEY xxx model doubao-lite-4kDeepSeek深度求索URL https://api.deepseek.com/chat/completions API_KEY xxx model deepseek-chatKimi月之暗面URL https://api.moonshot.cn/v1/chat/completions API_KEY xxx model moonshot-v1-8k五、这个脚本用到的python基础知识点1、input() 获取用户输入的内容2、while True 循环聊天3、list 列表存储历史会话4、dict 字典构造请求数据5、requests 发送网络请求6、try except 异常捕获处理错误六、踩的坑这个用python写的调用大模型接口的聊天功能在测试过程中发现提问“今天是几月几号”回答的答案并不准确查了一下需要开启模型的联网搜索功能也就是在调接口传参时加上enable_search: True。当 enable_search 设为 False默认值时qwen-turbo 仅基于自身的预训练知识库生成回答无法获取训练截止时间之后的信息也不能查询实时数据比如当日天气、最新新闻、股票行情等。结果坑就来了半夜十二点多收到了阿里云的欠费短信才知道联网搜索功能是要收费的啊。。。含泪交了一分钱好像是按次收费0.003元/次/(ㄒoㄒ)/~~型号没有甩起来用~ 所以小伙伴们且用且珍惜啊自己学习的话还是用免费额度性价比高一点~(*^_^*)