概述

本文使用deepseek大模型来进行本地中文问答。另外,嵌入模型使用中文嵌入模型:dmeta-embedding-zh。由于我只有16C64G的CPU配置,所以只能使用:deepseek-llm:7b。因为,deepseek_v2这个模型在该配置下跑不起来。

实现步骤

实现步骤和之前英文的步骤差不多,只不过模型改成了能支持中文的模型。中文的文章我下载的是毛主席的《实践论》。并把文档以txt的形式保存到了zhdata目录中。

1.读取数据,并构建嵌入和索引

2.基于索引构建基于大模型的查询引擎

3.给查询引擎提问

完整代码

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollama

# 读取本地数据
documents = SimpleDirectoryReader("chdata").load_data()

# 设置嵌入模型:使用本地模型
local_model = "/opt/models/shaw/dmeta-embedding-zh"
Settings.embed_model = HuggingFaceEmbedding(model_name=local_model)

# 基于Ollama大模型构建
Settings.llm = Ollama(model="deepseek-llm:7b", request_timeout=360.0)
# 构建索引
index = VectorStoreIndex.from_documents(
    documents, show_progress=True
)
# 构建查询引擎
query_engine = index.as_query_engine(response_mode="tree_summarize")
# 查询
response = query_engine.query("请介绍该文章的主要内容?")

print(response)

总结

deepseek模型对中文和英文支持都不错。这里通过deepseek可以支持中文的问答了。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐