零基础入门AI大模型应用开发——第一天:大模型本地部署,调用大模型API可直接工程化应用(全部代码和详细部署流程)

Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。

以下是其主要特点和功能概述:

1. 简化部署:Ollama 目标在于简化在 Docker 容器中部署大型语言模型的过程,使得非专业用户也能方便地管理和运行这些复杂的模型。

2.轻量级与可扩展:作为轻量级框架,Ollama 保持了较小的资源占用,同时具备良好的可扩展性,允许用户根据需要调整配置以适应不同规模的项目和硬件条件。

3. API支持:提供了一个简洁的 API,使得开发者能够轻松创建、运行和管理大型语言模型实例,降低了与模型交互的技术门槛。

4. 预构建模型库:包含一系列预先训练好的大型语言模型,用户可以直接选用这些模型应用于自己的应用程序,无需从头训练或自行寻找模型源。

5. 模型导入与定制:

从 GGUF 导入:支持从特定平台(如GGUF,假设这是一个模型托管平台)导入已有的大型语言模型。从 PyTorch 或 Safetensors 导入:兼容这两种深度学习框架,允许用户将基于这些框架训练的模型集成到 Ollama 中。自定义提示:允许用户为模型添加或修改提示(prompt engineering),以引导模型生成特定类型或风格的文本输出。

6. 跨平台支持:提供针对 macOS、Windows(预览版)、Linux 以及 Docker 的安装指南,确保用户能在多种操作系统环境下顺利部署和使用 Ollama。

7. 命令行工具与环境变量:

命令行启动:通过命令 ollamaserve 或其别名 serve、start 可以启动 Ollama 服务。

环境变量配置:如 OLLAMA_HOST,用于指定服务绑定的主机地址和端口,默认值为 127.0.0.1:11434,用户可以根据需要进行修改。

一、本地部署

ollama run llama3

部署完成: 

其他模型: 

二、调用本地大模型API

在第一步部署完之后,就会有这个标志了,就已经开启api服务了。

http://localhost:11434/api/generate

 接下来,我们尝试使用代码去调用它。运行下面这个python代码。

import requests
# 发送 API 请求获取回复
url = "http://localhost:11434/api/generate"
payload = {"model": "llama3", "prompt": "中文回答,你是谁"}
response = requests.post(url, json=payload)
response_json = response.json()
print(response_json)

结果报错:

D:\lamma>python 1.py
Traceback (most recent call last):
  File "E:\Anaconda3\Lib\site-packages\requests\models.py", line 960, in json
    return complexjson.loads(self.content.decode(encoding), **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Anaconda3\Lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Anaconda3\Lib\json\decoder.py", line 340, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 91)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\lamma\1.py", line 6, in <module>
    response_json = response.json()
                    ^^^^^^^^^^^^^^^
  File "E:\Anaconda3\Lib\site-packages\requests\models.py", line 968, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Extra data: line 2 column 1 (char 91)

这是由于,大模型的输出是流式的,所以改成非流式就可以了。

import requests
# 发送 API 请求获取回复
url = "http://localhost:11434/api/generate"
payload = {"model": "llama3", "prompt": "中文回答,你是谁" ,"stream":False}
response = requests.post(url, json=payload)
response_json = response.json()
print(response_json)

 这个看起来还是不舒服,怎么才能又快又看着舒服呢。

那就是只打印回答的文本,和修改为流式输出。

Windows 玩转大模型第二天:流式输出和角色扮演(提示词)(全部代码和详细部署流程)-CSDN博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学术菜鸟小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值