【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 来与一个智能助手进行终端聊天

# 在终端中与智能助手聊天
from openai import OpenAI


# 指向本地服务器
client = OpenAI(base_url="http://localhost:1234/v1", api_key="lm-studio")


# 初始化历史记录列表,其中包含系统和用户的角色和内容
history = [
    {"role": "system", "content": "你是一个聪明的助手。你总是提供合理、准确且有帮助的答案。总是用中文简体回答"},
    {"role": "user", "content": "你好,向第一次开启这个程序的人介绍你自己。请简洁明了。请用中文回答"},
]


# 使用while循环不断地接收用户输入并提供回答
while True:
    # 创建聊天完成请求,指定模型、历史消息和其他参数
    completion = client.chat.completions.create(
        model="zhouzr/Llama3-8B-Chinese-Chat-GGUF",
        messages=history,
        temperature=0.7,
        stream=True,
    )


    # 初始化新消息字典,用于存储助手的回答
    new_message = {"role": "assistant", "content": ""}


    # 遍历完成请求的结果,并打印内容
    for chunk in completion:
        if chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content, end="", flush=True)
            new_message["content"] += chunk.choices[0].delta.content


    # 将新消息添加到历史记录列表中
    history.append(new_message)


    # 如果需要查看聊天历史,可以取消注释以下代码
    # import json
    # gray_color = "\033[90m"
    # reset_color = "\033[0m"
    # print(f"{gray_color}\n{'-'*20} History dump {'-'*20}\n")
    # print(json.dumps(history, indent=2))
    # print(f"\n{'-'*55}\n{reset_color}")


    # 打印空行,并将用户的新输入作为消息添加到历史记录列表中
    print()
    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. 打印回复并等待用户的下一条信息。

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

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Llama.cpp 是一个虚构的编程文件名,因此无法给出具体的编程训练过程。然而,我可以简单介绍一下通常的编程训练方法。 首先,为了训练 Llama.cpp 这个程序,我们需要了解所使用的编程语言和开发环境。根据具体情况,我们可以选择使用 C++、JavaPython 或其他编程语言来编写代码。此外,我们需要安装相应的开发环境,如 Visual Studio、Eclipse 或者 PyCharm。 接下来,我们需要设定训练目标。这可能是一个具体的问题或任务,例如编写一个简单的加法程序、设计一个实现某种功能的小游戏或者开发一个完整的应用程序。 在开始编写代码之前,我们应该对问题进行分析和规划。这包括确定所需的输入和输出,设计程序的结构和逻辑,以及选择合适的数据结构和算法。 然后,我们可以开始编写代码。可以使用文本编辑器或集成开发环境来创建和编辑程序文件。根据训练目标,我们可以使用不同的编程概念和语法,如变量、函数、循环和条件语句,来实现所需的功能。 编写代码后,我们需要进行测试和调试。可以编写一些测试用例来验证程序的正确性,并运行程序进行测试。通过调试技巧和工具,我们可以找到并修复潜在的错误和问题。 最后,我们可以优化代码,提高程序的性能和效率。这包括减少资源消耗、优化算法和数据结构,以及优化代码的可读性和可维护性。 通过不断的实践和训练,我们可以逐渐提升编程技能,并学会更多高级的编程概念和技术。在编程的旅程中,理解问题、设计解决方案、编写代码、测试和调试是一个循环迭代的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值