• 【AI工具】LM Studio 部署本地llama3以及python调用openai的API与llama3本地服务器进行问答...


    0a38c796db1ce1c7cdfb0208e4621af9.png

    1. 下载LM Studio

    https://lmstudio.ai/

    1ad7d093b91cbae271cc11904782afe2.png

    2. 安装后打开主界面

    d5e472b7adcabe2fea1fe0a2779e86b3.png

    3. 下载自己感兴趣的大模型

    由于网络原因,通过IDM手动下载后拷贝到相应文件夹下

    点击下载后,左下角点击“ 1 downloading”可以查看详情

    b9475c9ac0484dd5a52c2d4c7abd22bc.png

    从详情中提取出模型下载地址然后手动下载,比如“https://huggingface.co/TheBloke/phi-2-GGUF/resolve/main/phi-2.Q4_K_S.gguf”

    daddc4aafc70b405e74efc81741808dc.png

    下载完毕后,将模型拷贝到 模型文件夹所在目录,新建两级目录,参考下图:

    25991d1a32881f91ea528235feed4a94.png

    以模型下载网址“https://huggingface.co/TheBloke/phi-2-GGUF/resolve/main/phi-2.Q4_K_S.gguf”为例,新建 “TheBloke”文件夹,然后在里面新建 “phi-2-GGUF”文件夹,最后把 模型文件“phi-2.Q4_K_S.gguf”拷贝到 “phi-2-GGUF”文件夹。

    之后就可以打开聊天界面,加载模型后聊天了

    01f2fbf072b2a318de44b17e94c9121f.png

    4. 启动本地服务器

    7376f4e9bf4772602c92e37c367ce2e8.jpeg

    5. 使用 OpenAI 的 Python API 来与一个智能助手进行终端聊天

    1. # 在终端中与智能助手聊天
    2. from openai import OpenAI
    3. # 指向本地服务器
    4. client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")
    5. # 初始化历史记录列表,其中包含系统和用户的角色和内容
    6. history = [
    7. {"role": "system", "content": "你是一个聪明的助手。你总是提供合理、准确且有帮助的答案。总是用中文简体回答"},
    8. {"role": "user", "content": "你好,向第一次开启这个程序的人介绍你自己。请简洁明了。请用中文回答"},
    9. ]
    10. # 使用while循环不断地接收用户输入并提供回答
    11. while True:
    12. # 创建聊天完成请求,指定模型、历史消息和其他参数
    13. completion = client.chat.completions.create(
    14. model="zhouzr/Llama3-8B-Chinese-Chat-GGUF",
    15. messages=history,
    16. temperature=0.7,
    17. stream=True,
    18. )
    19. # 初始化新消息字典,用于存储助手的回答
    20. new_message = {"role": "assistant", "content": ""}
    21. # 遍历完成请求的结果,并打印内容
    22. for chunk in completion:
    23. if chunk.choices[0].delta.content:
    24. print(chunk.choices[0].delta.content, end="", flush=True)
    25. new_message["content"] += chunk.choices[0].delta.content
    26. # 将新消息添加到历史记录列表中
    27. history.append(new_message)
    28. # 如果需要查看聊天历史,可以取消注释以下代码
    29. # import json
    30. # gray_color = "\033[90m"
    31. # reset_color = "\033[0m"
    32. # print(f"{gray_color}\n{'-'*20} History dump {'-'*20}\n")
    33. # print(json.dumps(history, indent=2))
    34. # print(f"\n{'-'*55}\n{reset_color}")
    35. # 打印空行,并将用户的新输入作为消息添加到历史记录列表中
    36. print()
    37.     history.append({"role""user""content"input("> ")})

    上代码段目的在于演示如何使用 OpenAI 的 Python API 来与一个智能助手进行终端聊天。

    代码首先导入了 openai 包,并使用 OpenAI 类指向了一个本地服务器,同时提供了 API 密钥。

    接下来定义了一个 history 数组来记录会话历史,这个历史包含系统的自我介绍及用户的第一条信息。

    在 while True 循环中,使用 client.chat.completions.create 方法来生成聊天回复,并将该回复打印到终端。然后新的用户输入被附加到 history 数组中以用于下一轮会话的生成。

    最后,有一段注释代码,如果取消注释,它将打印整个会话历史,使用了一些 ANSI 转义码来给输出文字加上灰色。

    功能总结:

    此代码段旨在展示如何通过调用 OpenAI 的 API 来实现在终端内的智能助手聊天功能。它通过维护会话历史记录来生成连贯的对话,并实时向用户展示聊天助手的回复。代码中的执行流程大致如下:

    1. 导入模块和设置客户端。

    2. 定义会话历史记录。

    3. 通过无限循环等待用户输入。

    4. 使用 OpenAI API 根据历史记录生成回复。

    5. 打印回复并等待用户的下一条信息。

    此代码模拟的是一个简单的命令行聊天界面,在终端与用户实时交互。

  • 相关阅读:
    【计算机基础知识7】垃圾回收机制与内存泄漏
    计算机毕业设计django+hadoop+scrapy租房可视化 租房推荐系统 租房大屏可视化 租房爬虫 spark 58同城租房爬虫 房源推荐系统
    Netty Review - 从BIO到NIO的进化推演
    Unity UGUI开发规范
    vue和webpack所依赖的node.js进程信息process及环境变量process.env
    MySQL-事务操作
    并发基本原理(四):AQS源码解析1-ReentrantLock的lock实现原理
    1、HTML初识_排版、图片、音频、视频、超链接标签和绝对、相对路径学习
    MYSQL 数字(Aggregate)函数
    MySQL创建函数及其使用
  • 原文地址:https://blog.csdn.net/cxyhjl/article/details/138143416