AI应用学习笔记-1
人工智能人工智能 AI(Artificial Intelligence)是一个广泛涉及计算机科学、数据分析、统计学、机器工程、语言神经科学、哲学和心理学等多个学科的领域旨在研究、设计、构建具备智能、学习、推理和行动能力的计算机和机器。AI大模型也称为大语言模型Large Language Models, LLMAI应用将AI大模型技术落地到具体的业务场景中用来解决实际问题的产品或者服务。大模型部署本地部署优点数据安全、自主可控、长期成本低缺点初始成本高、需长期维护、性能受限官方开放APIAPI应用程序编程接口Application Programming Interface是软件间的标准化的“桥梁”允许开发者无需知晓内部细节即可调用外部功能或数据。优点前期成本低、无需部署和维护、随时访问缺点隐私不能保障、长期成本高、可控性差云服务平台优点前期成本低、无需部署和维护、选择度高缺点安全及隐私不能保障、长期成本高本地部署Ollama是一个在本地运行、管理大语言模型的工具。官网下载https://ollama.com。在命令行执行 OllamaSetup.exe /DIR目录 将ollama安装在指定目录下并执行 OLLAMA_MODELS保存下载模型的目录 配置环境变量。执行如下命令下载并部署模型根据本地硬件情况选择模型版本。ollama run deepseek-r1:1.5b大模型调用主流大模型官方都提供了开放API无需部署就可以直接调用访问。以deepseek为例需要在deepseek官网注册账号→登录→充值→创建API Key。HTTP协议请求数据格式# 请求行请求方式、资源路径、协议 POST /api/courses HTTP/1.1 # 请求头 以key: value 格式 Accept: application/json, text/plain, */* Accept-Encoding: gzip, deflate, br, zstd Accepy-Language: zh-CN,zh;q0.9,en;q0.8,en-GB;q0.7,en-US;q0.6 Connection: keep-alive Content-Length: 139 Content-Type: application/json Host: localhost:90 Origin: http://localhost:90 Referer: http://localhost:90/resource/course Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/143.0.0.0 # 请求体 {phone:11111111,channel:1,name:meng,gender:1,age:18}请求方式GET请求参数在请求行中没有请求体。如/api/courses?namePythonstatus1。GET请求请求参数大小在浏览器中是有限制的。POST请求参数在请求体中POST请求大小是没有限制的。响应数据格式# 响应行协议、状态码 HTTP/1.1 200 # 响应头 Server: nginx/1.24.0 Date: Tue, 16 Dec 2025 12:38:08 GMT Content-Type: application/json Transfer-Encoding: chunked Connection: keep-alive # 响应体 存放服务器端响应的数据 {code: 1, msg: success, data: null}响应码200成功400请求参数错误404请求资源不存在500服务器端错误JSON前端的一种对象表示方法表示形式类似于Python中的字典都是key:value形式不过所有Key都必须使用双引号引起来值可以是任何类型。Apifox一款API设计、开发、测试的一体化协作平台是项目开发中进行API接口测试的工具。以下链接为deepseek api文档提供了请求地址、请求头以及请求体请求头中的Authorization参数DEEPSEEK-API-KEY使用前文的Apikey替代。api-docs.deepseek.com/zh-cn/其中请求体{ model: deepseek-v4-pro, messages: [ {role: system, content: 此处填写系统提示词}, {role: user, content: 此处填写用户提示词可以填写用户的问题} ], thinking: {type: enabled}, reasoning_effort: high, stream: false }每次请求相对独立因为AI大模型本身没有真正的会话记忆能力。可以将每轮会话信息放在请求体中{ model: deepseek-v4-pro, messages: [ {role: system, content: 系统提示词}, {role: user, content: 用户第一个问题} {role: assistant, content: 第一轮问题大模型的回答} {role: user, content: 用户第二个问题} ], thinking: {type: enabled}, reasoning_effort: high, stream: false }使用Python代码调用API也在Deepseek API文档中# 使用pip install openai安装openai包 import os from openai import OpenAI client OpenAI( # 此处获取本地环境变量中的DEEPSEEK_API_KEY api_keyos.environ.get(DEEPSEEK_API_KEY), base_urlhttps://api.deepseek.com) response client.chat.completions.create( modeldeepseek-v4-pro, messages[ {role: system, content: You are a helpful assistant}, {role: user, content: Hello}, ], streamFalse, reasoning_efforthigh, extra_body{thinking: {type: enabled}} ) print(response.choices[0].message.content)