人工智能和机器学习5 (复旦大学计算机科学与技术实践工作站)语言模型相关的技术和应用、通过OpenAI库,调用千问大模型,并进行反复询问等功能加强

本文主要是介绍人工智能和机器学习5 (复旦大学计算机科学与技术实践工作站)语言模型相关的技术和应用、通过OpenAI库,调用千问大模型,并进行反复询问等功能加强,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

       在这个日新月异的AI时代,自然语言处理(NLP)技术正以前所未有的速度改变着我们的生活方式和工作模式。作为这一领域的佼佼者,OpenAI不仅以其强大的GPT系列模型引领风骚,还通过其开放的API接口,让全球开发者能够轻松接入并探索AI的无限可能。今天,我将带大家一起探索如何使用OpenAI库来调用“千问大模型”(这里假设的模型名,实际中可能是GPT-3、GPT-4或其他类似的高级语言模型),并通过一系列编程技巧实现反复询问、上下文记忆等功能加强,从而构建出更加智能、流畅的对话体验。

一、环境准备

       首先,确保你的开发环境已经安装了Python,并配置了必要的库。对于OpenAI的API调用,你需要安装openai库。可以通过pip命令轻松完成安装:

pip install openai

主要讲语言模型相关的技术和应用。
和之前的课不衔接,之前有地方还没理解的同学也可以直接听。大家有安装任意版本python环境即可,提前安装openai包,命令是 pip install openai
只用这一个包就可以了
另外大家注册下 通义千问:通义 (aliyun.com)icon-default.png?t=N7T8https://tongyi.aliyun.com/qianwen/ 和 阿里云 平台:阿里云-计算,为了无法计算的价值 (aliyun.com)icon-default.png?t=N7T8https://www.aliyun.com/并用成年人身份证实名认证阿里云平台。

接下来,你需要在OpenAI的官方网站注册账号,并获取你的API密钥(API Key)。这个密钥将用于你的Python脚本中,以便能够调用OpenAI的API。

不用代理,搜索“通义千问”:(点击如下图会打开通义千问官网,我们不用点击直接搜索)

找到通义千问|模型服务灵积如何定制通义千问模型_模型服务灵积(DashScope)-阿里云帮助中心 (aliyun.com)icon-default.png?t=N7T8https://help.aliyun.com/zh/dashscope/developer-reference/finetune-qwen?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.148.2fe62f3dvLEJJc&scm=20140722.S_help@@%E6%96%87%E6%A1%A3@@2399895._.ID_help@@%E6%96%87%E6%A1%A3@@2399895-RL_%E9%80%9A%E4%B9%89%E5%8D%83%E9%97%AE-LOC_llm-OR_ser-V_3-RE_new2@@cardNew-P0_13

点击开发参考,按照教程先去开通DashScope并创建获取API-KEY如何获取通义千问API的KEY_模型服务灵积(DashScope)-阿里云帮助中心 (aliyun.com)icon-default.png?t=N7T8https://help.aliyun.com/zh/dashscope/developer-reference/acquisition-and-configuration-of-api-key?spm=a2c4g.11186623.0.0.270c5796VLjNWG

开通DashScope

需要在开通DashScope后,才可以获得API-KEY,开通DashScope请参考以下步骤:

1、访问DashScope管理控制台:前往控制台。

2、点击“未开通”,在控制台“总览”页下,单击去开通

3、阅读服务协议,确认无误后单击立即开通

4、开通完成:

获取API-KEY

按照以下步骤获取DashScope的API-KEY。

安全提示:

  1. 访问DashScope管理控制台API-KEY管理页面:前往API-KEY管理,单击创建新的API-KEY

  2. 系统创建生成API-KEY,并在弹出的对话框中展示,您可以单击复制按钮将API-KEY的内容复制保存。(sk-xx5d4b8c7a9d42e6a31965f0632fxxxx)实在忘记了,就删了重新建一个吧~

  3. 新建一个tyqw.py文件:把自己的API-KEY输入进去,留着一会备用,(阿里云这个API-KEY既可以当作用户又可以当作密码用)

    api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxx'

  4. 复制并在安全的地方保存API-KEY后,单击我已保存,关闭。此次创建的API-KEY可立即用于调用DashScopeAPI,对API-KEY的后续操作均可在当前的API-KEY管理页面进行。 

二、基本调用示例

API platform | OpenAIicon-default.png?t=N7T8https://openai.com/api/在开始之前,让我们先通过一个简单的例子来展示如何使用OpenAI库发送请求到千问大模型:

import openai  # 设置你的API密钥  
openai.api_key = "YOUR_API_KEY_HERE"  # 发送请求到模型  
response = openai.Completion.create(  engine="text-davinci-003",  # 假设使用GPT-3的某个版本,实际应根据千问大模型的名称调整  prompt="请问今天天气如何?",  max_tokens=100,  temperature=0.5,  top_p=1.0,  frequency_penalty=0.0,  presence_penalty=0.0  
)  # 打印模型回复  
print(response['choices'][0]['text'])

如何定制通义千问模型_模型服务灵积(DashScope)-阿里云帮助中心 (aliyun.com)icon-default.png?t=N7T8https://help.aliyun.com/zh/dashscope/developer-reference/finetune-qwen?spm=a2c4g.11186623.0.0.75735796iyp8e6通义千问是阿里云自主研发的超大规模语言模型,具备多领域、多任务的自然语言处理能力。它能进行创作(如写故事、公文等)、编写代码、翻译多种语言、文本润色和摘要、角色扮演对话及制作图表等。该模型支持fine-tune,提供多种版本如qwen-turbo、qwen-7b-chat及qwen-72b-chat,以适应不同需求。

在定制模型时,需要准备JSON格式的训练数据,包括用户与助手的对话内容。数据准备支持messages、prompt-completion及human-assistant(已弃用)三种格式。模型训练可通过设置超参数如n_epochs、batch_size和learning_rate来优化。

使用通义千问模型进行定制时,有限制条件如同时只能运行一个定制任务,且最多可创建五个定制任务(不包括失败及取消的)。定制任务的状态包括准备中、运行中、成功、失败和取消。若任务失败,可通过错误码判断原因并寻求解决方案。

如果之前openai没有按转好的同学可以试着安装特定版本openai1.35.9及以上的版本,找到适合自己的版本安装好就好,

pip install openai==1.35.9

(万能解决办法)更换 PyPI 源
  • pip 默认使用 PyPI 的官方源,但你可以配置它使用其他镜像源,这些源可能位于更接近你的地理位置的服务器上,从而提供更好的连接速度。
  • 你可以使用国内的镜像源,如阿里云、清华大学、中国科技大学等提供的 PyPI 镜像。
  • 使用以下命令来配置 pip 使用特定的镜像源(以阿里云为例):
pip install -i https://mirrors.aliyun.com/pypi/simple/ openai

快速入门 | OpenAI 官方帮助文档中文版 (xiniushu.com)icon-default.png?t=N7T8https://openai.xiniushu.com/docs/quickstart介绍 - OpenAI(ChatGPT) (apifox.cn)icon-default.png?t=N7T8https://openai.apifox.cn/回到阿里云的"模型广场“(开源)———选择第一个<通义千问>点击进去就好了,

三、通义千问模型介绍

通义千问是由阿里云自主研发的大语言模型,用于理解和分析用户输入的自然语言,在不同领域和任务为用户提供服务和帮助。您可以通过提供尽可能清晰详细的指令,来获取符合您预期的结果。

模型体验

您可以在模型体验中心试用通义千问模型,具体操作,请参见模型体验中心。

应用场景

通义千问凭借其强大的语言处理能力,为用户带来高效、智能的语言服务体验,其能力包括但不限于文字创作、翻译服务和对话模拟等,具体应用场景如下:

  • 文字创作:撰写故事、公文、邮件、剧本和诗歌等。

  • 文本处理:润色文本和提取文本摘要等。

  • 编程辅助:编写和优化代码等。

  • 翻译服务:提供各类语言的翻译服务,如英语、日语、法语或西班牙语等。

  • 对话模拟:扮演不同角色进行交互式对话。

  • 数据可视化:图表制作和数据呈现等。通义千问模型是什么_模型服务灵积(DashScope)-阿里云帮助中心 (aliyun.com)icon-default.png?t=N7T8https://help.aliyun.com/zh/dashscope/developer-reference/model-introduction?spm=a2c4g.11186623.0.0.351246c1qCKhJB#BQnl3

四、模型概览

以下是通义千问模型的商业版。相较于开源版,商业版具有最新的能力和改进。

通义千问模型商业版概览

通义千问模型商业版提供了多个针对不同任务复杂度和性能需求的模型选项,包括通义千问-Max、通义千问-Plus和通义千问-Turbo,每个系列均持续优化并引入最新能力。

通义千问-Max

  • 定位:系列中效果最优的模型,专为处理复杂、多步骤的任务设计。
  • 版本与快照:提供最新版本及历史快照(如qwen-max-0428、qwen-max-0403等),确保用户可根据需求选择固定版本。
  • 性能参数:支持长上下文(如qwen-max-longcontext达30k),高输入输出限制(如最大输入6k,最大输出2k),适合深度交互场景。
  • 成本:输入成本为每千Token 0.04元,输出成本为每千Token 0.12元,提供100万Token免费额度(有效期视开通服务而定)。

通义千问-Plus

  • 定位:能力均衡,推理效果和速度介于Max与Turbo之间,适合中等复杂任务。
  • 更新亮点:如qwen-plus-0806版本,集中提升了语言一致性、修复了中英文混答问题、减少了回复重复,并显著增强了数学、阅读理解、表格理解和推理能力,同时提升了对系统指令的响应能力。
  • 性能参数:高上下文长度(如131072)和输入输出限制(如最大输入128k,最大输出8k),满足广泛需求。
  • 成本:输入成本为每千Token 0.004元,输出成本为每千Token 0.012元,同样提供100万Token免费额度。

通义千问-Turbo

  • 定位:系列中速度最快、成本最低的模型,适合处理简单任务。
  • 版本与快照:包括最新版本及历史快照(如qwen-turbo-0624),便于用户选择。
  • 性能参数:虽然上下文长度和输入输出限制相对较低(如最大输入6k,最大输出1.5k),但足以应对日常简单查询和交互。
  • 成本:输入成本为每千Token 0.002元,输出成本为每千Token 0.006元,同样享有100万Token免费额度。

总结:通义千问商业版模型系列覆盖了从简单到复杂的不同任务需求,通过持续的技术更新和性能优化,为用户提供高效、经济的自然语言处理解决方案。用户可根据具体应用场景和预算限制,灵活选择合适的模型版本。

小试牛刀1:
from openai import OpenAIbase_url = 'https://dashscope.aliyuncs.com/compatible-mode/v1'
api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxx'  # 填自己的API_KEY
client = OpenAI(base_url=base_url, api_key=api_key)
model = 'qwen-plus'messages = [{"role": "system", "content": '你是一个能力很强的AI'},{"role": "user", "content": '推荐几部电影'},
]stream = client.chat.completions.create(model=model,messages=messages,stream=True,
)result = ''
for chunk in stream:text = chunk.choices[0].delta.contentif text is not None:result += textprint(text, end='')
 

这段代码尝试通过模拟OpenAI的API客户端与一个自定义或第三方服务(通过https://dashscope.aliyuncs.com/compatible-mode/v1这个URL访问)进行交互,以执行聊天机器人风格的文本生成任务。尽管代码中使用了OpenAI这个类名,但很可能这并不是直接来自OpenAI官方库的类,而是为了适应特定服务而自定义或修改过的。

  1. 初始化客户端:代码通过传递一个基础URL和API密钥来创建一个OpenAI客户端实例。这个基础URL指向了阿里云的一个服务,可能是为了兼容或测试目的而设置的。

  2. 设置模型和消息:指定了要使用的模型(qwen-plus,这很可能是一个自定义或特定于服务的模型)和初始聊天消息(包括一个系统消息和一个用户消息,用户消息请求推荐电影)。

  3. 发起聊天请求:使用客户端的chat.completions.create方法(尽管这个方法路径在OpenAI官方库中可能不同)来发起聊天请求。通过设置stream=True,请求以流式方式接收响应,这允许在生成大量文本时逐步处理结果。

  4. 处理响应:代码遍历流式响应,并尝试从每个响应块(chunk)中提取生成的文本。然而,提取文本的路径(chunk.choices[0].delta.content)是特定于这个服务或API的,并不符合OpenAI官方API的响应格式。对于每个非空的文本块,它都被添加到结果字符串中并打印出来。

总结来说,这段代码是一个使用自定义或第三方服务进行聊天机器人文本生成的示例,尽管它使用了类似OpenAI API的术语和方法名,但实际上是针对特定服务进行适配的。

小试牛刀2:
from openai import OpenAIbase_url = 'https://dashscope.aliyuncs.com/compatible-mode/v1'
api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxx'  # 填自己的API_KEY
client = OpenAI(base_url=base_url, api_key=api_key)model = 'qwen-max'messages = [{"role": "system", "content": '你是一个能力很强的AI'},]while True:user_input = input('\n\nuser: \n')if user_input.strip().lower()== 'exit':breakmessages.append({'role': 'user','content': user_input})stream = client.chat.completions.create(model=model,messages=messages,stream=True,)print('\nAssistant:')result =''for chunk in stream:text = chunk.choices[0].delta.contentif text is not None:result += textprint(text, end='')messages.append({'role': 'assistant','content': result})

用Gradio写一个大模型对话的网页页面

这段代码试图使用类似OpenAI的API(但实际上通过自定义的base_urlapi_key连接到了一个非OpenAI的服务,这里看起来像是阿里云的一个兼容模式服务dashscope.aliyuncs.com),来创建一个简单的文本聊天机器人。不过,有几个关键点需要注意,因为代码中有一些假设和潜在的错误。

代码简述

  1. 导入和初始化
    • 从假定的openai库中导入OpenAI类(但通常OpenAI的库是openai,这里可能是自定义的或者是对实际库的误解)。
    • 设置自定义的base_urlapi_key来连接到非标准的API服务。
    • 创建一个OpenAI类的实例client,用于与API服务交互。
  2. 设置初始对话
    • 定义了一个model变量,这里假设为'qwen-max',这看起来像是自定义模型或服务的名称。
    • 初始化一个messages列表,包含一个系统消息,告诉AI它的角色和能力。
  3. 用户输入循环
    • 使用一个无限循环来不断获取用户输入。
    • 如果用户输入exit(不区分大小写),则退出循环。
    • 将用户的输入添加到messages列表中,标记为'user'角色。
  4. 与AI交互
    • 使用client.chat.completions.create方法(这假设是API服务提供的一个方法,用于生成对话的完成)发送当前的对话历史(messages列表)到服务。
    • 设置stream=True,这可能意味着服务将以流的形式返回结果,允许逐步处理大型响应。
    • 遍历返回的流,提取每个块(chunk)中的第一个选择(choices[0])的增量内容(delta.content),并将其拼接成完整的响应。
    • 打印AI的响应,并将该响应作为AI('assistant'角色)的消息添加到messages列表中。

潜在问题和注意事项

  • 库和API的兼容性:代码假设存在一个与OpenAI API相似的openai库,但实际上使用的是阿里云的服务。这要求该服务确实提供了类似的方法和响应结构。
  • API的响应结构:代码假设每个chunk都有一个choices列表,且列表的第一个元素(choices[0])有一个delta.content属性。这必须与服务实际返回的响应结构相匹配。
  • 错误处理:代码中没有错误处理逻辑,如网络错误、API限制、无效的API密钥等。
  • 安全性:硬编码的api_key可能带来安全风险,特别是如果代码被公开或泄露。
  • 无限循环:除非用户输入exit,否则循环将无限进行,这可能导致资源耗尽或其他问题。
  • API服务的限制:频繁请求API可能会受到速率限制或其他限制,这需要在代码中适当处理。
  • 代码的可读性和维护性:使用更具描述性的变量名和注释可以帮助提高代码的可读性和维护性。

五、How to Create a Chatbot with GradioCreating A Chatbot Fast (gradio.app)icon-default.png?t=N7T8https://www.gradio.app/guides/creating-a-chatbot-fast

(万能解决办法)使用镜像源

由于直接访问 PyPI 有时可能很慢或不稳定,你可以尝试使用国内的镜像源来加速包的下载。例如,你可以使用清华大学、阿里云等提供的镜像。

你可以通过修改 pip 的配置文件(pip.conf 或 pip.ini)来设置镜像源,或者使用命令行参数来临时指定镜像源。例如,使用清华大学的 pip 镜像源安装 gradio:

pip install gradio -i https://pypi.tuna.tsinghua.edu.cn/simple

这个命令会告诉 pip 从清华大学的镜像源下载 gradio 包及其依赖。 

解释-下CNN的原理,详细点:

举个简单的使用例子(栗子):

千问封装:
写一篇科幻小说
from openai import OpenAIdef qwen(prompt):base_url = 'https://dashscope.aliyuncs.com/compatible-mode/v1'api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'  # 填自己的API_KEYmodel = 'qwen-max'client = OpenAI(base_url=base_url,api_key=api_key)messages = [{"role": "system", "content": '你是一个能力很强的AI'},{"role": "user", "content": prompt},]stream = client.chat.completions.create(model=model,messages=messages,stream=True,)result = ''for chunk in stream:text = chunk.choices[0].delta.contentif text is not None:result += textprint(text, end='')return resultif __name__=='__main__':qwen('写一篇科幻小说')

大模型对话网页版完整代码:
from openai import OpenAI
import gradio as grbase_url = 'https://dashscope.aliyuncs.com/compatible-mode/v1'
api_key = 'sk-xxx'  # 填自己的API_KEY
client = OpenAI(base_url=base_url, api_key=api_key)
model = 'qwen-max'def predict(message, history):print('\n\nUser:')print(message)messages = []for human, assistant in history:messages.append({"role": "user", "content": human})messages.append({"role": "assistant", "content": assistant})messages.append({"role": "user", "content": message})stream = client.chat.completions.create(model=model,messages=messages,stream=True,)print('\nAssistant:')result = ''for chunk in stream:text = chunk.choices[0].delta.contentif text is not None:result += textprint(text, end='')yield resultgr.ChatInterface(predict).launch()

这段代码试图结合使用 Gradio 库来创建一个聊天界面,以及一个自定义的 OpenAI 客户端(尽管这里的 OpenAI 类很可能是虚构的或来自一个非官方的库,因为标准的 OpenAI Python SDK 通常不使用 OpenAI 作为类名,而是使用 openai 模块),以与某个自定义的聊天模型(在这个例子中是 'qwen-max')进行交互。不过,有几个问题和潜在的误解需要澄清。

代码简述

  1. 导入和初始化
    • 导入 Gradio 库和(假设的)OpenAI 类。
    • 设置连接到自定义 API 服务的 base_url 和 api_key
    • 创建一个 OpenAI 类的实例 client,用于与 API 交互。
    • 定义要使用的模型名称 model
  2. 定义预测函数
    • predict 函数接收两个参数:message(当前用户的消息)和 history(之前的对话历史,作为 (human, assistant) 对的列表)。
    • 函数内部,首先打印出用户的消息。
    • 然后,它创建一个空的 messages 列表,用于构建发送给 API 的完整对话历史。
    • 遍历 history,将每对 (human, assistant) 消息添加到 messages 列表中,分别标记为 'user' 和 'assistant' 角色。
    • 将当前用户的消息也添加到 messages 列表中。
    • 使用 client.chat.completions.create 方法(这假设是 API 提供的一个方法)发送对话历史到服务,并设置 stream=True 以逐步接收响应。
    • 遍历返回的流,拼接 AI 的响应,并实时打印和通过生成器 yield 返回(但这里的使用方式可能不符合 Gradio 的预期,因为 Gradio 通常期望一个最终的结果,而不是一个生成器)。
  3. 创建和启动 Gradio 聊天界面
    • 使用 gr.ChatInterface(predict) 创建一个聊天界面,该界面将使用 predict 函数作为其后端。
    • 调用 .launch() 方法启动聊天界面。

潜在问题和注意事项

  • OpenAI 类的使用:如上所述,这里的 OpenAI 类很可能是虚构的或来自非标准库。标准的 OpenAI Python SDK 使用的是 openai 模块,而不是 OpenAI 类。
  • 生成器的使用:在 Gradio 的上下文中,predict 函数应该返回一个完整的结果,而不是一个生成器。Gradio 不会自动处理生成器,因此这种方式可能不会按预期工作。
  • API 响应结构:代码假设了 API 响应的特定结构(如 chunk.choices[0].delta.content),这必须与 API 实际返回的响应结构相匹配。
  • 安全性:硬编码的 api_key 可能导致安全风险。
  • 错误处理:代码中没有错误处理逻辑,如网络错误、API 限制等。
  • API 服务的限制:频繁请求 API 可能会受到速率限制或其他限制。

改进建议

  • 确认 OpenAI 类的来源和用法,或改用标准的 OpenAI Python SDK(如果适用)。
  • 修改 predict 函数以返回一个完整的结果字符串,而不是生成器。
  • 添加适当的错误处理和日志记录。
  • 考虑使用缓存或其他机制来减少对 API 的请求次数。
  • 如果 API 支持,考虑使用异步请求来提高性能。

这篇关于人工智能和机器学习5 (复旦大学计算机科学与技术实践工作站)语言模型相关的技术和应用、通过OpenAI库,调用千问大模型,并进行反复询问等功能加强的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128406

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个