【DeepSeek】官方最新提供【文件上传提示词】实践总结【Windows】【Java】
引言
为了应对不同的开发需求,本文我们将采用Java
语言按照DeepSeek
官方提供的关于DeepSeek-R1
模型文件上传建议的操作方式进行一下实践。
准备工作
- 通过本地
Ollama
运行DeepSeek-R1
模型,具体是运行7B
、14B
还是32B
的模型,依据自己电脑的配置来选择模型的参数体量,当然是参数体量越大效果越好,但是无论使用什么参数体量的模型对本次实践不产生影响。【必不可少】 Java
:1.8。SpringBoot
:2.X。
开始实践
第一步:Java
&SpringBoot
的安装与配置,此处忽略,可自行查询资料安装配置。【这不是本文重点】
第二步:采用工厂模式的Java
设计模式来实现一个可以读取不同格式文件的读取器,示例如下:
- 创建文件读取内容的实体类,并且重写
toString()
方法,将返回的字符串按照DeepSeek
官方提供的形式编写好,代码示例如下:
@Data
@Builder
public class FileReaderContent {
/**
* 文件名称
*/
private String fileName;
/**
* 文件类型
*/
private String fileType;
/**
* 文件内容
*/
private String fileContent;
/**
* 转换成DeepSeek官方提供的形式
*
* @return String
*/
@Override
public String toString() {
return "[file name]: " + fileName + '\n' +
"[file content begin]\n" +
fileContent + "\n" +
"[file content end]\n";
}
}
- 创建文件读取器,代码示例如下:
public interface FileReader {
/**
* 读取文件内容
*
* @return FileReaderContent
*/
FileReaderContent readerFileContent();
}
- 按照不同的文件类型实现具体的文件读取器,下面以
text
和excel
两个类型文件为例: - 创建
text
文件读取器实现类,代码示例如下:
@Slf4j
public class TextFileReader implements FileReader {
/**
* 文件地址
*/
private String filePath;
public TextFileReader(String filePath) {
this.filePath = filePath;
}
/**
* 读取text文件内容
*
* @return FileReaderContent
*/
@Override
public FileReaderContent readerFileContent() {
StringBuilder result = new StringBuilder();
try {
log.info("文件:{},内容读取开始======>", filePath);
URL url = new URL(filePath);
URLConnection urlConnection = url.openConnection();
urlConnection.setConnectTimeout(30 * 1000);
urlConnection.setReadTimeout(60 * 1000);
urlConnection.setDoInput(true);
InputStreamReader inputStreamReader = new InputStreamReader(urlConnection.getInputStream(), "GBK");
BufferedReader br = new BufferedReader(inputStreamReader);//构造一个BufferedReader类来读取文件
String s;
while ((s = br.readLine()) != null) {
//使用readLine方法,一次读一行
result.append(System.lineSeparator()).append(s);
}
log.info("文件:{},读取内容:{}", filePath, result);
br.close();
log.info("文件:{},内容读取结束======>", filePath);
} catch (Exception e) {
e.<