分享

分享个人经验:Deepseek在windows上本地部署、投喂素材、编程交互

 芥子c1yw3tb42g 2025-02-17 发布于陕西

Deepseek本地部署适合的场景是数据不能公开,需要建立私有知识库,代替自己书写论文专利或者其他有保密要求的文档的情况;或者断网环境不能访问外部大模型工具,在内网使用大模型;亦或者是调教电子魅魔(嘿嘿)

目前网上的教程只教到如何部署deepseek模型,但这个ai工具不投喂素材学习,就如同一个没有经验的神童一样,空有智力没有知识。接下来除了deepseek部署外,我还会介绍我如何投喂文档素材进行学习、联网搜索以及如何使用python编程交互。都没什么难度,无论学没学过计算机都可以实现。

一、Deepseek部署

这个网上教学很多,我简单一讲,基本都是先下载安装ollama,官网地址:

https:///

图片
图片

在安装好后,先启动ollama,然后在命令提示符界面或者是windows powershell界面输入想安装的模型版本

图片
图片

然后选择模型大小,标签“8b”表示该模型大约有80亿个参数,性能比较好的台式电脑才可以选,如果电脑比较差,可以选择“1.5b”或者“7b”,对电脑性能非常自信可以选择“14b”“32b”,至于“70b”“671b”,家用电脑还是不要尝试了。

输入  ollama run deepseek-r1:8b下载安装模型。

图片

下载安装过程开始很快最后网速非常慢,可以关闭界面重新打开再输入一次ollama run deepseek-r1:8b,进度条满后就可以了

启动后默认使用cpu运行模型,如需使用显卡加速,只能用Nvidia GPU,AMD和Intel显卡不行,Nvidia GPU需要安装CUDA,这部分网上自己搜教程

但是此时只有简单对话的功能,很多人到此大失所望,就这?

二、Deepseek投喂素材建立个人知识库

工具 AnythingLLM 下载安装,也是毫无难度,家用windows电脑选择windows x64版本安装即可

https:///

图片
图片

安装后打开即可使用

图片

点击这里

图片

点击这里上传素材,从PDF、TXT到Word、Excel,几乎所有常见的文档格式都支持。

图片

上传后,选中我们要投喂的素材,进行投喂学习

图片
图片

稍等一会,它就把这些内容读完掌握了,下图即学习完成

图片

使用,回答前它会查阅学习过的资料,并且在设置里可以启用联网搜索

图片
图片

三、使用python交互

这部分需要有简单的python基础,这里只提供最简单的示例,有复杂需求可以自己去查看github说明。

由于微信订阅号查看不方便,直接发代码笔记链接在下面方便复制

https://www./wangzilong-4omf5/om3ugu/rxx6h25l0g1cgykp?#《python与Deepseek模型交互》

核心方法:

import requestsimport json
# 项目参数API_BASE_URL = 'http://localhost:11434'API_PATH = '/api/generate'
def get_next_chapter(prompt):    '''向 Ollama 模型发送请求并获取内容'''    model_name = 'deepseek-r1:8b'  # 替换为你使用的模型名称
    data = {        'model': model_name,        'prompt': prompt,        'stream': False    }
    response = requests.post(        f'{API_BASE_URL}{API_PATH}',        json=data    )
    if response.status_code == 200:        # 使用response.json()来解析JSON数据        response_data = response.json()        # 从解析后的字典中获取'response'字段的值        return response_data['response']    else:        raise ValueError(f'请求失败,状态码:{response.status_code}')

用上方方法即可完成交互,深夜12点,明天还要早起上班,草草完成一个小Demo,实现了自动生成连贯章节文本并保存到txt文件中的功能:

import requestsimport jsonfrom pathlib import Path

def main():    # 项目路径和文件夹创建    project_dir = Path('D:\\novel')    if not project_dir.exists():        project_dir.mkdir()
    novel_path = project_dir / 'novel.txt'    if not novel_path.exists():        novel_path.touch()
    # 存在与否判断(如果不存在则创建)    open(novel_path, 'a').close()
    # 项目参数    API_BASE_URL = 'http://localhost:11434'    API_PATH = '/api/generate'
    prompt_all=''    def get_next_chapter(prompt):        '''向 Ollama 模型发送请求并获取下一个章节内容'''        model_name = 'deepseek-r1:8b'  # 替换为你使用的模型名称
        data = {            'model': model_name,            'prompt': prompt,            'stream': False        }
        response = requests.post(            f'{API_BASE_URL}{API_PATH}',            json=data        )
        if response.status_code == 200:            # 使用response.json()来解析JSON数据            response_data = response.json()            # 从解析后的字典中获取'response'字段的值            return response_data['response']        else:            raise ValueError(f'请求失败,状态码:{response.status_code}')
    def generate_chapter(chapter_id):        '''生成指定章节内容'''        prompt = f'小说之前的内容: {prompt_all} ,生成小说下一章'        return get_next_chapter(prompt)
    tmp = (f'你根据我的指令生成小说,以此为故事的开头,写一篇西方玄幻悬疑小说,融汇克苏鲁风格、西方魔幻元素、第一次工业革命时代风情和蒸汽朋克情怀,篇幅30章:'           f'蒸汽与机械的浪潮中,谁能触及非凡。历史和黑暗的迷雾里,又是谁在耳语。我从诡秘中醒来,睁眼看见这个世界:'           f'枪械,大炮,巨舰,飞空艇,差分机;魔药,占卜,诅咒,倒吊人,封印物……光明依旧照耀,神秘从未远离,这是一段“愚者”的传说。'           f'黑铁纪元,七位正统神灵与四大国统治着北大陆。蒸汽与机械的浪潮中,工业化社会迅速发展成形,而在看似平静繁荣的表面下,则是一个神秘扭曲,乃至疯狂的非凡世界。')    firstprompt=get_next_chapter(tmp)    prompt_all=prompt_all+firstprompt    print(firstprompt)    with open(novel_path, 'a', encoding='utf-8') as f:        f.write(f'\n\n{firstprompt}\n\n')    # 与你之前的代码结合使用,根据需要调用生成方法    current_chapter = 1  # 初始化章节计数器

    while True:        print(f'正在生成第{current_chapter}章...')        chapter_content = generate_chapter(current_chapter)        prompt_all = prompt_all + chapter_content        print(chapter_content)
        # 将内容追加到文件中        with open(novel_path, 'a', encoding='utf-8') as f:            f.write(f'\n\n[第{current_chapter}章]\n{chapter_content}\n\n')
        current_chapter += 1
        if current_chapter > 30:            break
    print('\n小说生成完成!')

if __name__ == '__main__':    main()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多