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

云端IDE如何重定义开发体验

豆包 MarsCode 是一个集成了AI功能的编程助手和云端IDE,旨在提高开发效率和质量。它支持多种编程语言和IDE,提供智能代码补全、代码解释、单元测试生成和问题修复等功能,同时具备AI对话视图和开发工具。

豆包 MarsCode

豆包 MarsCode 编程助手支持的 IDE: 支持Visual Studio Code 1.67.0及以上版本,以及JetBrains系列IDE,如IntelliJ IDEA、Pycharm等,版本要求为221.5080.210及以上。

豆包 MarsCode IDE 是一个云端 AI 集成开发环境(IDE),具备原生 AI 编程助手,提供代码补全、生成、优化等功能,支持多种编程语言和框架,无需本地资源,实现随时随地的开发。

豆包 MarsCode官方文档地址:https://docs.marscode.cn/introduction

故事起源

故事要从上周六说起。周五下班时大家都兴致勃勃,冲动之下,我也顾不上带电脑,径直开车上高速回家,急着与家里的丫头玩耍。但一到家才发现,书包居然没带。但我手头上还有一些未完成的开源项目工作,以及一个即将截止的征文活动,这些都需要我尽快完成。面对家中没有集成开发环境(IDE)的电脑,可愁死我了,正好当时我在浏览技术社区掘金时,偶然发现了豆包 MarsCode IDE,便立即开始使用这款在线IDE。

用的很不错,正好把我使用的体验感受写一下分享给大家。

先说体验

时间效率

在整个流程中,毫无疑问,使用豆包 IDE 比起先装环境要快得多。程序员们最头疼的就是环境安装,特别是在老式电脑上,我甚至担心会浪费时间。因此,使用豆包 IDE 的直观感受是它快速而稳定。整个环境安装再加上熟悉豆包 IDE,总共花了不到一个小时就可以正常启动项目,其中大约30分钟用在了配置mvn依赖上。这个过程有点坑,难怪会耽误时间。但如果是一个正常的项目,我相信在30分钟内就能搞定。

代码质量

其次,再谈谈我对AI功能的使用体验。实际上,最常用的是代码注释,因为大多数程序员包括我在内,不太喜欢写注释。使用云端IDE平台带来的便利在于,首先无需安装额外的编程助手;其次,通过AI悬挂图标直接选中问题或代码段,能快速解决困扰。这样做非常方便,而且最重要的是可以提升代码质量:一方面减少了对变量名的纠结,另一方面也让代码注释变得更为到位。

深度体验豆包 MarsCode IDE

以下是整体流程的详细描述,以确保信息清晰和逻辑连贯,防止大家头脑混乱:

登录豆包 MarsCode IDE 工作台 ——> 导入 GitHub 仓库 ——> 选择开发环境模板 ——> 配置项目 ——> 运行项目 ——> 体验项目 ——> 代码提交

spring-ai

使用云端 IDE 的主要优势之一是其适用于个人开发者,而大公司通常有自己的代码仓库。对于个人开发者而言,选择云端 IDE 编写开源项目再合适不过,特别是豆包 IDE 提供的资源分配非常充足。这意味着不必担心本地环境可能导致的宕机、电脑死机或磁盘损坏等问题。

然而,对我来说,稳定的网络连接是最关键的因素。在家里,访问 Github 时经常面临网络连接问题或速度极慢的情况,这对开发效率有显著影响。因此,我决定通过编写我的开源项目【spring-ai-demo】来深入体验豆包 IDE 的功能和性能。

快速导入GitHub 仓库

请访问豆包 MarsCode AI IDE 的官方网站:https://www.marscode.cn/dashboard

在开始之前,请登录豆包 MarsCode IDE 工作台,并导入我们的GitHub仓库项目,操作步骤如下所示:

image

在进行 GitHub 授权后,你可以访问自己的仓库项目列表。在选择要开发的项目时,系统会自动识别适用的语言模板,例如,如果你选择的项目是 Java 的话,它会自动识别为 Java 模板。

tips:单个账号在豆包 MarsCode IDE 上创建的项目数量不得超过 10 个

image

当你导入创建项目时,速度非常快,基本可以在几秒钟内完成,而且还会自动识别为 Maven 项目。

image

依赖环境

拿到新项目后,我们的操作步骤与通常一样,唯一的不同是无需搭建运行环境,只需下载依赖即可。更方便的是,我们可以直接从阿里云仓库下载依赖,无需单独配置mvn的setting文件,这一点特别贴心。

这一步直接报错了。按照官方的依赖包下载的话,在阿里云镜像中是找不到的,具体如下所示:

image

tips:在pom中指定了repositories仓库地址,也不会生效,可以认为只能去阿里云仓库

image

当即使指定了下载包仓库,仍然无法成功时,我出于好奇查看了阿里的镜像,发现其不存在。进一步调查后发现,阿里云的镜像groupid已经更改。因此,我也需要相应地进行修改:

image

修改后,终于成功实现了正常的下载功能,但我仍不清楚是否损失了哪些功能。这可能被视为一个缺陷,因为我的项目是开源的。如果某些小公司内部依赖于私有仓库的包,那么他们可能会遇到问题。

启动项目

在启动项目时,这里会持续提示各种配置项,只需直接启用它们,即可顺利完成启动操作。

image

确保在启动任何maven项目之前,务必确保项目已成功编译完成,否则可能会导致出现各种文件找不到的错误。

image

同样地,你也可以在这里配置适合自己习惯的操作方式:如clean install -DskipTests=true

image

体验项目

启动成功后,将会显示相应的路径及其所监听的端口信息,让我们来查看一下吧。

image

这里是我们项目真正使用的端口监听。如果需要详细了解,请查看项目配置文件中的相关信息。好的,让我们进行访问。

image

当我们查看 web-view 时,请将输入的路径转换成对应的路径。举例来说,如果我直接访问 swagger-ui,那么输入的路径就是 doc.html。

image

此外,除了这些路径,我只需在此页面上点击即可查看和操作剩余的所有路径。

image

当然,如果你不希望在这里使用webview,也可以复制路径并在浏览器中打开以访问。总体而言,项目启动的基本环境依赖操作通常可以在30分钟内完成。

image

在这里,不仅可以根据相应的路径找到对应的控制器,还可以观察到垃圾回收器的工作状态,这使得这个视图变得非常有用和优秀。

image

当鼠标悬停在注解上时,甚至可以显示出本类中的对象是如何被注入的。这对于研究源码来说也是非常有用的功能。

image

小操作的一项优化是支持文件重命名时,同时修改其中的类名。

image

编辑项目

完成了上述基本操作后,接下来我们将开始今天的主题:继续维护我的开源项目spring-ai-demo。今天我们将深入探讨函数调用。

大型语言模型(LLM)在训练完成后被冻结,导致其知识陈旧,并限制了其访问和修改外部数据的能力。

为了解决这些问题,函数调用机制应运而生。这种机制允许你注册自定义函数,将大型语言模型连接到外部系统的API。这些外部系统能够为LLM提供实时数据,并代表它执行数据处理操作。

Spring AI简化了支持函数调用所需的代码编写。它处理了函数调用的对话流程,使你能够轻松地注册函数。你只需提供函数的Bean名称作为a,然后在提示选项中选择该名称以激活该函数。此外,您还可以在单个提示中定义和引用多个函数。

image

  1. 执行聊天请求及函数定义信息的处理,例如解释模型何时应该调用函数以及函数的输入参数模式。
  2. 模型决定调用函数时,会传递输入参数给相应的函数,并将输出结果返回给模型。
  3. Spring AI 管理此对话流程,将函数调用分发给适当的函数,并将结果传送回模型。
  4. 模型可以执行多个函数调用以获取所需的所有信息。
  5. 一旦收集到所有必要信息,模型将生成响应。

补全代码

这里先快速写一个入口,tab补全代码

image

报错修复

在复制粘贴过程中,IDE并不会自动添加相关的依赖包。因此,每当遇到类报错时,如果IDE提供了快速修复选项,请优先点击执行修复操作;如果没有快速修复选项,则建议参考AI fix的建议进行手动修复。

image

代码注释

这个功能简直是太赞了,我真的很喜欢它。因为有时候实在懒得打字,但在线IDE可以根据我的输入自动理解代码的意图,并且根据我的简短提示自动生成后续的注释。这对于我这种懒人来说简直是福音啊!就看看它的效果吧。

image

AI 问答

有任何报错,无论是来自控制台还是其他地方,他都能够利用智能问答进行优化和解决。

image

同样也有历史记录进行维护,这样可以方便回顾和查看之前的错误记录。在记录问题时,根据解决方法详细描述,以确保下次不会再犯同样的错误。

image

最后重新启动项目即可。尽管已经进行了函数回调,但由于地址传错,无法避免。毕竟这些API都由开发者自行管理,最初我以为是官方的问题,但询问后发现与官方无关。

image

tips:这里注意下每个路径都是有时间限制的,所以如果长时间不刷新,路径也将会失效,点击刷新即可。url路径是不会改变的

image

提交变更

当你完成开发并维护相关代码之后,可以直接使用此接口进行Git提交,从而实现一站式的服务。

image

前端UI聊天交互页面

前几天有粉丝在评论区建议增加一个前端交互页面,认为这会使体验更加丰富,于是我们便安排了这个任务。我们主要探索了两种不同的前端页面设计:一种是采用豆包的React模版,另一种是直接使用HTML模版,还有一种特殊的Python模版。好的,言归正传,让我们首先来探索React模版。

React

项目模版创建

我掌握了一些HTML、JavaScript和CSS的基本操作,对React框架几乎没有经验。因此,我会使用IDE提供的模板来创建项目,而不必过多关注环境依赖,直接启动即可成功。好的,那么让我们开始吧。

image

当你进入这个页面时,你会发现官方提供了一份贴心的README文件,可以帮助你快速了解如何启动这个程序。

image

UI交互

启动结束后,我浏览了一下页面,但我对这个东西基本上一头雾水,页面上的元素我都不认识。好的,我想通过AI来了解一下,看看它是否能够满足我的需求。

tips:这里注意下,问问题的时候,一定要选择修改的页面,如果选的不对,AI也是无法直接回答问题的。

image

生成的结果看起来确实不错,但幸好我有一些前端基础知识,因此能够发现生成的属性有问题。经过修改后,问题得以解决。

image

接着立即观察生成的结果。

tips:这里发现个问题,webview无法显示alter弹窗信息,不过复制出来在浏览器中使用即可,无伤大雅

image

好的,我们已经确定了基本组件。剩下的优化工作我们稍后再进行,先完成后优化师我开发的原则。接下来要做的是生成按钮点击后要跳转的页面。让AI来帮我整理一下吧。

image

好吧,生成的内容一直报错,而且他们还不给修复。

image

那么我们可以考虑另一种解决方案。考虑到这是一个框架,应该有专门的组件可以直接完成这项任务,特别是在当今LLM流行的环境下,聊天页面也正迎来了蓬勃发展。

image

ChatSDK

找了半天,确实没找到满意的解决方案。于是我向各位前端大佬请教了一下,毕竟我在前端框架方面几乎没有经验。他们根据我的需求推荐了一个非常强大的一站式UI解决方案——阿里的chatSDK,你可以在以下地址找到它:

https://chatbot.console.aliyun.com/ChatSDK#/sdk

image

这就是我想要的结果,不过在配置的过程中遇到了很多问题,因为我对此一无所知。尽管如此,我仍然坚持学习并逐步掌握。幸运的是,通过查阅官方文档,我得以解决了这些困惑,即便我的AI助手也跟我一样陷入了困境。

image

Rsbuild

没错,就是指的rsbuild。虽然文档写得很详细,但我还是去看了如何设置index.html。结果发现操作很简单,只需要简单配置一下就行。可能是因为rsbuild并不像webpack那样流行,所以网上关于它的配置信息不多,我一直找不到相关的资料。

image

这里来详细介绍一下rsbuild。为什么在React项目中选择自动集成rsbuild,而不是像市面上流行的webpack等其他工具呢?

Rsbuild是一个基于Rspack的高性能构建工具,它不仅提供丰富的构建功能和优化的配置选项,还支持多种前端UI框架。Rsbuild的特点包括出色的性能表现、简便的配置方式、丰富的插件生态系统、稳定可靠的构建产物以及与各种前端框架的无缝兼容性。与类似的工具如Vite、Create React App和Vue CLI相比,Rsbuild不仅能够实现更高效的构建过程,而且能够更好地融入复杂的生态系统中。

image

Rsbuild,由字节跳动推出,旨在构建一个开放的技术生态系统,以积极推动前端技术的进步和发展。

因此,首先,Rsbuild 拥有更高的构建性能,能够提供比基于 Webpack 的 Create React App 和 Vue CLI 等工具高达 5 到 10 倍的效率,同时还具备更为轻量的依赖体积。其次,Rsbuild 与豆包一样是属于一家公司的产品,所以成为了一个优选的选择。

这里唯一的不足是社区问题太少,当我遇到错误时,很难找到解决方法,只能自己苦苦探索,甚至要通过Google搜索来解决。有时甚至连关键字【Rsbuild+问题】都无法搜索到相关信息。这方面值得进一步优化。

其实一句话即可。我们去看下去

image

设置成功后,我们将按照阿里提供的SDK快速开发文档进行配置,然后启动应用程序进行测试。

image

可以看到,所有必要的内容已经成功添加到系统中。接下来,我们将继续开发以实现跳转到聊天页面的功能。首先,我们需要完善各种路由的配置,确保一切就绪后再继续进行跳转功能的开发。这一步骤只需要完成一个小组件即可。

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import ChatHome from '../components/chat';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'
const root = ReactDOM.createRoot(document.getElementById('root')!);
root.render(<React.StrictMode> <Router><Routes><Route path='/talk' element={<ChatHome />}></Route><Route path='/' element={<App />}></Route></Routes></Router></React.StrictMode>,
);

当需要添加链接时,剩下的任务就是在合适的位置插入超链接。可以简单地使用代码自动补全完成这个任务。

image

当最后成功集成进来时,所带来的效果如下所示:

image

优化后端

接下来,我们将继续对接之前我们开发的spring-ai项目,以实现一个真正交互式的界面。

image

那么为什么不能直接使用record返回呢?因为前端不仅仅支持文本,还有其他方案。所以还是自己写吧。总之,目前即便是AI也可能会出错,即使指定返回特定格式,也不一定正确。

具体修改后如下:

@PostMapping("/ai")
ChatDataPO generationByText(@RequestParam("userInput")  String userInput) {String content = this.myChatClientWithSystem.prompt().user(userInput).call().content();log.info("content: {}", content);ChatDataPO chatDataPO = ChatDataPO.builder().code("text").data(ChildData.builder().text(content).build()).build();;return chatDataPO;
}

在启动后端的spring-ai-demo项目后,我们可以复制networking目录下的URL路径。这样做是为了确保前后端项目能够同时成功启动。

image

接下来需要对前端发送的 API 接口信息进行修改和优化。

send: function send(msg) {let sessionId = 'M9u913BFyxIuTdRv7O73nx9SfkWgerhk';return {url: 'https://jtdedyc1-kbb5pits-q02qbpq08o1p.c1.mcprev.cn/ai',data: {userInput: msg.content.text,// sessionId: sessionId,},method: 'POST'};}

效果演示

前端项目启动完成后,我们可以继续前往演示其效果。

image

Python

我们再创建一个新的项目,这次以Python为模板,为了确保项目从一开始就符合我们的需求,我们需要对初始模板进行一些调整。首先,我们将删除原有的代码,因为它们仅是构建一个基础的Python HTTP服务项目的基础,而并非我们项目所需的具体功能。

我们要以Streamlit这一强大的工具为主,Streamlit不仅以其强大的功能和易用性著称,还能让我们以前所未有的速度构建出具有流式打字机效果的聊天应用。、

对于那些像我一样对复杂的前端代码感到畏惧的开发者来说,Streamlit无疑是一个巨大的福音。它简化了开发流程,让我们能够专注于应用的核心功能和逻辑,而无需深陷前端开发。

streamlit

在这次实操中,我们将跳过那些深奥的理论知识,将全部的注意力集中在实际的操作和应用上。

首先,我们需要确保基础环境已经搭建好。幸运的是,基础环境的搭建工作已经顺利完成,我们不需要再为此花费额外的时间和精力。接下来,我们需要做的就是安装一些必要的开发环境即可:

pip install streamlit

在进行项目开发的过程中,我们常常会遇到需要从外部获取各种资源和依赖的情况。豆包IDE默认已经不再是官方源了,而是国内的仓库。、

接下来,我们将进行一个简单的测试,以验证我们的环境配置是否正确。首先,我们需要将示例代码复制到我们的开发环境中。启动后,检查是否能够正常访问,页面是否显示预期的内容。

import streamlit as st
import random
import time# Streamed response emulator
def response_generator():response = random.choice(["Hello there! How can I assist you today?","Hi, human! Is there anything I can help you with?","Do you need help?",])for word in response.split():yield word + " "time.sleep(0.05)st.title("Simple chat")# Initialize chat history
if "messages" not in st.session_state:st.session_state.messages = []# Display chat messages from history on app rerun
for message in st.session_state.messages:with st.chat_message(message["role"]):st.markdown(message["content"])# Accept user input
if prompt := st.chat_input("What is up?"):# Add user message to chat historyst.session_state.messages.append({"role": "user", "content": prompt})# Display user message in chat message containerwith st.chat_message("user"):st.markdown(prompt)# Display assistant response in chat message containerwith st.chat_message("assistant"):response = st.write_stream(response_generator())# Add assistant response to chat historyst.session_state.messages.append({"role": "assistant", "content": response})

streamlit run main.py

在启动Streamlit项目的过程中,我们直接选择使用命令行工具来执行,而不是依赖于图形界面的“运行”按钮。

后端优化

我们之前的文章开发过程基于对接大模型的。而这一次,我们计划采用Spring-AI后台进行对接,以开发实时交互聊天功能。

首先,我们需要对代码进行相应的修改。

@PostMapping("/ai-stream")
Flux<String> generationByStream(@RequestParam("userInput") String userInput) {Flux<String> output = chatClient.prompt().user(userInput).stream().content();return output;
}

代码生成

启动成功后,我们要求AI协助生成请求代码。

image

这段代码拿过来后需要简单修改一下,因为我们需要走流式回答,并不是阻塞式的调用。最后代码如下:

def response_generator(prompt):url = 'https://fq5jh3sk-kr95txxo-prhof0hgd4fs.c1.mcprev.cn/ai-stream'url += '?userInput=' + promptheaders = {'Accept': '*/*','Content-Type': 'application/x-www-form-urlencoded'}# 发送POST请求response = requests.get(url, headers=headers, stream=True)# print(response.text)# 处理流式响应if response.status_code == 200:# 获取可读流for chunk in response.iter_content(chunk_size=1024):if chunk:# 在这里处理你的业务逻辑,例如打印或者其他操作yield chunk.decode('utf-8')  # 假设服务器返回UTF-8编码的文本else:print(f"Error fetching data: {response.status_code}")

tips:这里需要注意的是,请不要在后端调用其他豆包启动的项目,因为这样可能会被系统拦截。不像前端页面那样可以直接跳转,后端如果直接调用 API 是行不通的。因此,我在本地启动了一次联调。

演示效果

Python的实现相当简单,我们现在来看一下它的调用结果:

image

总结

豆包 MarsCode 是现代开发者的利器,其集成了强大的AI功能和云端IDE,极大地提升了开发效率和代码质量。通过支持多种主流编程语言和IDE,豆包 MarsCode 不仅简化了环境配置过程,还提供了智能代码补全、单元测试生成、问题修复等多项AI驱动的功能,使开发者能够专注于创造性工作而非繁琐的设置。

在实际使用中,我深刻体验到豆包 MarsCode 的便利。无论是快速导入GitHub仓库、自动识别项目语言模板,还是轻松配置和启动项目,它都展现了出色的稳定性和高效性。与传统的本地IDE相比,豆包 MarsCode 的云端特性更加灵活,使我能够随时随地进行开发,无需担心硬件或网络环境的限制。

特别是在代码质量的提升方面,豆包 MarsCode 的AI功能展现了其独特优势。自动代码注释、智能问题解决建议,以及对话式AI视图的应用,不仅简化了日常开发中的繁琐任务,还显著提高了代码的可读性和可维护性。这些功能不仅让我在忙碌的开发过程中节省了大量时间,还使我的开发工作更加高效和愉悦。

总的来说,豆包 MarsCode 不仅是一个工具,更是现代软件开发中不可或缺的助手。它的出现不仅推动了开发工具的技术进步,更为开发者们带来了全新的开发体验和工作方式。期待未来豆包 MarsCode 在AI驱动开发领域继续创新,为全球开发者提供更多实用且强大的功能。


我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。身兼掘金优秀作者、腾讯云内容共创官、阿里云专家博主、华为云云享专家等多重身份。

🚀 目前,我的探索重点在于 AI Agent 智能体应用,我对其充满好奇,并不断探索着其潜力与可能性。如果你也对此领域充满热情,欢迎与我交流分享,让我们共同探索未知的领域!

💡 我将不吝分享我在技术道路上的个人探索与经验,希望能为你的学习与成长带来一些启发与帮助。

🌟 欢迎关注努力的小雨!🌟

相关文章:

云端IDE如何重定义开发体验

豆包 MarsCode 是一个集成了AI功能的编程助手和云端IDE&#xff0c;旨在提高开发效率和质量。它支持多种编程语言和IDE&#xff0c;提供智能代码补全、代码解释、单元测试生成和问题修复等功能&#xff0c;同时具备AI对话视图和开发工具。 豆包 MarsCode 豆包 MarsCode 编程助…...

模拟实现string类

目录 一.构造与析构函数 二.基础小功能的实现 1.clear 2.c_str 3外部对私有的查看 三.实现string的迭代器 四.string的增删查改 1.push_back尾插 1.1reserve扩容 1.2尾插 3.运算符重载 4.insert在任意位置插入 5.erase删除 5.1npos的处理 5.2函数的实现 6.find查…...

使用一个大语言模型对另一个大语言模型进行“调教”

使用一个大语言模型对另一个大语言模型进行“调教”&#xff08;通常称为微调或适配&#xff09;&#xff0c;是一种常见的技术手段&#xff0c;用于让目标模型更好地适应特定的任务、领域或风格。以下是基于搜索结果整理的详细步骤和方法&#xff1a; 1.准备工作 安装必要的…...

十二、Docker Compose 部署 SpringCloudAlibaba 微服务

一、部署基础服务 0、项目部署结构 项目目录结构如下: /home/zhzl_hebei/ ├── docker-compose.yml └── geochance-auth/└── Dockerfile└── geochance-auth.jar └── geochance-system/└── Dockerfile└── geochance-system.jar └── geochance-gateway/…...

深入浅出:旋转变位编码(RoPE)在现代大语言模型中的应用

在现代大语言模型&#xff08;LLMs&#xff09;中&#xff0c;位置编码是一个至关重要的组件。无论是 Meta 的 LLaMA 还是 Google 的 PaLM&#xff0c;这些模型都依赖于位置编码来捕捉序列中元素的顺序信息。而旋转变位编码&#xff08;RoPE&#xff09; 作为一种创新的位置编码…...

C# 使用ADO.NET访问数据全解析

.NET学习资料 .NET学习资料 .NET学习资料 在 C# 的应用开发中&#xff0c;数据访问是极为关键的部分。ADO.NET作为.NET 框架下用于数据访问的核心技术&#xff0c;能够帮助开发者便捷地与各类数据源进行交互。本文将深入剖析ADO.NET&#xff0c;带你掌握使用 C# 通过ADO.NET访…...

趣解单词,实现快速记忆

英文单词 love&#xff0c;是“爱”的意思&#xff1a; love v./n.爱&#xff1b;喜欢&#xff1b;热爱&#xff1b;爱情&#xff1b;心爱的人 那什么是爱呢&#xff1f;love&#xff0c;首字母为l&#xff0c;是一根绳子&#xff0c;ve-通f&#xff0c;love通life&#xff0…...

TEMU电池法规:CE-battery法规指令主要检测以下这三样,汞、镉、铅

TEMU电池法规&#xff1a;CE-battery法规的指令主要检测以下这三样&#xff0c;汞、镉、铅有害物质&#xff1a; CE-Battery认证是依据欧盟新电池法规EU 2023/1542指令进行的电池安全检测报告。该认证针对所有类别的电池&#xff0c;包括内置或添加到产品中的电池&#xff0c;…...

vscode 如何通过Continue引入AI 助手deepseek

第一步&#xff1a; 在deepseek 官网上注册账号&#xff0c;得到APIKeys(deepseek官网地址) 创建属于自己的APIKey,然后复制这个key,(注意保存自己的key)! 第二步&#xff1a; 打开vscode,在插件市场安装Continue插件, 点击设置&#xff0c;添加deepseek模型&#xff0c;默认…...

【大数据技术】搭建完全分布式高可用大数据集群(Scala+Spark)

搭建完全分布式高可用大数据集群(Scala+Spark) scala-2.13.16.tgzspark-3.5.4-bin-without-hadoop.tgz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Spark的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/softwa…...

【翻译+论文阅读】DeepSeek-R1评测:粉碎GPT-4和Claude 3.5的开源AI革命

目录 一、DeepSeek-R1 势不可挡二、DeepSeek-R1 卓越之处三、DeepSeek-R1 创新设计四、DeepSeek-R1 进化之路1. 强化学习RL代替监督微调学习SFL2. Aha Moment “啊哈”时刻3. 蒸馏版本仅采用SFT4. 未来研究计划 部分内容有拓展&#xff0c;部分内容有删除&#xff0c;与原文会有…...

前缀和练习——洛谷P8218:求区间和

题目: 这道题很简单&#xff0c;直接根据题目无脑套公式 代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N 1e5 9; using ll long long; ll a[N], perfix[N]; int main() {ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);//取消同步输…...

uv 安装包

是的&#xff0c;你可以使用 uv 来安装 Python 包。uv 是一个高性能的 Python 包安装器和解析器&#xff0c;由 astral.sh 团队开发&#xff0c;旨在替代 pip 和 pip-tools&#xff0c;提供更快的包安装体验。 ### 如何使用 uv 安装包 1. **安装 uv**&#xff1a; 如果你还…...

【机器学习】训练(Training)、验证(Validation)和测试(Testing)

机器学习中训练(Training)、验证(Validation)和测试(Testing)这三个阶段的作用和关系。 1. 训练阶段 (Training) - 使用训练集数据来训练模型 - 模型通过学习训练数据的特征和模式来调整其内部参数 - 这个阶段模型会不断优化以减少预测误差 - 通常使用最大的数据集比例&…...

3. k8s二进制集群之负载均衡器高可用部署

Haproxy 和 Keepalived安装Haproxy配置文件准备Keepalived配置及健康检查启动Haproxy & Keepalived服务继续上一篇文章《K8S集群架构及主机准备》,下面介绍负载均衡器搭建过程 Haproxy 和 Keepalived安装 在负载均衡器两个主机上安装即可 apt install haproxy keepalived…...

C++游戏开发实战:从引擎架构到物理碰撞

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 C 是游戏开发中最受欢迎的编程语言之一&#xff0c;因其高性能、低延迟和强大的底层控制能力&#xff0c;被广泛用于游戏…...

MSPFN 代码复现

1、环境配置 conda create -n MSPFN python3.9 conda activate MSPFN pip install opencv-python pip install tensorflow pip install tqdm pip install matplotlib2、train 2.1 创建数据集 2.1.1 数据集格式 |--rainysamples |--file1&#xff1a; |--file2:|--fi…...

[c语言日寄]浮点数在内存中的储存

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…...

PySpark学习笔记5-SparkSQL

sparkSql的数据抽象有两种。 一类是data set适用于java和Scala 一类是data frame适用于java&#xff0c;Scala&#xff0c;python 将r d d转换为data frame #方式一 df spark.createDataFrame(rdd,schema[name,age]) #方式二 schema Structtype(). add(id,integertype(),nu…...

支持 APQP (先期产品质量策划) 的软件系统-汽车电子行业专用研发管理信息化平台

支持 APQP (先期产品质量策划) 的软件系统 在制造业竞争白热化的当下&#xff0c;产品质量已然成为企业立足市场的核心竞争力。APQP&#xff08;先期产品质量策划&#xff09;作为保障产品质量的关键流程&#xff0c;贯穿于产品从概念萌生到最终交付的整个生命周期&#xff0c…...

配置@别名路径,把@/ 解析为 src/

路径解析配置 webpack 安装 craco npm i -D craco/craco 项目根目录下创建文件 craco.config.js &#xff0c;内容如下 const path require(path) module.exports {webpack: {// 配置别名alias: {// 约定&#xff1a; 使用 表示src文件所在路径: path.resolve(__dirname,src)…...

以为是响应式对象丢失导致数据没有回显

背景&#xff1a;之前ruoyi生成的vue2代码&#xff0c; <el-form ref“form”&#xff0c;后面我改成vue3的写法&#xff0c;没有实例化form&#xff0c; 在vue3中是需要定义const form ref(); 导致点击了修改后&#xff0c;页面弹框显示出来&#xff0c;数据没有回显。 一直…...

【汇编语言】直接定址表(二)—— 「代码‘导航员’:直接定址表的功能与应用」

文章目录 前言1. 直接定址表1.1 问题引入&#xff08;一&#xff09;—— 为算法清晰而查表1.2 分析与解决问题1.2.1 两个十六进制表示一个字节1.2.2 得到数值对应的数码字符1.2.2.1 最粗暴的方法——比较1.2.2.2 使用映射关系来解决1.2.2.3 存在的问题及解决 1.3 得到子程序1.…...

05vue3实战-----配置项目代码规范

05vue3实战-----配置项目代码规范 1.集成editorconfig配置2.使用prettier工具2.1安装prettier2.2配置.prettierrc文件&#xff1a;2.3创建.prettierignore忽略文件2.4VSCode需要安装prettier的插件2.5VSCod中的配置2.6测试prettier是否生效 3.使用ESLint检测3.1VSCode需要安装E…...

不含101的数

不含101的数 真题目录: 点击去查看 E 卷 200分题型 题目描述 小明在学习二进制时&#xff0c;发现了一类不含101的数&#xff1a; 将数字用二进制表示&#xff0c;不能出现 101 。 现在给定一个整数区间 [l,r] &#xff0c;请问这个区间包含了多少个不含 101 的数&#xff…...

Linux/C高级(精讲)----shell结构语句、shell数组

shell脚本 功能性语句 test 可测试对象三种&#xff1a;字符串 整数 文件属性 每种测试对象都有若干测试操作符 1&#xff09;字符串的测试&#xff1a; s1 s2 测试两个字符串的内容是否完全一样 s1 ! s2 测试两个字符串的内容是否有差异 -z s1 测试s1 字符串的长度是…...

基于微信小程序的消防隐患在线举报系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

java基础2(黑马)

一、变量里的数据在计算机中的存储原理 1.二进制 .二进制&#xff1a;只有0、1&#xff0c; 按照逢二进一的方式表示数据。 十进制数字11转换为&#xff1a;1011 方法&#xff1a;除二取余法 计算机中表示数据的最小单元&#xff0c;一个字节&#xff08;Byte&#xff0c;简…...

计算机中数值表示:原码、反码、补码与移码

1 前言 计算机科学中&#xff0c;数字的表示方式至关重要&#xff0c;因为计算机内部只能识别处理二进制数据。为了在计算机中实现对整数的表示&#xff0c;提出了多种数值编码方式&#xff0c;其中最常用的是原码、反码、补码和移码。 2 原码 2.1 原码的定义 原码(Signed …...

1.8 组合模式(Composite Pattern)

定义 组合模式&#xff08;Composite Pattern&#xff09; 是一种结构型设计模式&#xff0c;它将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式让客户端可以以相同的方式对待单个对象和对象集合。组合模式使得客户可以统一处理树形结构中的单个对象和对象的集合…...

QFileDialog::getOpenFileName(this,“文件对话框“,“.“,“c++ files(*.cpp);;“); 文件对话框显示乱码

在使用 QFileDialog::getOpenFileName 时&#xff0c;如果文件对话框显示乱码&#xff0c;通常是因为编码问题。Qt 默认使用 UTF-8 编码&#xff0c;但如果你的系统或源代码文件的编码不一致&#xff0c;可能会导致乱码。 以下是几种可能的解决方法&#xff1a; 1. 确保源代码…...

【C语言系列】深入理解指针(5)

深入理解指针&#xff08;5&#xff09; 一、sizeof和strlen的对比1.1sizeof1.2strlen1.3sizeof和strlen的对比 二、数组和指针笔试题解析2.1 一维数组2.2 字符数组2.2.1代码1&#xff1a;2.2.2代码2&#xff1a;2.2.3代码3&#xff1a;2.2.4代码4&#xff1a;2.2.5代码5&#…...

为什么使用nohup 和 启动的python脚本,日志没有在nohup.out中

当你使用 nohup 和 & 启动 Python 脚本时&#xff0c;输出通常会被重定向到 nohup.out 文件&#xff0c;但是有几个原因可能导致日志没有出现在这个文件中&#xff1a; Python 程序的输出被重定向了&#xff1a; 如果你的 Python 脚本中使用了 sys.stdout 或 sys.stderr 进…...

MySQL的存储引擎对比(InnoDB和MyISAM)

InnoDB 特点&#xff1a; 事务支持&#xff1a;InnoDB 是 MySQL 默认的事务型存储引擎&#xff0c;支持 ACID&#xff08;原子性、一致性、隔离性、持久性&#xff09;事务。行级锁定&#xff1a;支持行级锁&#xff0c;能够并发执行查询和更新操作&#xff0c;提升多用户环境…...

uniapp访问django目录中的图片和视频,2025[最新]中间件访问方式

新建中间件, middleware.py 匹配,以/cover_image/ 开头的图片 匹配以/episode_video/ 开头的视频 imageSrc: http://192.168.110.148:8000/cover_image/12345/1738760890657_mmexport1738154397386.jpg, videoSrc: http://192.168.110.148:8000/episode_video/12345/compres…...

Python递归复习题

寒假打卡第二十一天&#xff0c;当前mit6.100L进度(16/26) &#xff0c;今天补一下递归复习题。 问题1&#xff1a;编写一个递归程序来计算正和n&#xff08;n-2&#xff09;&#xff08;n-4&#xff09;的整数&#xff08;直到且不包括n-x<0&#xff09; def sum_series(n…...

2025 年前端开发趋势展望,开启新征程

新年伊始&#xff0c;作为一名深耕 Web 前端开发领域的博主&#xff0c;我迫不及待地想和大家分享我对 2025 年前端开发趋势的洞察。过去一年里&#xff0c;前端领域的技术创新和变革令人目不暇接&#xff0c;而新的一年&#xff0c;更是充满无限可能。 框架与工具的持续演进 …...

90,【6】攻防世界 WEB Web_php_unserialize

进入靶场 进入靶场 <?php // 定义一个名为 Demo 的类 class Demo { // 定义一个私有属性 $file&#xff0c;默认值为 index.phpprivate $file index.php;// 构造函数&#xff0c;当创建类的实例时会自动调用// 接收一个参数 $file&#xff0c;用于初始化对象的 $file 属…...

Redis --- 使用GEO实现经纬度距离计算

什么是GEO&#xff1f; Spring Boot 项目中可以通过 Spring Data Redis 来使用 Redis GEO 功能&#xff0c;主要通过 RedisTemplate 和 GeoOperations 接口来操作地理位置数据。 Service public class GeoService {Autowiredprivate RedisTemplate<String, Object> red…...

同步 CDC

同步 CDC 当设计包括来自同一 MMCM/PLL 的时钟之间的同步 CDC 路径时&#xff0c;您可以使用以下技术来更好地控制时钟插入延迟和 时滞&#xff0c;并因此控制这些路径上的松弛。 重要提示&#xff1a; 如果 CDC 路径在源自不同 MMCM/PLL 的时钟之间&#xff0c;则跨越 …...

Linux环境下载Ollama慢或卡顿解决方案

一、下载方式 官方下载方式是到ollama官网下载ollama: https://ollama.com/ 复制下载链接执行&#xff1a; curl -fsSL https://ollama.com/install.sh | sh二、卡顿现象 执行后经常会出现下载失败或者进度条特别慢的情况&#xff0c;甚至直接退出下载&#xff1a; 三、…...

生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (下)

今天小李哥将开启全新的技术分享系列&#xff0c;为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来生成式 AI 安全市场正迅速发展。据IDC预测&#xff0c;到2025年全球 AI 安全解决方案市场规模将突破200亿美元&#xff0c;年复合增长率超过30%&#xff0c;而Gartn…...

2025年家用音响市场分析:潜力无限,音质为王的新纪元

引言&#xff1a;音质革命引领市场新风尚 在数字化浪潮的推动下&#xff0c;家用音响市场正经历一场前所未有的变革&#xff0c;其增长潜力犹如破晓之光&#xff0c;照亮了音频技术的未来之路。随着消费者对高品质生活追求的不断提升&#xff0c;以及对智能家居生态融合的日益…...

neo4j-在Linux中安装neo4j

目录 切换jdk 安装neo4j 配置neo4j以便其他电脑可以访问 切换jdk 因为我安装的jdk是1.8版本的&#xff0c;而我安装的neo4j版本为5.15,Neo4j Community 5.15.0 不支持 Java 1.8&#xff0c;它要求 Java 17 或更高版本。 所以我需要升级Java到17 安装 OpenJDK 17 sudo yu…...

AI 场景下,函数计算 GPU 实例模型存储最佳实践

作者&#xff1a;有松 当前&#xff0c;函数计算 FC 已被广泛应用在各种 AI 场景下&#xff0c;函数计算支持通过使用容器镜像部署 AI 推理应用&#xff0c;并且提供多种选项来访问训练好的模型。为了帮助开发者高效地在函数计算上部署 AI 推理应用&#xff0c;并快速解决不同…...

股指入门:股指期货是什么意思?在哪里可以做股指期货交易?

股指期货是一种以股票指数为标的物的期货合约&#xff0c;也可以称为股票指数期货或期指。 股指期货是什么意思&#xff1f; 股指期货是一种金融衍生品&#xff0c;其标的资产是股票市场上的股指&#xff0c;例如标普500指数、道琼斯工业平均指数、上证50指数等。 股指期货允…...

【分布式理论六】分布式调用(4):服务间的远程调用(RPC)

文章目录 一、RPC 调用过程二、RPC 动态代理&#xff1a;屏蔽远程通讯细节1. 动态代理示例2. 如何将动态代理应用于 RPC 三、RPC 序列化四、RPC 协议编码1. 协议编码的作用2. RPC 协议消息组成 五、RPC 网络传输1. 网络传输流程2. 关键优化点 一、RPC 调用过程 RPC&#xff08…...

aliyun 的 ip 设置方法

aliyun 的 ip 设置方法 阿里云&#xff1a;网络编程 bind&#xff1a;cannot assign requested address errno:99 问题。 公网IP,&#xff0c;弹性公网IP&#xff0c;主私网IP 1. 公网IP, --> NAT --> 主私网IP &#xff0c;设置方法&#xff1a; 服务器端 ip 为&…...

ASP.NET Core分布式缓存

目录 分布式缓存 概述 IDistributedCache接口中定义的主要方法及主要的扩展方法 用什么做缓存服务器 使用 封装分布式缓存操作 分布式缓存 概述 分布式系统中&#xff0c;内存缓存不满足要求的话&#xff0c;把缓存数据保存到专门的缓存服务器&#xff0c;所有Web应用通…...

【CUDA】内存模型

目录 一、Programmable 1.1 寄存器(Registers) 1.2 本地内存(Local Memory) 1.3 共享内存(shared Memory) 1.4 常量内存(Constant Memory) 1.5 全局内存(Global Memory) 1.6 纹理内存(Textrue Memory) 1.7 总结 二、Cache(Non-programmable) 三、固定内存 四、零拷贝…...