AI2.0时代如何快速落地AI智能应用开发,抓住时代机会

news/2024/5/19 18:20:13/

写在前面的话

当我们提到人工智能时也就是AI的时候呢,我们大多数人首先想到的可能就是像chatGPT这样的聊天机器人,这些聊天机器人通过理解,还有生成自然语言可以给我们提供一些信息,这个是AI最终的形态吗或者AI最终的形式吗?

比尔盖茨在他的个人博客中写道,现有的软件形式然而相当的笨拙软件的未来是智能代理,即AI agent。他认为5年之内,每个人都将拥有自己的智能助理,现在所有的软件都值得用智能方式重构一遍,他提到了人工智能代理agent,不仅会改变每个人与计算机交互的方式,它将颠覆软件行业,带来自我们从键入命令到点击图标以来最大的一个计算革命。

比如说你是一家商业咨询公司,每天有大量的数据表格要处理,那不仅要把数据库里面的原始数据
做清洗然后还要抽取成表格还要从这个表格里面去做统计分析,然后最后得到一些商业洞察,那么这个时候,通用的类chatGPT是无法满足的,最理想的方式呢就是使用AI的能力,构建属于自己的业务的一个chatbot或者代理机器人把数据库连接到agent输入你最终想要的洞察问题,不一会儿这个报告就出来了。甚至可以更进一步,比如连接上我们的电子邮箱,直接就发送出去了。包括在银行、电商平台等各个行业,都是可以广泛应用的。它可以有效提高客户互动的质量和效率。同时在类似数据可视化领域agent能够将原始数据转化为交互图表和图形,让数据分析变得更加有效和直观这对于类似市场分析、健康数据追踪等领域尤其重要。为理解大量复杂信息提供了一种新的方式。

我们大家都知道未来是AI的时代,但是呢很多人都会困惑说我如何去迎接AI时代,是学一堆AI工具怎么用吗,是练好提示词怎么写作吗,其实这些都是比较表面的一些东西,如果说打算投身到这个行业,我觉得agent是可以为大家提供一个选择的。个人来说,学习agent之后,可以结合自己的业务和长处去开发各种的agent来实现它业务的一个倍增,我们可以看到现在随着AI的发展,对这个专业人才需求也不断增加。

文章三大部分介绍

首先第一部分会深入了解AIGC行业,会从这个大模型的发展历程聊起介绍主流的大模型,讨论他们现在的不足,然后会引入微调和launching的解决方案,还会去拆解AIGC行业,从论文算法到应用去理解一些行业术语,最后我们会通过虚拟项目进行需求分析和技术选型,揭开后面的内容。

第二部分会深入这个launching的这个框架,通过学习launching的7大板块,系统的理解agent开发基础理论。比如说在本地环境如何运行launching,理解model IO的概念,掌握提示词模板的应用,还会构建大模型外脑这种知识库做增强检索、文本切分、下单数据库等等等等这样的一些内容。

最后第三部分通过一个完整的虚拟项目,把前面学到的知识付诸实践。从项目准备、产品分析、架构设计到开发实现过程。后面还有扩展的部分比如数字人、智能语音等等。

AI2.0时代应用开发者机会

大语言模型(LLM)基础与发展

LLM(Large Language Model)大语言模型是人工智能领域中一种强大的自然语言处理模型,其发展历史可以追溯到词向量、词嵌入技术的出现,逐步演进到对句子和文本的理解,最终实现了对复杂语境的全面理解和生成。

  1. 词向量与词嵌入:

    • 词向量是将单词映射到向量空间的技术,最早由Yoshua Bengio等人提出。这使得单词之间的语义关系能够以向量的形式被表示。
    • 词嵌入技术(Word Embeddings)通过训练将单词映射到连续的实值向量空间中,从而捕捉了单词之间的语义关系。Word2Vec、GloVe和FastText等算法为这一技术的发展做出了重要贡献。
  2. 句向量与全文向量:

    • 句向量技术是将整个句子映射到一个向量空间中,捕捉句子的语义信息。Doc2Vec和Skip-Thought Vectors是一些早期的方法,通过训练模型将句子映射到连续向量空间中。
    • 全文向量是将整个文档或文本片段表示为一个向量的技术,捕捉了文档的整体语义信息。这为模型理解文本上下文提供了基础。
  3. 理解上下文:

    • 随着深度学习技术的发展,神经网络模型开始在自然语言处理领域展现出强大的性能。特别是循环神经网络(RNN)和长短期记忆网络(LSTM)等模型,使得模型能够更好地理解文本的上下文信息。
    • Transformer模型的出现进一步提高了对文本上下文的理解能力,其自注意力机制允许模型在处理长文本时能够更好地捕捉到远距离的依赖关系,而不受长期依赖问题的困扰。
  4. 大模型介绍:

    • 随着硬件计算能力的提升和大规模数据集的可用性增加,研究人员开始尝试构建更大的语言模型。其中最著名的就是OpenAI的GPT系列(Generative Pre-trained Transformer),包括GPT、GPT-2、GPT-3等模型。这些模型利用了Transformer的架构,并通过大规模的预训练数据和参数数量的增加,实现了前所未有的语言理解和生成能力。
    • 这些大型语言模型可以通过预训练的方式学习语言的统计规律和语义信息,并在具体任务上进行微调,因此被广泛应用于文本生成、问答系统、机器翻译等领域,取得了令人瞩目的成果。

综上所述,LLM的发展史可以看作是从对单词到句子再到全文的理解能力逐步提升,最终通过大规模预训练的深度神经网络模型实现了对复杂语境的全面理解和生成。 

国内外主要LLM及特点介绍

 hugging face

提供简单易用的NLP模型和工具库,搞ai界的github。

Hugging Face – The AI community building the future.

大模型的不足以及解决方案

不具备记忆能力,上下文窗口的限制,实时信息更新慢,新旧知识难以区分,无法灵活操控外部系统,无法为领域问题,提供专业靠谱的答案。

AIGC产业拆解以及常见名词

aigc产业拆解

aigc常用名词 

应用级开发者应该如何拥抱AIGC 

这张这张图上,越往上他的整个难度大,门槛高,然后越往下,机会就会越多。

机会最少的是基座大模型,就是类似chatGPT、国内的百川智能这样的,特点就是消耗算力特别巨大,需要大量的资本来支持。做一次全量的训练的话现在可能在几千万美金,所以只有巨头和大资本是玩得起的。相应的来说的话,他的职业机会是比较少的。

再往下就是我们的行业垂直大模型,就是在所谓的在基座模型基础上去灌入一些行业的数据,在基础大模型上做微调,职业机会稍微多了一点。但是对于我们应用级开发者呢还是机会不是那么多。

再往下看就是所谓的AI原生应用,不管是ToB还是ToC的这块都有大量的机会。我们这些传统做互联网、科技公司、应用开发公司、科技创业公司、应用开发者都有大量的机会存在。它是一个比较重要的一个位置,也是未来一个爆发的赛道。就像苹果一样有自己的APP store。

所以说在这个时候其实是有大量的职业机会或者大量的这种应用开发的机会存在的,我们传统的应用开发者去快速转型去跟上这个赛道的一个绝佳的机会。有点像当年这个苹果刚发布APP store时候那个状态。可以说所有的应用,都值得用AI啊重新做一遍。

比如说AI加文旅,你计划做一次旅行,你的旅游的这个机器人会帮你找到适合你预算的酒店,然后智能体呢还会知道你你在一年中什么时候去旅行,根据他对你总是尝试这个新的目的地的了解或者你喜欢故地重游的行为的了解,他会向你建议旅游目的地,当他被询问的时候他智能就会根据你的兴趣和冒险的倾向为你推荐做可以做的事情,还能帮你预定你喜欢的餐厅。如果没有这样的一个AI场景的话,你现在做这些事情可能需要旅行社帮你去定制。但是呢使用了智能体加这个场景之后我们就可以解决。不远的未来我们每个人都会有自己的私人智能体助理。

agent开发这一个层面上,需要做哪些准备工作呢?或者说我们转型需要掌握一些什么东西。

1、首先就是要学习机器学习和深度学习的一些基础知识,大模型层面和行业模型层面有一个基础的知识准备。

2、需要有Python语言基础,这个方向大量的项目都是用Python来开发的

3、学会使用AI,例如开发工具和框架

4、应用开发是离不开行业场景和业务流程的,所以需要对行业的场景有一个深入的了解,抓到里面最关键的部分,可能成功的几率就会比较高

一、LangChain框架初识

LangChain是什么以及发展过程

LangChain是一个2022年10月25日开源的框架,其主要作用是帮助开发者更加高效、便捷地在实际应用程序中整合和利用大型语言模型(LLMs),例如GPT-3等,并且扩展这些模型的能力使其能够与外部数据源、API和其他服务进行交互。通过LangChain,开发者可以构建上下文感知的应用程序,使得语言模型不仅能基于自身训练内容生成回复,还能结合实时信息和历史上下文进行推理和决策。其特点包括模块化组件设计、支持数据感知的链式调用结构以及增强的语言模型代理功能,从而简化了开发流程并促进了基于LLM的创新型应用的诞生,如聊天机器人、智能问答系统、搜索引擎等高级NLP应用场景。

LangChain是react论文论文的落地实现,那么这个react表示的是什么,react其实是reason加act的一个合并缩写,也就是推理加行动。那么这篇论文啊为什么是launching的基础,它有什么特别。

人类的这个AI的这个方面,我们终极的目标是希望实现AGI,就是所谓的通用AI,那么在通用AI之前我们现在已经走到了大模型这个阶段,大模型要实现像人脑一样的思考首先就是要反过来想人类是怎么解决问题的,人类之所以拥有独一无二的认知能力,重要原因是我们不会采取无意义的行动。人类行动的背后都是有原因的都是有一个逻辑链条。我们人类通过行动,去获取外部世界的信息,这些信息呢又可以让我们形成更加完善的逻辑链条,进而调整后续的行动。

但是一个AI的程序它天然不具备这样的能力,那比如说我们跟open AI交互的时候,很多时候其实是一个直接的输入输出的一个关系,他没有这样的一个思维链,也没有这样的一个逻辑链。模型会给一些推理过程但是答案也是错的,因为它只推理没有获得外部信息,他这种情况下做的最好的只能是把他预训练时候底膜里面的东西知识拿出来去关联,那关联不到他就会瞎编就会出现幻觉。

那么react也就是这个reason加act,这样的一个范式就是想驱动LLM大模型来用类似这样的方法去工作,可以让大模型像人脑一样去思考。

LangChain的github地址:langchain-ai/langchain: 🦜🔗 Build context-aware reasoning applications (github.com)

LangChain能做什么它有什么能力

LangChain的核心思想是将不同的功能组件连接起来形成一个链式结构,每个组件都可以独立运作或与其他组件协作,这些组件包括但不限于:提示模板(Prompt Templates)、大型语言模型(LLMs)、代理(Agents)、短期/长期记忆(Memory)等。

LLMs & Prompt

提供了目前市面上几乎所有 LLM 的通用接口,同时还提供了 提示词 的管理和优化能力,同时也提供了非常多的相关适用工具,以方便开发人员利用 LangChain与 LLMs 进行交互。

Chains

LangChain 把 提示词、大语言模型、结果解析封装成 Chain,并提供标准的接口,以便允许不同的Chain形成交互序列,为 AI原生应用提供了端到端的 Chain

Retrieval Augemented Generation

检索增强生成式 是一种解决预训练语料数据无法及时更新而带来的回答内容陈旧日的方式。LangChain提供了支持 检索增强生成式 的 Chain,在使用时,这些 Chain 会首先与外部数据源进行交互以获得对应数据,然后再利用获得的数据与 LLMs 进行交互。典型的应用场如:基于特定数据源的问答机器人。

Agent

对于一个任务,代理主要涉及让 LLMs 来对任务进行拆分、执行该行动、并观察执行结果,代理 会重复执行这个过程,直到该任务完成为止。LangChain 为 代理 提供了标准接口,可供选择的代理,以及一些端到端的代理的示例。

Memory

指的是 chain 或 agent 调用之间的状态持久化。LangChain 为 内存 提供了标准接口,并提供了一系列的 内存 实现。

Evaluation

LangChain 还提供了非常多的评估能力以允许我们可以更方便的对 LLMs 进行评估。

LangChain的优势和劣势

优势 
1、大语言模型调用能力,支持多平台多模型调用,为用户提供灵活选择。

LangChain的核心优势之一是其对多个大型语言模型(LLMs)平台的兼容性,它允许开发人员无缝地集成和切换不同的模型,如OpenAI、Cohere或Hugging Face等。这意味着开发者可以根据项目需求选择最合适的模型,而不是被特定API所限制,极大地增强了应用的灵活性和可扩展性。

2、轻量级SDK(python、javascript)将LLMs与传统编程语言集成在一起。

通过提供Python和JavaScript等编程语言的轻量级软件开发工具包(SDK),LangChain简化了将LLMs整合到传统应用程序中的过程。这种集成方式降低了开发门槛,使得非AI专家也能相对容易地利用强大的语言模型功能,构建复杂的应用程序逻辑。

3、多模态支持,提供多模态数据支持,如图像、音频等。

LangChain不仅限于处理文本数据,还能够支持多模态输入输出,例如处理图像、音频和其他类型的数据。这一特性使得基于LangChain构建的应用可以理解并生成多媒体内容,从而实现更加丰富、智能的交互体验。

劣势
1、学习曲线相对较高。

尽管LangChain旨在简化LLM的应用开发,但由于其架构设计较为先进且具有高度模块化的特点,对于初次接触该框架的开发者来说,理解和掌握如何配置、串联各个组件以达到预期效果可能需要一定的时间投入和学习成本。

2、文档相对不完善,官方文档不是很完善。

刚开始的时候可能是因为赶进度的原因,他的文档质量非常低,基本上得去看他的原代码才能明白是做什么的,但是最新的版本发布以后文档的质量水平有很大的提升了。

3、缺乏大型工业化应用实践。

缺乏大型的工业化应用,也就说没有哪特别大的厂商在用它,但是有很多中小项目在用。

LangChain安装以及测试实例

pip安装LangChain
pip install --upgrade langchain -i https://pypi.org/simple 
conda安装LangChain
conda install langchain -c conda-forge
测试示例

我使用的是阿里云的通义千问大模型,使用openai、百度文心都可以,这里只是为了学习测试

调用官方sdk样例
from http import HTTPStatus
import dashscope#api_key需要自己申请,申请地址阿里云 https://bailian.console.aliyun.com/
dashscope.api_key=""
def sample_sync_call():prompt_text = '用萝卜、土豆、茄子做饭,给我个菜谱。'resp = dashscope.Generation.call(model='qwen-turbo',prompt=prompt_text)# The response status_code is HTTPStatus.OK indicate success,# otherwise indicate request is failed, you can get error code# and message from code and message.if resp.status_code == HTTPStatus.OK:print(resp.output)  # The output textprint(resp.usage)  # The usage informationelse:print(resp.code)  # The error code.print(resp.message)  # The error message.sample_sync_call()
 使用langchain库调用
#!pip install langchain langchainhub dashscope
from langchain_core.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
from langchain_community.llms import Tongyi
from langchain import hub
import osprompt1 = ChatPromptTemplate.from_template("""{input}""")
os.environ["DASHSCOPE_API_KEY"] = ""
llm = Tongyi()chain_one = LLMChain(llm=llm,prompt=prompt1,verbose=False
)
print(chain_one.invoke("用萝卜、土豆、茄子做饭,给我个菜谱。"))

LangChain的核心模块与实操

模型IO大语言模型的交互接口

langchain中,“模型IO大语言模型的交互接口”是指一套标准化的方法和结构,用于与各种大型语言模型(Large Language Models, LLMs)进行交互。这些接口旨在提供一种通用的方式来封装不同LLM服务提供商(如OpenAI、Cohere、Hugging Face等)的具体API细节,使开发者能够以一致的方式调用不同模型的功能,而不必关心底层实现的差异。

prompts模板
概念

LangChain 提供了一套用于构建和操作提示(prompts)的模板系统,旨在帮助用户更高效、灵活地与各种大语言模型(LLMs)交互。Prompts 模板旨在标准化、模块化以及自动化提示的设计过程,以优化模型输出的质量和一致性。

PromptTemplate: 这是最基础的提示模板类,用于定义一个可复用的、结构化的文本模板,其中可能包含占位符或变量。模板可以包含静态文本和动态部分,动态部分通过指定的输入变量(如 foo 和 bar)进行填充。

StringPromptTemplate: 特定类型的提示模板,专用于处理字符串形式的模板。它可能提供了额外的方法或特性,便于直接操作文本模板。

PipelinePromptTemplate: 这种模板允许将多个独立的提示按照特定顺序组成一个“流水线”,每个步骤可能使用不同的模型或处理逻辑,使得复杂任务能够通过一系列有序的子任务来完成。

 关于提示词

好的提示词能够使语言模型更加有效准确的回答

PromptTemplate字符模板

简单的字符替换

from langchain.prompts import PromptTemplateprompt = PromptTemplate.from_template("你是一个起名大师,帮我起1个具有{county}特色的男孩名字")
prompt.format(county="法国")
ChatPromptTemplate模板

生成ai对话上下文背景,也就是先做个铺垫,可以使ai更加优化准确的回答

from langchain.prompts import ChatPromptTemplatechat_template = ChatPromptTemplate.from_messages([("system","你是一个起名大师,你的名字叫{name}"),("human","你好{name},你感觉如何?"),("ai","你好!我状态非常好!"),("human","{user_input}"),]
)
chat_template.format_messages(name="陈大师",user_input="你叫什么名字呢?")
 StoryPromptTemplate自定义模板
from langchain.prompts import PromptTemplate, StringPromptTemplate
from pydantic import BaseModel
from typing import List
from langchain_core.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
from langchain_community.llms import Tongyi
from langchain import hub
import os# 定义一个用于故事创作的自定义输入模型,包括标题、角色、情节点等信息
class StoryInput(BaseModel):title: strcharacters: List[str]plot_points: List[str]# 定义自定义提示模板
class StoryPromptTemplate():# 基础提示模板字符串base_prompt: str = "撰写一篇标题为《{title}》的短篇故事,故事中包含以下角色:{characters}。故事应包含以下情节点:{plot_points}。请以一句引人入胜的开场句开始故事。"def render(self, story_input: StoryInput) -> str:"""使用提供的故事输入渲染自定义提示。"""formatted_characters = ", ".join(story_input.characters)formatted_plot_points = "\n".join(f"- {point}" for point in story_input.plot_points)return self.base_prompt.format(title=story_input.title,characters=formatted_characters,plot_points=formatted_plot_points,)# 创建一个故事输入实例
story_input = StoryInput(title="神秘森林",characters=["艾芙琳", "加伦", "智者猫头鹰"],plot_points=["艾芙琳发现一张通往隐藏林地的古老地图。","加伦警告森林周围存在一股黑暗诅咒。","智者猫头鹰揭示了解除诅咒的秘密。",],
)# 创建自定义提示模板实例
story_prompt = StoryPromptTemplate()# 渲染并打印出最终的提示
final_prompt = story_prompt.render(story_input)prompt1 = ChatPromptTemplate.from_template("""{input}""")
os.environ["DASHSCOPE_API_KEY"] = "sk-cf5d02e81ea44717a35e22c72e4c0dc1"
llm = Tongyi()chain_one = LLMChain(llm=llm,prompt=prompt1,verbose=False
)
result = chain_one.invoke(final_prompt)
text_content = result['text']
print(text_content)

 持续更新。。。


http://www.ppmy.cn/news/1405433.html

相关文章

每日三个JAVA经典面试题(三十四)

1.Mybatis的一级、二级缓存 MyBatis提供了两种缓存机制来提高查询效率:一级缓存和二级缓存。 一级缓存(Session级别) 作用范围:一级缓存是基于SqlSession的。这意味着,如果你在同一个SqlSession中执行两次相同的查询…

数据可视化之折线图plot

import matplotlib.pyplot as plt plt.rcParams[font.family] [SimHei]# 查看matplotlibde文件地址# import matplotlib # print(matplotlib.matplotlib_fname()) # plt.rcParams[font.sans-serif] [SimHei] # 准备数据time [20200401,20200402,20200403,20200404,20200405…

nginx与tomcat的区别?

关于nginx和tomcat的概念 网上有很多关于nginx和tomcat是什么东西的定义,我总结了一下: tomcat是Web服务器、HTTP服务器、应用服务器、Servlet容器、web容器。 Nginx是Web服务器、HTTP服务器、正向/反向代理服务器,。 这里有两个概念是交叉的&#xff…

Springboot自动获取接口实现

ServiceLoader加载接口实现步骤 1.编写接口 public interface CommunicationAdapterFactory {void setKernel(LocalKernel kernel);boolean providesAdapterFor(Vehicle vehicle);BasicCommunicationAdapter getAdapterFor(Vehicle vehicle); }2.编写实现 // 实现类 1 publi…

ElasticSearch的常用数据类型

常见的数据类型 Text类型(文本数据类型) 用于索引全文值的字段,例如电子邮件的正文或产品的描述。这些字段是analyzed,也就是说,它们通过分析器传递,以便 在被索引之前将字符串转换为单个术语的列表。通过…

【算法】字典序超详细解析(让你有一种相见恨晚的感觉!)

目录 一、前言 二、什么是字典序 ? ✨字典序概念 ✨深度理解字典序 ✨字典序排序的重要性和应用场景 三、常考面试题 ✨ 下一个排列 ✨ 字典数排序 ✨ 字典序最小回文串 四、共勉 一、前言 经常刷算法题的朋友,肯定会经常看到题目中提到 字典序 这样…

on-my-zsh 命令自动补全插件 zsh-autosuggestions 安装和配置

首先 Oh My Zsh 是什么? Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式。它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作。给我们一种全新的方式使用命令行。…

JWFD流程图转换为矩阵数据库的过程说明

在最开始设计流程图的时候,请务必先把开始节点和结束节点画到流程图上面,就是设计器面板的最开始两个按钮,先画开始点和结束点,再画中间的流程,然后保存,这样提交到矩阵数据库就不会出任何问题,…

视频监控/云存储/磁盘阵列/AI智能分析平台EasyCVR集成时调用接口报跨域错误是什么原因?

EasyCVR视频融合平台基于云边端架构,可支持海量视频汇聚管理,能提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等视频服务。平台兼容性强,支持多协议、多类型设备接入,包括:国标G…

蓝色wordpress外贸建站模板

蓝色wordpress外贸建站模板 https://www.mymoban.com/wordpress/7.html

Android 手机部署whisper 模型

Whisper 是什么? “Whisper” 是一个由OpenAI开发的开源深度学习模型,专门用于语音识别任务。这个模型能够将语音转换成文本,支持多种语言,并且在处理不同的口音、环境噪音以及跨语言的语音识别方面表现出色。Whisper模型的目标是提供一个高效、准确的工具,以支持自动字幕…

python vtk获取模型角度

在Python中,使用VTK库获取3D模型的角度通常涉及到计算模型的几何参数,如物体的最小外接矩形或边界盒子。以下是一个简单的例子,展示如何使用VTK计算3D模型的边界盒子,从而获取模型的角度: import vtk# 创建一个VTK的PolyData对象,并添加模型数据 polyData = vtk.vtkPoly…

Rust所有权和Move关键字使用和含义讲解,以及Arc和Mutex使用

Rust 所有权规则 一个值只能被一个变量所拥有,这个变量被称为所有者。 一个值同一时刻只能有一个所有者,也就是说不能有两个变量拥有相同的值。所以对应变量赋值、参数传递、函数返回等行为,旧的所有者会把值的所有权转移给新的所有者&#…

Navicat for MySQL 15免费注册方法

一、效果图如下: 注:此方法仅用于非商业用途,请勿传播,否则后果自负。 二、下载安装 下载安装包,分为32位和6位,下载文件名:Navicat for MySQL 15.zip(https://download.csdn.net/…

camera sensor基础概念-1

1.帧率计算公式 FPS vt_pix_clk/framelength/linelength 2. outputpixelclock的计算公式 outputpixelclock mipi_output_speed*lanecounts/bits-per-pixel outputpixelclock 也叫op_clk。是表示每秒有多少数据从camera sensor通过mipi lane传输到VFE。mipi_output_speed …

this.$route.back()时的组件缓存

1.this.$route.back()回到上一个路径会重新加载 跳转时,前一个路由的内容会被销毁,当回来时,重新创建树,组件内有保存了距离,没有一开始是0. 2.keep-alive写在router-view上面,这个地方所代表的路由会被保存,因此可以写在上面,保存,当返回时,如果是这个路由,里面的内容是一样…

【机器学习】科学库使用第3篇:机器学习概述,学习目标【附代码文档】

机器学习(科学计算库)完整教程(附代码资料)主要内容讲述:机器学习(常用科学计算库的使用)基础定位、目标,机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小…

Linux非管理员安装ninja,解决RuntimeError: Ninja is required to load C++ extensions错误

最近在复现代码的时候,需要用到C环境进行编译,这就少不了ninja,但是因为服务器是实验室公用的,所以一般没有管理员权限,所以就很难办!!!! 下面是非管理员权限安装ninja&a…

利用甘特图实现精细化项目管控

在项目管理中,通过精细化管控,项目经理能够有效规划、监督和协调各项任务,从而最大限度控制风险,优化资源配置,并确保按时、按质、按量完成项目目标。而在众多项目管理工具中,甘特图无疑是实现精细化项目管控的利器。zz-plan 是一个非常好用的在线甘特图制作工具,一…

EOCR3EZ-05CUH施耐德综合漏电保护继电器

EOCR3EZ-05CUH施耐德综合漏电保护继电器由承德尚越电子代理销售,该产品是施耐德升级款保护器产品,具有过电流,缺相,堵转,逆相,相不平衡,漏电,预报警和密码设置功能。 是韩国三和生产…