当前位置: 首页 > article >正文

PYTHON_DAY02_ollama私有化大模型部署_以及apifox和chatbox调用大模型

##了解私有化大模型解决方案能够选择企业常用的方案实现私有大模型部署随着AI技术的不断普及人们也积极拥抱其带来的变化在生活或者工作中亦使用AI技术来帮助我们更高效的完成某些事件但是在这个过程中也暴露出AI技术当前下存在在的系列问题其中最严重的就是安全问题比如最典型的是三星员工使用ChatGPT泄露公司机密的案例。##案例真的有很多 并且真的损失严重其实上述案例表现的就是企业数据隐私与安全的问题在许多行业如金融、医疗、政府等数据隐私和安全是至关重要的。使用公共大模型可能涉及敏感数据的泄露风险因为公共模型在训练过程中可能接触到了来自不同来源的敏感数据。因此就有了私有大模型的市场需求私有大模型允许企业或机构在自己的数据上训练模型而且训练的结果只供内部或合作伙伴使用从而确保了数据隐私和安全。当然除了数据隐私问题原因之外还存有便于内部员工工作提效、大模型开发的投入等诸多原因综合直接推动私有大模型成为未来AI发展的新方向之一。私有大模型解决方案随着AI的发展越来越多的开发者投入到大模型开发中他们期望能自身笔记本上运行大模型以便开发。越来越多的企业积极改造自身产品融入AI技术他们期望能私有化大模型以保证数据安全。这些诉求直接推动社区出现了两个这方面的产品Ollama和LMstudio。这两个产品各有优势OllamaLM Studio产品定位开源的大型语言模型本地运行框架闭源的本地大型语言模型工作站集模型训练、部署、调试于一体技术特点高度智能化自主学习和适应能力强- 便捷性高操作简单易懂- 安全性强数据传输和存储严格保护高性能采用先进计算架构和算法优化- 可定制化支持用户定制模型结构和训练策略易用性友好的用户界面和丰富的文档支持功能提供预训练模型访问和微调功能- 支持多种模型架构和定制模型- 用户友好界面简化模型实验和部署过程丰富的训练数据和算法库- 可视化训练监控界面- 强大的调试工具支持模型性能优化应用场景学术研究- 开发者原型设计和实验- 创意写作、文本生成等智能客服- 自然语言处理如文本分类、情感分析、机器翻译- 学术研究用户友好性界面化操作适合不同水平的用户- 支持多种设备和平台友好的用户界面适合初学者和非技术人员- 提供全面的工具组合易于上手定制性提供一定程度的定制选项但可能有限制高度可定制化满足用户个性化需求资源要求需要一定的内存或显存资源来运行大型模型- 支持跨平台macOS、LinuxWindows预览版构建和训练复杂模型可能需要大量计算资源和专业技能成本成本可能根据使用量和资源需求变化- 开源项目可能涉及较少的直接成本闭源产品成本可能包括软件许可和可能的云服务费用社区生态社区生态活跃开发者主流本地运行时- 快速适配新发布的模型未知未提及具体社区生态活跃度择私有化大模型部署方案Ollama 作为一个开源的轻量级工具适合熟悉命令行界面的开发人员和高级用户进行模型实验和微调。它提供了广泛的预训练模型和灵活的定制选项同时保持了高度的便捷性和安全性。最重要它是开源的同时还提供API对于开发有先天优势因此在企业中备受欢迎和使用因此本课程也才主要学习Ollama技术。【熟悉】ollama介绍和各版本下载学习目标通过安装Ollama工具实现基于Ollama运行通义QWen大模型什么是OllamaOllama是一款旨在简化大型语言模型本地部署和运行过程的开源软件。中文名羊驼网址https://ollama.com/Ollama提供了一个轻量级、易于扩展的框架让开发者能够在本地机器上轻松构建和管理LLMs大型语言模型。通过Ollama开发者可以访问和运行一系列预构建的模型或者导入和定制自己的模型无需关注复杂的底层实现细节。Ollama的主要功能包括快速部署和运行各种大语言模型如Llama 2、Code Llama等。它还支持从GGUF、PyTorch或Safetensors格式导入自定义模型并提供了丰富的API和CLI命令行工具方便开发者进行高级定制和应用开发。Ollama特点一站式管理Ollama将模型权重、配置和数据捆绑到一个包中定义成Modelfile从而优化了设置和配置细节。包括GPU使用情况。这种封装方式使得用户无需关注底层实现细节即可快速部署和运行复杂的大语言模型。热加载模型文件支持热加载模型文件无需重新启动即可切换不同的模型提高了灵活性还显著增强了用户体验。丰富的模型库提供多种预构建的模型如Llama 2、Llama 3、通义千问方便用户快速在本地运行大型语言模型。多平台支持支持多种操作系统包括Mac、Windows和Linux确保了广泛的可用性和灵活性。无复杂依赖优化推理代码减少不必要的依赖可以在各种硬件上高效运行。包括纯CPU推理和Apple Silicon架构。资源占用少Ollama的代码简洁明了运行时占用资源少使其能够在本地高效运行不需要大量的计算资源。Ollama下载Ollama共支持三种平台Windowhttps://ollama.com/download/OllamaSetup.exeMachttps://ollama.com/download/Ollama-darwin.zipLinuxhttps://ollama.com/download/ollama-linux-amd64Ollama模型库ollama 支持多种开源模型涵盖文本生成、代码生成、多模态推理等场景。用户可以根据需求选择合适的模型并通过简单的命令行操作在本地运行。 ollama 官方模型库: https://ollama.com/library【实操】基于window中ollama部署私有大模型安装ollama部署大模型安装位置部署大模型补充】修改模型存储路径window修改路径1.先在其他位置创建一个用于存储模型的目录2.window直接页面配置环境变量OLLAMA_MODELS,指定存储路径即可##然后接下来的安装一定要重启ollama和控制台再下载 才能下载到改变的下载地址实操客户端指令和对话指令客户端命令详解Ollama客户端还提供了系列命令来管理本地大模型接下来就先了解一下相关命令run 命令run命令主要用于运行一个大模型命令格式是ollama run MODEL[:Version] [PROMPT] [flags] 比如运行通义千问命令 ollama run qwen2:0.5b[:Version] 可以理解成版本而版本信息常常以大模型规模来命名可以不写不写则模式成latestollama run qwen2 等同 ollama run qwen2:latest[PROMPT] 参数是用户输入的提示词如果带有此参数则run命令会执行了输入提示词之后即退出终端即只对话一次。[rootbogon ~]# ollama run qwen2:0.5b 您好 您好有什么问题我可以帮助您 ​ [rootbogon ~]#[flags] 指定运行时的参数Flags: --format string 指定运行的模型输出格式 (比如. json) --insecure 使用非安全模比如在下载模型时会忽略https的安全证书 --keepalive string 指定模型在内存中的存活时间 --nowordwrap 关闭单词自动换行功能 --verbose 开启统计日志信息例如在启动时增加 --verbose参数则在对话时自动增加统计token信息[rootbogon ~]# ollama run qwen2:0.5b --verbose 您好 欢迎光临我可以为您提供帮助。有什么问题或需要帮助的地方 ​ total duration: 1.229917477s load duration: 3.027073ms prompt eval count: 10 token(s) prompt eval duration: 167.181ms prompt eval rate: 59.82 tokens/s eval count: 16 token(s) eval duration: 928.995ms eval rate: 17.22 tokens/s ​pull 命令查询模型名称的网站https://ollama.com/从远程下载一个模型命令格式是ollama pull MODEL[:Version] [flags][:Version] 可以理解成版本但在这里理解成大模型规模可以不写不写则模式成latestollama pull qwen2 等同 ollama pull qwen2:latest[flags] 参数目前只有一个--insecure参数用于来指定非安全模式下载数据ollama pull qwen2 --insecurelist/ls 命令查看本地下载的大模型列表也可以使用简写ls[rootbogon ~]# ollama list NAME ID SIZE MODIFIED qwen2:latest e0d4e1163c58 4.4 GB 10 minutes ago deepseek-coder:latest 3ddd2d3fc8d2 776 MB 3 hours ago qwen2:0.5b 6f48b936a09f 352 MB 8 hours ago [rootbogon ~]# ollama ls NAME ID SIZE MODIFIED qwen2:latest e0d4e1163c58 4.4 GB 10 minutes ago deepseek-coder:latest 3ddd2d3fc8d2 776 MB 3 hours ago qwen2:0.5b 6f48b936a09f 352 MB 8 hours ago列表字段说明NAME名称ID大模型唯一IDSIZE大模型大小MODIFIED本地存活时间ps 命令查看当前运行的大模型列表PS命令没其它参数[rootbogon ~]# ollama ps NAME ID SIZE PROCESSOR UNTIL deepseek-coder:latest 3ddd2d3fc8d2 1.3 GB 100% CPU About a minute from now列表字段说明NAME大模型名称ID唯一IDSIZE模型大小PROCESSOR资源占用UNTIL运行存活时长rm 命令删除本地大模型RM命令没其它参数[rootlocalhost system]# ollama ls NAME ID SIZE MODIFIED qwen2:latest e0d4e1163c58 4.4 GB 16 hours ago deepseek-coder:latest 3ddd2d3fc8d2 776 MB 19 hours ago qwen2:0.5b 6f48b936a09f 352 MB 24 hours ago [rootlocalhost system]# ollama rm qwen2:0.5b deleted qwen2:0.5b [rootlocalhost system]# ollama ls NAME ID SIZE MODIFIED qwen2:latest e0d4e1163c58 4.4 GB 16 hours ago deepseek-coder:latest 3ddd2d3fc8d2 776 MB 19 hours ago [rootlocalhost system]#show 命令不用运行大模型查看模型的信息与之前所学的/show功能类似。[rootbogon ~]# ollama show -h Show information for a model ​ Usage: ollama show MODEL [flags] ​ Flags: -h, --help 查看使用帮助 --license 查看模型的许可信息 --modelfile 查看模型的制作源文件Modelfile --parameters 查看模型的内置参数信息 --system 查看模型的内置Sytem信息 --template 查看模型的提示词模版 ​例如查看提示词模版[rootbogon ~]# ollama show qwen2 --template {{ if .System }}|im_start|system {{ .System }}|im_end| {{ end }}{{ if .Prompt }}|im_start|user {{ .Prompt }}|im_end| {{ end }}|im_start|assistant {{ .Response }}|im_end|对话指令详解/?指令/? 该指令主要是列出支持的指令列表[rootbogon ~]# ollama run qwen2:0.5b /? Available Commands: /set Set session variables /show Show model information /load model Load a session or model /save model Save your current session /clear Clear session context /bye Exit /?, /help Help for a command /? shortcuts Help for keyboard shortcuts ​ Use to begin a multi-line message./bye 指令退出当前控制台对话, 快捷键: ctrl d[rootbogon ~]# ollama run qwen2:0.5b 您好 你好有什么可以帮助您的吗 ​ /bye [rootbogon ~]#/show指令/show 指令用于查看当前模型详细信息[rootbogon ~]# ollama run qwen2:0.5b /show Available Commands: /show info 查看模型的基本信息 /show license 查看模型的许可信息 /show modelfile 查看模型的制作源文件Modelfile /show parameters 查看模型的内置参数信息 /show system 查看模型的内置Sytem信息 /show template 查看模型的提示词模版/show info 查看模型的基本信息 /show info Model details: Family qwen2 模型名称 Parameter Size 494.03M 模型大小 Quantization Level Q4_0 模型量化级别/? shortcuts 指令查看在控制台中可用的快捷键 /? shortcuts Available keyboard shortcuts: Ctrl a 移动到行头 Ctrl e 移动到行尾 Ctrl b 移动到单词左边 Ctrl f 移动到单词右边 Ctrl k 删除游标后面的内容 Ctrl u 删除游标前面的内容 Ctrl w 删除游标前面的单词 ​ Ctrl l 清屏 Ctrl c 停止推理输出 Ctrl d 退出对话只有在没有输入时才生效 指令 用于输入内容有换行时使用如何多行输入结束也使用 ... 您好 ... 你是什么模型 ... 我是一个计算机程序可以回答您的问题、提供信息和执行任务。请问您有什么问题或者指令想要我帮助您/clear 指令在命令行终端中对话是自带上下文记忆功能如果要清除上下文功能则使用/clear指令清除上下文内容例如前2个问题都关联的在输入/clear则把前2个问题的内容给清理掉了第3次提问时则找不到开始的上下文了。 请帮我出1道java list的单选题 以下是一些关于Java List的单选题 ​ 1. 在Java中List是哪一种数据结构 2. Java中的顺序存储方式例如使用数组主要用来做什么 3. 一个列表对象可以包含哪些类型的元素 ​ 再出1道 以下是一些关于Java List的单选题 ​ 4. 在Java中List接口用于创建和操作集合。 5. Java中的顺序存储方式如使用数组的主要优势有哪些 6. 一个列表对象可以包含哪些类型 ​ /clear Cleared session context 在出1道 很抱歉我无法理解您的问题。您能否提供更多的背景信息或者问题描述以便我能更好地帮助您/load 指令load可以在对话过程中随时切换大模型 你是什么大模型 我是一个基于开放AI平台的模型拥有一个强大的数学推理能力并且在各种自然语言处理任务上都表现优秀。我可以回答您提出的问题也可以提供与主题相关的信息和建议。如果您有任何问题或需要帮助 请随时告诉我 ​ /load deepseek-coder Loading model deepseek-coder 你是什么大模型 我是由中国的深度求索DeepSeek公司开发的编程智能助手名为 Deepseek Coder。我主要用于解答和协助计算机科学相关的问题、问题解决方案等任务。我的设计目标是提供最全面准确的高质量服务来帮 助用户理解复杂的新技术或概念并迅速找到它们在实际应用中的实现方法或者原理所在的地方。/save 指令可以把当前对话模型存储成一个新的模型 /save test Created new model test保存的模型存储在ollama的model文件中进入下面路径即可看见模型文件test[rootbogon library]# pwd /root/ollama/manifests/registry.ollama.ai/library [rootbogon library]# ls deepseek-coder qwen2 test/set 指令set指令主要用来设置当前对话模型的系列参数 /set Available Commands: /set parameter ... 设置对话参数 /set system string 设置系统角色 /set template string 设置推理模版 /set history 开启对话历史 /set nohistory 关闭对话历史 /set wordwrap 开启自动换行 /set nowordwrap 关闭自动换行 /set format json 输出JSON格式 /set noformat 关闭格式输出 /set verbose 开启对话统计日志 /set quiet 关闭对话统计日志/set parameter ... 设置对话参数 /set parameter Available Parameters: /set parameter seed int Random number seed /set parameter num_predict int Max number of tokens to predict /set parameter top_k int Pick from top k num of tokens /set parameter top_p float Pick token based on sum of probabilities /set parameter num_ctx int Set the context size /set parameter temperature float Set creativity level /set parameter repeat_penalty float How strongly to penalize repetitions /set parameter repeat_last_n int Set how far back to look for repetitions /set parameter num_gpu int The number of layers to send to the GPU /set parameter stop string string ... Set the stop parametersParameterDescriptionValue TypeExample Usagenum_ctx设置上下文token大小. (默认: 2048)intnum_ctx 4096repeat_last_n设置模型要回顾的距离以防止重复. (默认: 64, 0 禁用, -1 num_ctx)intrepeat_last_n 64repeat_penalty设置惩罚重复的强度。较高的值例如1.5)将更强烈地惩罚重复而较低值例如0.9)会更加宽容。默认值1.1floatrepeat_penalty 1.1temperature模型的温度。提高温度将使模型的答案更有创造性。默认值0.8floattemperature 0.7seed设置用于生成的随机数种子。将其设置为特定的数字将使模型为相同的提示生成相同的文本。默认值0intseed 42stop设置停止词。当遇到这种词时LLM将停止生成文本并返回stringstop AI assistant:num_predict生成文本时要预测的最大标记数。默认值128-1 无限生成-2 填充上下文intnum_predict 42top_k减少产生无意义的可能性。较高的值例如100将给出更多样化的答案而较低的值例如10将更加保守。默认值40inttop_k 40top_p与Top-K合作。较高的值例如0.95将导致更多样化的文本而较低的值例如0.5)将产生更集中和保守的文本。默认值0.9floattop_p 0.9num_gpu设置缓存到GPU显存中的模型层数int自动计算JSON格式输出 /set format json Set format to json mode. 您好 {response:你好欢迎光临请问有什么我可以帮助您的吗} ​ /set noformat Disabled format. 您好 Hello! How can I assist you?输出对话统计日志 /set verbose Set verbose mode. 您好 您好我需要您的信息以便回答您的问题。请问您能告诉我更多关于这个主题的信息吗 ​ total duration: 1.642906162s 总耗时 load duration: 3.401367ms 加载模型数据耗时 prompt eval count: 11 token(s) 提示词token消耗数量 prompt eval duration: 196.52ms 提示词处理耗时 prompt eval rate: 55.97 tokens/s 提示词处理速率 eval count: 24 token(s) 响应token消耗数量 eval duration: 1.304188s 响应处理耗时 eval rate: 18.40 tokens/s 响应处理速率小结掌握基于Ollama客户端相关命令/bye指令 退出当前控制台对话/load指令可以在对话过程中随时切换大模型/clear指令清除上下文内容##APIfox入门配置apifox安装导入ollama的Api为了方便后续使用程序接入Ollama中的大模型在此可以先通过Apifox进行Api的快速体验与学习。在资料文件夹中《Ollama.apifox.json》文件提供了供Apifox软件导入的json内容再此我们先导入到Apifox软件中快速体验一下API相关功能。Oallma支持的API可以在资料文件夹中通过《Ollama API文档.html》了解详解双击打开查看通过网页可以了解到Ollama支持7个API 这里只列举了常用的接下来我们重点先了解对话和向量化接口因为这两个接口是最重要的其它接口则留给大家课后自行尝试但是在正式体验之前需要先配置一下环境地址。Step 1打开导入项目Step 2选择导入的文件Step 3输入项目名称Step 4完成导入进入项目配置环境地址##这个地址是固定的 本地电脑ip是127.0.0.1 ollama 的端口是11434本地url: http://127.0.0.1:11434聊天对话接口说明聊天对话接口是实现类似ChatGPT、文心、通义千问等网页对话功能的关键接口请求的地址与参数如下POST /api/chat{ model: qwen2.5:0.5b, messages: [ { role: string, content: string, images: string } ], format: string, stream: true, } ​请求参数名称位置类型必选中文名说明bodybodyobject否nonemodelbodystring是模型名称nonemessagesbody[object]是聊天消息nonerolebodystring是角色system、user或assistantcontentbodystring是内容noneimagesbodystring否图像noneformatbodystring否响应格式nonestreambodyboolean否是否流式生成nonekeep_alivebodystring否模型内存保持时间5mtoolsbody[object]否工具optionsbodyobject否配置参数noneseedbodyinteger否生成种子nonetop_kbodyinteger否多样度越高越多样默认40top_pbodynumber否保守度越低越保守默认0.9repeat_last_nbodyinteger否防重复回顾距离默认: 64, 0 禁用, -1 num_ctxtemperaturebodynumber否温度值越高创造性越强默认0.8repeat_penaltybodynumber否重复惩罚强度越高惩罚越强默认1.1stopbody[string]是停止词none返回示例{ model: llama3.1, created_at: 2024-09-07T09:00:57.035084368Z, message: { role: assistant, content: , tool_calls: [ { function: { name: get_current_weather, arguments: { format: celsius, location: Paris } } } ] }, done_reason: stop, done: true, total_duration: 14452649821, load_duration: 21370256, prompt_eval_count: 213, prompt_eval_duration: 11306354000, eval_count: 25, eval_duration: 3082983000 } ​返回结果状态码状态码含义说明数据模型200OK成功Inline返回数据结构状态码200时才返回以下信息。名称类型必选约束中文名说明modelstringtruenone模型nonecreated_atstringtruenone响应时间nonemessageobjecttruenone响应内容nonerolestringtruenone角色nonecontentstringtruenone内容nonetool_calls[object]falsenone调用的工具集donebooleanfalsenonenonetotal_durationintegerfalsenone总耗时noneload_durationintegerfalsenone模型加载耗时noneprompt_eval_countintegerfalsenone提示词token消耗数noneprompt_eval_durationintegerfalsenone提示词耗时noneeval_countintegerfalsenone响应token消耗数noneeval_durationintegerfalsenone响应耗时none[案例]聊天对话接口[拓展]图片识别演示随着技术与算力的进步大模型也逐渐分化成多种类型而在这些种类中比较常见的有大语言模型用于文生文典型的使用场景是对话聊天—仅文字对话Qwen、ChatGLM3、Baichuan、Mistral、LLaMA3、YI、InternLM2、DeepSeek、Gemma、Grok 等等文本嵌入模型用于内容的向量化典型的使用场景是模型微调text2vec、openai-text embedding、m3e、bge、nomic-embed-text、snowflake-arctic-embed重排模型用于向量化数据的优化增强典型的使用场景是模型微调bce-reranker-base_v1、bge-reranker-large、bge-reranker-v2-gemma、bge-reranker-v2-m3多模态模型用于上传文本或图片等信息然后生成文本或图片典型的使用场景是对话聊天—拍照批改作业Qwen-VL 、Qwen-Audio、YI-VL、DeepSeek-VL、Llava、MiniCPM-V、InternVL语音识别语音播报用于文生音频、音频转文字等典型的使用场景是语音合成Whisper 、VoiceCraft、StyleTTS 2 、Parler-TTS、XTTS、Genny扩散模型用于文生图、文生视频典型的使用场景是文生图AnimateDiff、StabilityAI系列扩散模型在这些模型中Ollama目前仅支持大语言模型、文本嵌入模型、多模态模型文本嵌入模型在后面的会学习再此可以先来体验一下多模态模型Step 1私有化多模态大模型LLaVA Large Language and Vision Assistant是一个开源的多模态大模型它可以同时处理文本、图像和其他类型的数据实现跨模态的理解和生成。ollama run llava:7b ​ ollama run llava:latestStep 2准备图片素材准备一张图片图片问答需要用base64转换,以下是通过程序把图片数据转出Base64字符串的python代码,可以作为了解import base64 def main(): # 读取文件内容 with open(../assets/Snipaste_2024-06-22_16-01-31.png, rb) as file: bytes_data file.read() # 将字节数据编码为Base64字符串 base64_str base64.b64encode(bytes_data).decode(utf-8) # 打印Base64字符串 print(base64_str) if __name__ __main__: main()注意: 斌哥已经提前生成了上面图片的Base64数据,可以在【资料/多模态测试图片Base64字符串.txt 】中找到直接使用。Step 3调用多模态接口在Ollama中可以通过内容生成接口和聊天对话接口来支持多模态在此以聊天对话接口为例图片信息通过images字段传入且可传入多张,即使传入1张也得用列表套用: [图片字符串格式]识别的结果为引文需要自行翻译[拓展]向量化接口本质就是把文字向量化转换基于ChatBox与Ollama快速搭建聊天机器人学习目标掌握ChatBox环境搭建完成ChatBox集成Ollama实现对话ChatBoxChatBox功能特点包含一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用与文档和图片聊天代码神器生成与预览支持本地大模型支持多平台AI接入支持插件扩展安装ChatBoxChatBox提供了windows桌面安装方式相关文件已下载到02_资料/Chatbox-1.9.8-Setup.exe可以找到文件然后通过以下操作进行安装####Step 1桌面win安装Step 2访问ChatBoxChatBox界面介绍主界面主界面如下主要包括的内容有功能菜单左侧对话菜单功能菜单模型选择ChatBox集成Ollama要在ChatBox中使用Ollama中的大模型也非常便捷可以按照以下步骤进行操作Step 1运行本地大模型ollama run qwen2 --keepalive 1h命令说明命令运行的是通义大模型通过--keepalive参数设置大模型被加载到内存中的存活时长为1小时Step 2配置Ollama信息进入对话聊天界面并点击位置的设置按钮则弹出下图中间区域的对话框然后点击位置的【模型】菜单然后按图填写信息Step 3开始对话配置完成之后返回对话界面在1号位置选择通义大模型然后即可开始对话聊天。附件网络三要素: 协议 ip地址 端口(端口号)注意: https://www.baidu.com:443 其中www.baidu.com域名,百度ip地址的别名,访问流程是1.先在本地hosts文件中,查找有没有 www.baidu.com对应的ip地址,如果有,就直接访问,后续不进行了hosts文件存储位置: C:\Windows\System32\drivers\etc【补充】HTTP基础知识什么是HTTPHTTP全称为超文本传输协议HyperText Transfer Protocol是互联网上应用最为广泛的一种网络协议。它是客户端和服务器之间进行通信的规则集合允许将超文本标记语言HTML文档从Web服务器传输到Web浏览器。简而言之HTTP是Web浏览器和Web服务器之间的“语言”使得用户能够浏览网页、下载文件、提交表单等。HTTP请求特征HTTP请求是客户端如浏览器向服务器发送的请求消息用于获取或操作资源。以下是HTTP请求的主要特征请求方法请求方法定义了客户端希望执行的操作类型常见方法包括GET请求获取指定资源。 ? 直接拼接参数信息 举例: http://www.baidu.com:80/index.html?username黑马pwd123POST向服务器提交数据通常用于表单提交。 post把重要参数信息放到请求体...请求网址URL: 统一资源定位符,俗称网址请求URL指定了资源的路径通常包括协议如HTTP或HTTPS、服务器地址、端口号和资源路径。请求头Headers请求头包含关于请求的附加信息常见字段包括Host指定服务器的主机名和端口号。User-Agent描述客户端的信息如浏览器类型。Accept指定客户端能够接收的媒体类型。Content-Type指示请求体的媒体类型如application/json。Authorization包含认证信息如Bearer Token请求体Request Body请求体用于携带客户端发送的数据通常在POST、PUT等方法中使用。例如表单数据username黑马password123456JSON数据{username: 黑马, password: 123456}HTTP请求体方法对比在HTTP协议中GET和POST是两种最常用的请求方法它们在用途、数据传递方式、安全性等方面有显著区别。GET用于请求资源通常用于从服务器获取数据如加载网页、查询数据。适合幂等操作多次请求不会对资源产生影响。POST用于提交数据通常用于向服务器发送数据如表单提交、文件上传。适合非幂等操作多次请求可能会对资源产生影响。HTTP状态码分类信息响应 (100–199)成功响应 (200–299)重定向消息 (300–399)客户端错误响应 (400–499)服务端错误响应 (500–599)常见的:200 OK请求成功响应中包含请求的数据。302 Found资源临时移动到新URL。404 Not Found请求的资源不存在。500 Internal Server Error服务器内部错误无法完成请求。502 Bad Gateway服务器作为网关时收到无效响应。

相关文章:

PYTHON_DAY02_ollama私有化大模型部署_以及apifox和chatbox调用大模型

##了解私有化大模型解决方案,能够选择企业常用的方案实现私有大模型部署 随着AI技术的不断普及,人们也积极拥抱其带来的变化,在生活或者工作中亦使用AI技术来帮助我们更高效的完成某些事件,但是在这个过程中,也暴露出A…...

3大场景攻克Android逆向难题:JADX让APK代码可读性提升90%的实战指南

3大场景攻克Android逆向难题:JADX让APK代码可读性提升90%的实战指南 【免费下载链接】jadx skylot/jadx: 是一个用于反编译Android应用的工具。适合用于需要分析和学习Android应用实现细节的开发者。特点是可以提供反编译功能,将Android应用打包的APK文件…...

医学多模态模型体验:MedGemma影像解读助手实战操作

医学多模态模型体验:MedGemma影像解读助手实战操作 1. 引言:当AI成为你的医学影像“实习助手” 如果你是一名医学生,面对一张复杂的胸部CT影像,是不是希望身边能有一位经验丰富的老师随时指点?如果你是一位医学研究者…...

LiuJuan Z-Image GeneratorBF16算力优势:对比FP16在4090D上PSNR提升2.1dB

LiuJuan Z-Image Generator BF16算力优势:对比FP16在4090D上PSNR提升2.1dB 1. 引言:当图片生成遇到精度瓶颈 你有没有遇到过这样的情况?用AI生成图片时,画面总感觉差那么一点意思——可能是细节不够锐利,也可能是色彩…...

永磁同步电机电压极限椭圆的形成机理与工程应用解析

1. 永磁同步电机电压极限椭圆的基本概念 第一次听说"电压极限椭圆"这个词时,我也是一头雾水。直到有一次调试电机时遇到转速上不去的怪现象,才发现这个概念原来这么重要。简单来说,电压极限椭圆就像是为永磁同步电机画的一个"…...

GTE模型在舆情监控中的应用:实时分析与预警

GTE模型在舆情监控中的应用:实时分析与预警 1. 引言 每天,互联网上产生着海量的用户评论、新闻文章和社交媒体内容。对于企业来说,如何从这些信息中快速识别出有价值的舆情信号,及时发现问题并做出响应,成为了一个巨…...

DR-MMC串联高压直流输电系统阻抗建模与稳定性分析

DR-MMC串联高压直流输电系统阻抗建模与稳定性分析 摘要 随着海上风电等大规模新能源并网需求的增长,基于二极管整流器(DR)与模块化多电平换流器(MMC)串联的混合高压直流输电系统因其经济性和可靠性优势成为研究热点。然而,DR与MMC在直流侧的串联结构导致二者之间存在复…...

OpenClaw备份恢复:ollama-QwQ-32B配置与任务的历史保存

OpenClaw备份恢复:ollama-QwQ-32B配置与任务的历史保存 1. 为什么需要备份OpenClaw配置 上周我的开发机突然硬盘故障,导致所有OpenClaw配置丢失。当时正在运行的十几个自动化任务全部中断,连最基本的飞书机器人对接都要重新配置。这次惨痛经…...

Pixel Dimension Fissioner实战案例:小红书种草文案10种人设风格裂变

Pixel Dimension Fissioner实战案例:小红书种草文案10种人设风格裂变 1. 工具介绍:像素语言维度裂变器 Pixel Dimension Fissioner(像素语言维度裂变器)是一款基于MT5-Zero-Shot-Augment核心引擎构建的创意文本改写工具。与传统…...

西门子s7-1200 基于plc的智能家居控制系统(成品) 仿真是实物仿真(做毕设的在电脑上仿...

西门子s7-1200 基于plc的智能家居控制系统(成品) 仿真是实物仿真(做毕设的在电脑上仿真的需要自己加按钮)搞智能家居的兄弟们都懂,PLC才是真香。今天唠唠用西门子S7-1200整的智能家居控制系统,重点说仿真这…...

优化深度学习分类模型:解决小样本过拟合问题的实践

优化深度学习分类模型:解决小样本过拟合问题的实践 1. 引言 在深度学习领域,分类任务是最常见且应用最广泛的问题之一。然而,在实际应用中,我们常常面临小样本(few-shot)场景——即每个类别仅有少量标注样本可用。这种情况下,深度神经网络极易发生过拟合,表现为训练集…...

实际运行的资产和设备管理系统平台源码(Java)

1. 仓库管理固定资产存储与流转的基础,核心功能:管理仓库基础信息(增删改查)、划分库区便于定位;登记出入库信息并生成单据,关联资产档案;设置库存预警,及时提醒异常情况。2. 借用管…...

OpenClaw硬件加速方案:QwQ-32B模型在M系列MacGPU优化

OpenClaw硬件加速方案:QwQ-32B模型在M系列MacGPU优化 1. 为什么需要硬件加速? 去年冬天,我第一次尝试用OpenClaw处理批量文件重命名任务时,遇到了令人抓狂的等待——200个文件花了近20分钟。当时我的M1 MacBook Pro风扇狂转&…...

Tao-8k代码审查实战:自动发现潜在缺陷与安全漏洞

Tao-8k代码审查实战:自动发现潜在缺陷与安全漏洞 最近在和朋友聊起代码质量保障时,大家普遍觉得,人工代码审查虽然必要,但耗时耗力,还容易因为疲劳或经验不足漏掉一些隐蔽的问题。特别是那些涉及内存安全、并发风险或…...

基于DeepSeek-OCR-2的MySQL数据库智能归档系统搭建指南

基于DeepSeek-OCR-2的MySQL数据库智能归档系统搭建指南 1. 为什么企业文档归档需要一次技术升级 上周我帮一家中型制造企业做数字化评估时,发现他们的财务部还在用三台扫描仪轮班工作。每天早上八点,行政助理小张准时把一摞发票、合同和采购单塞进扫描…...

springcloud alibaba系列:整合springcloud alibaba+nacos+dubbo

springcloud alibaba系列:整合springcloud alibabanacosdubbo1 引2 相关文章推荐3 环境准备3.1 nacos-server3.2 服务依赖3.3 服务说明3.4 micro-service-api3.5 micro-service-b依赖配置dubbo provider3.6 micro-service-b23.7 micro-service-a依赖配置web接口测试…...

Qwen3-32B-Chat百度SEO长尾词:Qwen3-32B大模型私有部署成本效益分析报告

Qwen3-32B大模型私有部署成本效益分析报告 1. 为什么选择私有部署Qwen3-32B 在当今企业数字化转型浪潮中,大型语言模型已成为提升业务效率的关键工具。Qwen3-32B作为一款性能优异的中英双语大模型,其私有部署方案能够为企业带来独特优势: …...

Altium Designer 16原理图设计中的网络标号问题:如何快速解决Net xxx has only one pin报错

Altium Designer网络标号报错实战:BGA设计中的单引脚网络处理技巧 在复杂PCB设计领域,BGA封装器件的高密度布线一直是硬件工程师面临的挑战。当你在Altium Designer中完成原理图设计,满怀期待地执行编译检查时,突然弹出的"Ne…...

OmenSuperHub:游戏本终极性能释放,告别过热与功耗焦虑

OmenSuperHub:游戏本终极性能释放,告别过热与功耗焦虑 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否曾为游戏本过热降频而烦恼?是否对官方控制软件的功能限制感到无奈&#xff1f…...

SimpleGUI:面向资源受限MCU的轻量级嵌入式GUI框架

1. SimpleGUI:嵌入式系统轻量级图形用户界面基础框架深度解析SimpleGUI 是一个面向资源受限嵌入式平台(如 Cortex-M0/M3/M4、RISC-V MCU)设计的极简 GUI 基础类库。其核心定位并非替代 LVGL 或 TouchGFX 等全功能 GUI 框架,而是提…...

Java八股文学习神器:丹青幻境图解核心知识点与面试题

Java八股文学习神器:丹青幻境图解核心知识点与面试题 每次准备Java面试,面对JVM、并发、集合这些“八股文”,你是不是也感到头大?概念抽象、机制复杂,光靠死记硬背,面试官稍微一问细节就露馅了。 最近&am…...

告别烦人弹窗!用Shizuku+App Ops一键关闭安卓投屏/录屏敏感信息提示(保姆级教程)

安卓投屏免打扰终极方案:ShizukuApp Ops深度配置指南 每次投屏演示时那个跳出来的"显示敏感信息"提示框,是不是让你抓狂?手游直播到关键时刻突然弹出的授权确认,有没有让你想砸手机?今天我们就来彻底解决这…...

2026年必看!20款Agentic AI框架深度解析,小白程序员轻松选型避坑指南(收藏版)

随着AI Agent的快速发展,本文深入解析了20个Agentic AI框架,涵盖了它们的技术特点、优缺点及适用场景。文章从多智能体协作、开发模式、功能侧重和技术栈适配等多个维度进行了详细分析,为开发者提供了全面的选型指南。无论是新手还是经验丰富…...

Local SDXL-Turbo应用案例:快速生成社交媒体配图实战

Local SDXL-Turbo应用案例:快速生成社交媒体配图实战 在社交媒体运营中,配图质量直接影响内容传播效果。传统设计流程需要经历构思、设计、修改等多个环节,耗时耗力。本文将展示如何利用Local SDXL-Turbo实现"键盘敲击间完成专业配图&q…...

探索BLDC低压方波控制方案:无霍尔无感驱动的魅力

BLDC低压方波控制方案 直流无刷电机驱动器 无感方案,无霍尔。 闭环启动方案,有位置检测,启动力矩大。 可用于园林工具,电动工具,割草机。 修枝机,电剪刀,电链锯 采用比较器方案,成熟…...

用遗传算法求解带充电桩的电动汽车路径规划VRPTW问题

遗传算法求解带充电桩的电动汽车路径规划VRPTW问题 具有的功能 软时间窗,时间窗惩罚,多目标点,充电,遗传算法 生成运输成本 车辆 路线 带时间窗,注释多,matlab程序 代码有详细注释,可快速上手。在当今的物流…...

Phi-3-vision-128k-instruct 与 MATLAB 联动:科学计算可视化分析

Phi-3-vision-128k-instruct 与 MATLAB 联动:科学计算可视化分析 1. 科研数据分析的新范式 想象这样一个场景:你刚在MATLAB中完成了一组复杂的数据拟合,生成了包含多条曲线的图表。传统方式下,你需要手动分析每条曲线的趋势、标…...

30k stars!shadPS4:在 PC 上玩 PS4 独占游戏!

shadPS4:在 PC 上玩 PS4 独占游戏,开源模拟器杀到 29k Stars! 前言:那些年我们错过的 PS4 独占 《血源诅咒》(Bloodborne)至今没有 PC 版,《最后的守护者》只在 PS4 上发布,《重力异…...

行政空调总忘关?RPA按时间开关,每月省600度电

RPA定时开关空调方案通过RPA(机器人流程自动化)技术实现行政区域空调的定时开关,可有效避免人为遗忘导致的能源浪费。以下为具体实施方案及节能测算:实施步骤部署RPA软件 选择UiPath、Automation Anywhere等主流RPA平台&#xff0…...

GraphicsDisplay嵌入式图形显示基类详解

1. GraphicsDisplay 显示库概述GraphicsDisplay 是由 Simon Ford 开发并开源的嵌入式图形显示基础类库,其核心定位并非一个完整 GUI 框架,而是一个面向硬件抽象层(HAL)的、轻量级、可继承的显示驱动基类。它不直接实现像素绘制或字…...