Ollama的配置修改与接口调用

在[部署好ollama之后],我们再来介绍ollama的一些其他用法。

一、修改环境变量

1.1 配置远程访问

在我们本地部署好ollama之后,仅支持本机访问,我们可以通过修改环境变量让其他人可以远程访问。

在wins电脑上增加环境变量:

OLLAMA_HOST   0.0.0.0:11434

1.2 配置本地模型路径

1.2.1 本地模型默认路径

wins本地模型默认路径:C:\Users\%username%\.ollama\models。

这里 %username% 是当前登录的用户名。例如,如果用户名为 Smqnz,则模型文件的默认存储路径可能是 C:\Users\Smqnz\.ollama\models。

以我的电脑为例:

C:\Users\admin\.ollama\models

1.2.2 修改本地模型默认路径

wins上的环境变量增加:

OLLAMA_MODELS  你想要存放的路径

以下为修改示例:

修改后,重启ollama即可。

1.3 配置允许的http请求来源

OLLAMA_ORIGINS 是 Ollama 中用于配置跨域资源共享(CORS)的环境变量,可以指定哪些来源(域名、IP 地址等)可以访问 Ollama 提供的 API 服务。

如果我们想让它接收任何来源(IP)的http请求的话,我们需要将其设置为*。

OLLAMA_ORIGINS  *

这里一定要注意,以上修改的环境变量名称必须为大写,不要随意修改。

二、ollama常用API请求

一般来说,我们可以通过打开命令行窗口直接进行对话。

但是这种方式对于开发者来说并不实用,一般我们需要通过其API进行访问与开发,本次我们就来详细聊一下ollama常见的API。

2.1 文本生成API

Ollama 提供了一套功能丰富的文本生成接口,方便用户与本地部署的模型进行交互,以下是其主要的文本生成接口及功能介绍:

接口路径:POST /api/generate

功能:向模型发送提示(prompt),生成文本回复。

请求参数:

model:模型名称,如 “deepseek-r1:7b”。

prompt:输入的提示文本。

stream:是否启用流式输出,默认为 false。

options:可选参数,包括:

temperature:控制生成文本的多样性,取值范围通常为 0 到 1。

max\_tokens:最大生成的 token 数量。

top\_p:Top-p 采样参数。
import requests``   ``# Ollama 服务的 URL``url = "http://localhost:11434/api/generate"``   ``# 请求数据``data = {`    `"model": "deepseek-r1:8b",  # 指定模型名称`    `"prompt": "你好,请简单介绍一下Python语言的特点。",  # 输入的提示词`    `"stream": False,  # 是否启用流式响应`    `"options": {  # 可选参数`        `"temperature": 0.7,  # 温度参数,控制生成内容的随机性`        `"max_tokens": 100  # 最大生成长度`    `}``}``   ``# 发送 POST 请求``response = requests.post(url, json=data)``   ``# 检查响应状态``if response.status_code == 200:`    `result = response.json()`    `print("生成的文本:", result.get("response"))``else:`    `print("请求失败,状态码:", response.status_code)`    `print("错误信息:", response.text)

2.2 对话聊天API

接口路径:POST /api/chat

功能:支持多轮对话,模型会记住上下文。

请求参数:

model:模型名称。

messages:消息列表,包含用户输入和模型回复,格式为 {“role”: “user”, “content”: “用户输入内容”}。

stream:是否启用流式输出,默认为 false。

options:可选参数,与生成文本接口类似。

import requests``import json``   ``# 设置请求的URL和端口``url = "http://localhost:11434/api/chat"``   ``# 设置请求的数据``data = {`    `"model": "deepseek-r1:8b",  # 模型名称`    `"messages": [`        `{"role": "system", "content": "你现在是一名合格的售票员,你还可以随意生成一些航班路线提供给用户,请扮演好您的角色。"},`        `{"role": "user", "content": "你好,我想订一张机票。"},`        `{"role": "assistant", "content": "好的,请问您要去哪里?"},`        `{"role": "user", "content": "我要去北京。"},`        `{"role": "user", "content": "有哪些航班可选?"}`    `],`    `"stream": False  # 是否启用流式输出``}``   ``# 设置请求头``headers = {`    `"Content-Type": "application/json"``}``   ``# 发送POST请求``response = requests.post(url, headers=headers, data=json.dumps(data))``   ``# 检查响应状态码``if response.status_code == 200:`    `# 解析响应内容`    `result = response.json()`    `# 输出模型的回复内容`    `print("模型回复:", result.get("message").get("content"))``else:`    `# 打印错误信息`    `print(f"请求失败,状态码:{response.status_code}")`    `print("错误信息:", response.text)

三、ollama兼容openai的请求

3.1 单轮对话

from openai import OpenAI``   ``client = OpenAI(`    `base_url="http://localhost:11434/v1",  # Ollama默认API地址`    `api_key="test"  # 必填字段但会被忽略,随便填写即可``)``   ``response = client.chat.completions.create(`    `model="deepseek-r1:8b",  # 替换为已下载的模型名称`    `messages=[`        `{"role": "system", "content": "你是一个有帮助的助手"},`        `{"role": "user", "content": "用50字解释量子计算"}`    `],`    `temperature=0.7,`    `max_tokens=1024``)``   ``print(response.choices[0].message.content)

3.2 多轮对话

from openai import OpenAI``   ``   ``def run_chat_session():`    `client = OpenAI(`        `base_url="http://localhost:11434/v1/",`        `api_key="test"  # 必填但会被忽略`    `)``   `    `chat_history = []`    `while True:`        `user_input = input("用户:")`        `if user_input.lower() == "exit":`            `print("AI:对话结束")`            `break``   `        `chat_history.append({"role": "user", "content": user_input})``   `        `try:`            `response = client.chat.completions.create(`                `messages=chat_history,`                `model="deepseek-r1:8b"  # 替换成你安装的模型名称`            `)`            `ai_response = response.choices[0].message.content`            `print(f"AI:{ai_response}")`            `chat_history.append({"role": "assistant", "content": ai_response})`        `except Exception as e:`            `print(f"错误:{e}")``   ``   ``if __name__ == "__main__":`    `run_chat_session()

可以看到,多轮对话可以通过维护问答列表能够很好地理解上下文的含义。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值