安装网址:Ollama
环境变量相关配置:
OLLAMA_MODELS | 表示模型文件的存放目录,默认目录为当前用户目录即 |
OLLAMA_HOST | 表示ollama 服务监听的网络地址,默认为127.0.0.1 如果想要允许其他电脑访问 Ollama(如局域网中的其他电脑),建议设置成 0.0.0.0 |
OLLAMA_PORT | 表示ollama 服务监听的默认端口,默认为11434 如果端口有冲突,可以修改设置成其他端口(如8080等) |
OLLAMA_ORIGINS | 表示HTTP 客户端的请求来源,使用半角逗号分隔列表 如果本地使用不受限制,可以设置成星号 * |
OLLAMA_KEEP_ALIVE | 表示大模型加载到内存中后的存活时间,默认为5m即 5 分钟 (如纯数字300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活) 建议设置成 24h ,即模型在内存中保持 24 小时,提高访问速度 |
OLLAMA_NUM_PARALLEL | 表示请求处理的并发数量,默认为1 (即单并发串行处理请求) 建议按照实际需求进行调整 |
OLLAMA_MAX_QUEUE | 表示请求队列长度,默认值为512 建议按照实际需求进行调整,超过队列长度的请求会被抛弃 |
OLLAMA_DEBUG | 表示输出 Debug 日志,应用研发阶段可以设置成1 (即输出详细日志信息,便于排查问题) |
OLLAMA_MAX_LOADED_MODELS | 表示最多同时加载到内存中模型的数量,默认为1 (即只能有 1 个模型在内存中) |
本地api调用:
import requests
import json
def chat(model, prompt):
# 定义API地址(本地运行的Ollama服务)
url = 'http://localhost:11434/api/generate'
# 定义请求的模型和提示
data = {
"model": model, # 你要使用的模型,例如llama3.1
"prompt": prompt, # 你想要提交的提示内容
}
# 发送POST请求到API
response = requests.post(url, headers={'Content-Type': 'application/json'}, data=json.dumps(data), stream=True)
# 检查响应状态
if response.status_code == 200:
# 遍历响应内容的块
for chunk in response.iter_content(chunk_size=1024):
try:
if chunk:
res = json.loads(chunk.decode('utf-8'))['response'] # 去掉头尾的空格和换行符
# 在这里处理每一块数据 (例如,写入文件,或者进行处理)
print(res, end='') # 将chunk打印到控制台
except:
pass
else:
print(f"Request failed with status code: {response.status_code}")
if __name__ == "__main__":
model = "gemma2:2b" # 你要使用的模型
prompt = "你是谁?" # 你想要提交的提示内容
chat(model, prompt)