构建AI智能体:一、初识AI大模型与API调用

151 阅读6分钟

欢迎大家交流大模型的开发的使用,以下为个人见解,不对之处欢迎指正

一、了解大模型

       在人工智能领域,相比早期的NLP,近期大模型如雨后春笋般不断涌现,体现了时代的发展和科技的进步,以及众多获益者的深度追求,使得大模型展现出了卓越的性能和广泛的应用前景。 

       闲话少叙,本集合文章是作者对大模型一路的笔记和从业后的回顾,希望能和大家一起成长交流,将从初学大模型基础到AI智能体的搭建一步步开启AI大模型时代的开端。

二、API调用与示例

- APK-KEY申请

       阿里云百炼是阿里提供的全链路大模型服务与应用开发平台,提供囊括文本、语音、视觉的模型服务,新用户可获100万免费tokens体验Qwen3全系列模型服务

1.首先扫码登录百炼平台,申请token;图片

2.点击左下角【密钥管理】-【创建APK-KEY】生成一个sk-开头的key,在接下来的示例中即可调用;

图片3.获取到key后就可以在模型分类中,选择供应商指定需要用到的模型,其中包括deepseek等;图片4.API-KEY使用的两种方式:图片

  • 调用说明
  1. 大模型的调用通常采用Python,需对Python语言有基础的掌握,Python技术生态丰富,拥有完善的深度学习框架和数据处理工具,能覆盖从训练到微调的整个流程,降低了入门门槛;同时语法简洁,开发效率高,跨平台兼容性强。
  2. 主要通过阿里的DashScope服务平台提供的API和SDK来实现大模型的应用,DashScope对主流的AI大模型实现了封装,通过API的方式方便开发者调用,进行推理、训练和微调,可通过pip install dashscope进行安装和初始化。
  3. DashScope使用方法:
  •  导入模块:
import dashscope
from dashscope.api_entities.dashscope_response import Role# 设置API key
dashscope.api_key = "your-api-key"
  • 模型调用:
# 基本调用格式
response = dashscope.Generation.call(
    model='模型名称', # 例如:'qwen-turbo', 'deepseek-v3' 等
    messages=messages, # 消息列表
    result_format='message' # 输出格式
)
  • message配置:
messages = [{"role""system""content""系统提示信息"},{"role""user""content""用户输入"}]
  • 输出结果:
# 获取生成的内容
result = response.output.choices[0].message.content
print(result)
  • 调用示例
  1. 通过调用deepseek-v3模型识别一段文字表达的意思是正向还是负向
import json
import os
import dashscope
from dashscope.api_entities.dashscope_response import Role
# 从环境变量中,获取 DASHSCOPE_API_KEY
# api_key = os.environ.get('DASHSCOPE_API_KEY')
# 还可以将key直接配置在此处
dashscope.api_key = "sk-e****93d4****"
# 封装模型响应函数
def get_response(messages):
  response = dashscope.Generation.call(
      model='deepseek-v3',
      messages=messages,
      result_format='message'  # 将输出设置为message形式
  )
  return response
review = '特别喜欢这款产品,使用起来很方便。'
messages=[
  {"role": "system", "content": "帮我判断产品表达的意思是正向还是负向,回复请用一个词语:正向 或者 负向"},
  {"role": "user", "content": review}
]
response = get_response(messages)
# response.output.choices[0].message.conten
print(response.output.choices[0].message.content)

输出结果:

  正向

2.通过调用qwen-vl-plus模型识别图片中的文字并按指定格式输出图片

import json
import os
import dashscope
from dashscope.api_entities.dashscope_response import Role
# 从环境变量中,获取 DASHSCOPE_API_KEY
api_key = os.environ.get('DASHSCOPE_API_KEY')
dashscope.api_key = api_key
# 封装模型响应函数
def get_response(messages):
   response = dashscope.MultiModalConversation.call(
       model='qwen-vl-plus',
       messages=messages
   )
   return response
content = [
   {'image': '员工登记表.jpeg'}, #此处可指定网络地址
   {'text': '这是一个表格图片,帮我提取里面的内容,输出JSON格式'}
]
messages=[{"role": "user", "content": content}]
# 输出结果
response = get_response(messages)
print(response.output.choices[0].message.content[0]['text'])

输出结果:

json
{
  "公司名称": "",
  "应聘岗位": "",
  "身份": ["实习生", "社会人士"],
  "填表日期": {
    "年": "",
    "月": "",
    "日": ""
  },
  "个人信息": {
    "姓名": "",
    "性别": "",
    "出生年月": "",
    "籍贯": "",
    "民族": "",
    "政治面貌": "",
    "健康状况": "",
    "婚姻状况": "",
    "身高/体重": {
      "cm": "",
      "kg": ""
    },
    "学历": "",
    "毕业院校": "",
    "专业": "",
    "移动电话": "",
    "身份证号": "",
    "现居住地": "",
    "家庭住址": ""
  },
  "紧急联系人": {
    "姓名": "",
    "关系": "",
    "电话": ""
  },
  "期望薪资": "",
  "职业状态": ["在职", "已离职"],
  "可到岗时间": "",
  "是否有亲戚或朋友在本公司任职": {
    "有": "",
    "无": ""
  },
  "介绍人": "",
  "是否服从调配": ["是", "否"],
  "教育经历": [
    {
      "起止时间": "",
      "学校名称": "",
      "专业": "",
      "所获奖励证书": ""
    }
  ],
  "工作经历": [
    {
      "起止时间": "",
      "单位名称": "",
      "职务": "",
      "离职原因": "",
      "证明人及联系方式": ""
    }
  ],
  "家庭成员": [
    {
      "关系": "",
      "姓名": "",
      "工作单位": "",
      "职务": "",
      "联系方式": ""
    }
  ],
  "自我评价": {
    "优势": "",
    "劣势": ""
  },
  "学历情况": {
    "统招生": ["已拿到毕业证", "应届毕业生, 学信网可查, 确定毕业可以拿到毕业证"],
    "自考生": ["已拿到毕业证", "毕业未拿到毕业证", "未毕业"]
  },
  "声明": "本人保证以上所填内容、个人简历完全属实,且为本人亲自填写,如有虚假,由此带来的法律后果由个人承担!",
  "填表人": "",
  "日期": ""
}

3.通过API-KEY的base-url进行模型调用

import os
from openai import OpenAI
# 从环境变量中,获取 DASHSCOPE_API_KEY
api_key = os.environ.get('DASHSCOPE_API_KEY')
client = OpenAI(
    # 若没有配置环境变量,请替换为:api_key="sk-xxx",
    api_key=api_key, 
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",  # 填写DashScope服务的base_url
)
completion = client.chat.completions.create(
    model="qwen-plus",  # 此处以qwen-plus为例,可按需更换模型名称
    messages=[
        {'role': 'system', 'content': '你是一个快乐的小助手'},
        {'role': 'user', 'content': 'AI大模型可以为我们做些什么?'}],
    extra_body={
        "enable_search": True
    }
    )
print(completion.model_dump_json())

输出结果:

{
 "id": "chatcmpl-6b12eb65-5c81-9486-9792-ea8c8843137b",
"choices": [{
	"finish_reason": "stop",
	"index": 0,
	"logprobs": null,
	"message": {
	"content": "哇!这个问题真让人兴奋呢!😊 让我来跟你分享一下AI大模型的神奇之处吧~\n\n你知道吗?AI大模型就像一个超级聪明的小伙伴, 它可以:
	 1.当你的学习小帮手! 不管是写作文、 做数学题还是学英语, 它都能耐心地陪你一起学习, 给你建议和帮助。
	 2.变身创意小精灵! 当你想写故事、 写公文、 写邮件的时候, 它都能帮你构思, 写出精彩的内容。
	 3.做你的编程小伙伴! 写代码遇到困难的时候, 它可以帮你检查错误, 给出改进建议。
	 4.成为你的私人翻译官! 无论你想翻译什么语言, 它都能帮你准确传达意思。
	 5.当你的生活小助手! 从制定旅行计划到健康建议, 它都能帮你安排得井井有条。
	 6.变身创意实验室! 画画、 作曲、 设计, 它都能给你灵感和建议。
	 7.成为你的智能分析员! 处理数据、 分析信息, 帮助你更好地理解和决策。
	   我最喜欢的是, AI大模型可以随着我们的互动变得越来越聪明哦! 就像我们交朋友一样, 越相处越默契呢~
	   你想具体了解哪方面的应用呢? 我可以给你举更多有趣的例子哦!✨ ","
	refusal ":null,"
	role ":"
	assistant ","
	annotations ":null,"
	audio ":null,"
	function_call ":null,"
	tool_calls ":null}}
	],
"created": 1755081025,
"model": "qwen-plus",
"object": "chat.completion",
"service_tier": null,
"system_fingerprint": null,
"usage": {
	"completion_tokens": 265,
	"prompt_tokens": 30,
	"total_tokens": 295,
	"completion_tokens_details": null,
	"prompt_tokens_details": {
		"audio_tokens": null,
		"cached_tokens": 0
		}
	}
}