成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于DeepSeek + VSCode 實(shí)現(xiàn)AI輔助編程

人工智能
隨著人工智能技術(shù)的飛速發(fā)展,AI 輔助編程逐漸成為提升開發(fā)效率、優(yōu)化代碼質(zhì)量的重要工具。本文通過結(jié)合 DeepSeek 的強(qiáng)大語言模型和 VSCode 的高效開發(fā)環(huán)境,展示了如何利用 AI 輔助編程完成一個(gè)經(jīng)典的 MapReduce 詞頻統(tǒng)計(jì)任務(wù)。

隨著人工智能技術(shù)的飛速發(fā)展,AI 輔助編程逐漸成為提升開發(fā)效率、優(yōu)化代碼質(zhì)量的重要工具。本文通過結(jié)合 DeepSeek 的強(qiáng)大語言模型和 VSCode 的高效開發(fā)環(huán)境,展示了如何利用 AI 輔助編程完成一個(gè)經(jīng)典的 MapReduce 詞頻統(tǒng)計(jì)任務(wù)。這一實(shí)踐不僅展示了 AI 在編程中的應(yīng)用潛力,還為開發(fā)者提供了一個(gè)高效、便捷的開發(fā)流程示例,幫助讀者快速上手 AI 輔助編程,并探索其在實(shí)際項(xiàng)目中的應(yīng)用價(jià)值。

實(shí)驗(yàn)環(huán)境:

  1. VSCode
  2. Cline
  3. DeepSeek
  4. Ubuntu 22.04
  5. Hadoop 3.3.5

以上實(shí)驗(yàn)環(huán)境并不要求完全一致,能實(shí)現(xiàn)效果即可。

安裝與配置Cline

Cline 是一個(gè) VSCode 插件,可以接入 DeepSeek 的 API,用于生成代碼、解釋代碼或者修復(fù)代碼問題。在VSCode左側(cè)“擴(kuò)展”中搜索Cline并下載

圖片圖片

安裝完成后,我們點(diǎn)擊右上角齒輪圖案進(jìn)入設(shè)置,選擇當(dāng)前的AI輔助編程使用的大模型。對(duì)于DeepSeek,我們有兩種方案:

  • 使用已經(jīng)安裝好的本地Ollama服務(wù):https://dblab.xmu.edu.cn/blog/5816/ 可以參考這篇博客中的Ollama安裝DeepSeek-r1,輸入對(duì)應(yīng)的Ollama服務(wù)地址,如http://localhost:11434,如果Ollama服務(wù)正確運(yùn)行,則會(huì)顯示你已經(jīng)安裝的模型,如下圖中的deepseek-r1-1.5b:latest

圖片圖片

  • 可以使用DeepSeek提供的API,至https://platform.deepseek.com/usage 中就可以購(gòu)買并獲得API

配置完成后就可以開始使用Cline,具體的功能可以對(duì)照下圖

圖片圖片

AI輔助編程-以詞頻統(tǒng)計(jì)案例為例實(shí)現(xiàn)

為了更好地展示AI輔助編程的效果,筆者在這采用使用DeepSeek API的方式,這樣的請(qǐng)求方式能使用滿血的DeepSeek,方便讀者們看到效果,實(shí)際實(shí)驗(yàn)的過程中,使用自己安裝的DeepSeek 7b也是可以的。

為了更好地實(shí)現(xiàn)輔助編程,我首先用maven創(chuàng)建了一個(gè)干凈的新項(xiàng)目,項(xiàng)目的架構(gòu)圖為

demo
├─ pom.xml
├─ src
│  └─ main
│     └─ java
└─ target

我本機(jī)安裝的hadoop版本為3.3.5,因此我提前在pom.xml中引入基礎(chǔ)的包,方便AI使用

<?xml versinotallow="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocatinotallow="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>demo</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <hadoop.version>3.3.5</hadoop.version> 
  </properties>

    <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- 導(dǎo)入hadoop依賴環(huán)境 -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-yarn-api</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
  </dependencies>

  ...
</project>

之后新建對(duì)話的第一個(gè)問題就詳細(xì)描述我要完成的任務(wù):

**任務(wù)目標(biāo)**
使用JAVA語言,用MapReduce框架實(shí)現(xiàn)詞頻統(tǒng)計(jì),要求輸出詞頻排序結(jié)果

**輸入數(shù)據(jù)**

1. txt格式
2. 請(qǐng)你隨意生成三個(gè)txt內(nèi)容用于測(cè)試,文件不用很大,每個(gè)文件有幾條數(shù)據(jù)即可

**開發(fā)要求**

1. 在我當(dāng)前創(chuàng)建好的maven項(xiàng)目中開發(fā)
2. 輸入數(shù)據(jù)和輸出數(shù)據(jù)都保存在本地,不需要使用HDFS
3. 直接返回代碼,告訴我我該怎么做。

之后Cline根據(jù)我的要求,編寫好對(duì)應(yīng)的promt去請(qǐng)求DeepSeek,并依次創(chuàng)建了測(cè)試數(shù)據(jù)文件

圖片圖片

接著又依次根據(jù)我的需求,創(chuàng)建了

WordCountMapper.java 

WordCountReducer.java 

WordCount.java

圖片圖片

package com.example;

import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class WordCountMapper extends Mapper<Object, Text, Text, IntWritable> {
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(Object key, Text value, Context context) 
            throws IOException, InterruptedException {
        StringTokenizer itr = new StringTokenizer(value.toString());
        while (itr.hasMoreTokens()) {
            word.set(itr.nextToken());
            context.write(word, one);
        }
    }
}
package com.example;

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values, Context context)
            throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        result.set(sum);
        context.write(key, result);
    }
}
package com.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class WordCount {
    public static void main(String[] args) throws Exception {
        if (args.length != 2) {
            System.err.println("Usage: WordCount <input path> <output path>");
            System.exit(-1);
        }

        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, "word count");
        job.setJarByClass(WordCount.class);
        job.setMapperClass(WordCountMapper.class);
        job.setReducerClass(WordCountReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

之后Cline認(rèn)為代碼編寫完成,可以使用maven直接打包,并用hadoop指令運(yùn)行,但這時(shí)候遇到了一個(gè)問題,我并沒有配置hadoop的環(huán)境變量(也就是說用hadoop指令需要到我安裝的hadoop目錄/usr/local/hadoop下),因此我提示了Cline這一點(diǎn)

圖片圖片

在這之后,項(xiàng)目成功被打包為jar包,并執(zhí)行,輸出結(jié)果至創(chuàng)建好的/output文件夾

圖片圖片

最終效果

最終Cline + DeepSeek自動(dòng)創(chuàng)建的項(xiàng)目結(jié)構(gòu)為:

圖片圖片

output文件夾中成功輸出了詞頻統(tǒng)計(jì):

圖片圖片

本文驗(yàn)證了AI輔助編程在MapReduce開發(fā)中的有效性,其代碼生成效率與質(zhì)量均達(dá)到專業(yè)開發(fā)標(biāo)準(zhǔn)。未來隨著AI模型對(duì)分布式系統(tǒng)知識(shí)的深化,該方法有望成為大規(guī)模數(shù)據(jù)處理任務(wù)的首選開發(fā)模式。

責(zé)任編輯:武曉燕 來源: 程序員wayn
相關(guān)推薦

2025-01-02 14:10:41

2025-01-07 09:00:00

2025-02-08 08:00:00

JavaDeepSeekIDEA

2024-04-22 15:00:00

AIAI輔助編程工具開發(fā)

2025-07-01 01:33:00

2025-06-03 01:00:00

2025-02-14 09:10:47

2025-02-14 08:13:05

AI技術(shù)開發(fā)

2025-03-03 00:05:00

AIJavaC++?

2025-05-22 02:00:00

AI人工智能前端

2025-03-03 02:00:00

DeepSeekAIToken

2024-05-11 07:54:29

AI輔助編程工具

2024-04-08 14:17:37

數(shù)據(jù)安全人工智能

2023-04-08 10:04:45

2024-02-26 12:51:20

2025-04-21 08:13:58

ChatGPTAINLP

2023-09-12 22:46:16

AI開發(fā)

2024-10-07 08:13:44

AI輔助編程工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品国产三级国产aⅴ浪潮 | 国产精品美女一区二区 | 国产亚洲精品久久久久久豆腐 | 国产在线精品一区二区 | 国产精品成人一区二区三区 | 在线观看av网站 | 在线观看特色大片免费网站 | 成人a在线观看 | av永久免费 | 国产精品毛片无码 | 蜜桃久久 | 亚洲 欧美 另类 综合 偷拍 | 成人亚洲 | 亚洲精品视频在线看 | 成人三级网址 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 国产成人精品一区二区三区在线 | 亚洲成人动漫在线观看 | 黄 色 毛片免费 | 欧美激情一区二区三级高清视频 | 久久久久久久久91 | 三a毛片| 91一区二区| 三级黄色片在线 | 欧美v免费 | 国产精品国产三级国产aⅴ中文 | 狠狠色综合网站久久久久久久 | 亚洲区视频 | 国产欧美在线视频 | 精品一区久久 | 91精品国产一区二区三区 | 婷婷久久综合 | 中文字幕在线观看视频网站 | 黑人成人网 | 久久国产欧美日韩精品 | 久久激情网 | 欧美日韩亚洲视频 | 国产亚洲一区二区三区在线 | 精品久久国产 | 91精品国产91 | 国产一区三区视频 |