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

基于DeepSeek + VSCode 實現AI輔助編程

人工智能
隨著人工智能技術的飛速發展,AI 輔助編程逐漸成為提升開發效率、優化代碼質量的重要工具。本文通過結合 DeepSeek 的強大語言模型和 VSCode 的高效開發環境,展示了如何利用 AI 輔助編程完成一個經典的 MapReduce 詞頻統計任務。

隨著人工智能技術的飛速發展,AI 輔助編程逐漸成為提升開發效率、優化代碼質量的重要工具。本文通過結合 DeepSeek 的強大語言模型和 VSCode 的高效開發環境,展示了如何利用 AI 輔助編程完成一個經典的 MapReduce 詞頻統計任務。這一實踐不僅展示了 AI 在編程中的應用潛力,還為開發者提供了一個高效、便捷的開發流程示例,幫助讀者快速上手 AI 輔助編程,并探索其在實際項目中的應用價值。

實驗環境:

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

以上實驗環境并不要求完全一致,能實現效果即可。

安裝與配置Cline

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

圖片圖片

安裝完成后,我們點擊右上角齒輪圖案進入設置,選擇當前的AI輔助編程使用的大模型。對于DeepSeek,我們有兩種方案:

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

圖片圖片

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

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

圖片圖片

AI輔助編程-以詞頻統計案例為例實現

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

為了更好地實現輔助編程,我首先用maven創建了一個干凈的新項目,項目的架構圖為

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

我本機安裝的hadoop版本為3.3.5,因此我提前在pom.xml中引入基礎的包,方便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>
    <!-- 導入hadoop依賴環境 -->
    <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>

之后新建對話的第一個問題就詳細描述我要完成的任務:

**任務目標**
使用JAVA語言,用MapReduce框架實現詞頻統計,要求輸出詞頻排序結果

**輸入數據**

1. txt格式
2. 請你隨意生成三個txt內容用于測試,文件不用很大,每個文件有幾條數據即可

**開發要求**

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

之后Cline根據我的要求,編寫好對應的promt去請求DeepSeek,并依次創建了測試數據文件

圖片圖片

接著又依次根據我的需求,創建了

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認為代碼編寫完成,可以使用maven直接打包,并用hadoop指令運行,但這時候遇到了一個問題,我并沒有配置hadoop的環境變量(也就是說用hadoop指令需要到我安裝的hadoop目錄/usr/local/hadoop下),因此我提示了Cline這一點

圖片圖片

在這之后,項目成功被打包為jar包,并執行,輸出結果至創建好的/output文件夾

圖片圖片

最終效果

最終Cline + DeepSeek自動創建的項目結構為:

圖片圖片

output文件夾中成功輸出了詞頻統計:

圖片圖片

本文驗證了AI輔助編程在MapReduce開發中的有效性,其代碼生成效率與質量均達到專業開發標準。未來隨著AI模型對分布式系統知識的深化,該方法有望成為大規模數據處理任務的首選開發模式。

責任編輯:武曉燕 來源: 程序員wayn
相關推薦

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輔助編程工具開發

2025-02-14 09:10:47

2025-06-03 01:00:00

2025-03-03 00:05:00

AIJavaC++?

2025-05-22 02:00:00

AI人工智能前端

2025-02-14 08:13:05

AI技術開發

2025-03-03 02:00:00

DeepSeekAIToken

2024-04-08 14:17:37

數據安全人工智能

2024-05-11 07:54:29

AI輔助編程工具

2024-02-26 12:51:20

2023-04-08 10:04:45

2025-04-21 08:13:58

ChatGPTAINLP

2025-02-27 08:00:00

DeepSeek大模型人工智能

2023-09-12 22:46:16

AI開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品香蕉一区二区三区 | 久久久久久一区 | 国产在线资源 | 拍拍无遮挡人做人爱视频免费观看 | 欧美国产日韩在线观看 | 在线观看www| 欧美一级免费看 | aaa国产大片| 日韩成人在线观看 | 91电影院 | 中文字幕一区二区三 | 99久久日韩精品免费热麻豆美女 | 九九亚洲| 亚洲成人一区 | 天天射网站 | 国产精品久久久久久久模特 | 99免费在线观看 | 久久久久久久久99精品 | av入口| 日韩无 | 成人精品一区二区三区中文字幕 | 国产在线a视频 | 久久成人一区 | 国产999在线观看 | 亚州视频在线 | 二区欧美 | 国产乱码精品一品二品 | 自拍亚洲 | 天天操天天舔 | 黄色av网站在线免费观看 | 一区二区三区小视频 | 欧美日韩综合一区 | 中文字幕在线免费观看 | 亚洲 欧美 激情 另类 校园 | 日韩欧美一级精品久久 | 国产美女免费视频 | 欧美在线视频二区 | 午夜激情在线 | 久久综合色综合 | 欧美成人一区二免费视频软件 | 日韩视频中文字幕 |