在HTML页面通过JavaScript访问Ollama本地部署的DeepSeek

news/2025/3/27 1:12:24/文章来源:https://www.cnblogs.com/detailNew/p/18792341

前排提醒:

1. 操作系统为Windows11

2. 如果你还没有使用Ollama本地部署DeepSeek,可以参考Windows系统上使用Ollama本地部署DeepSeek

3. 顺便解决了 HTML 页面调用 Ollama 服务的跨域问题


通过JavaScript访问本地DeepSeek服务的方式比较简单,可以直接参照以下HTML代码。注意: 要把 MODEL_NAME 修改为自己部署的DeepSeek版本

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>本地 DeepSeek 对话</title><style>:root {--primary-color: #2c3e50;--hover-color: #34495e;--background-color: #f8f9fa;--border-color: #dfe3e8;}body {font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;line-height: 1.6;padding: 1rem;background-color: var(--background-color);}.chat-container {max-width: 800px;margin: 0 auto;background: white;border-radius: 8px;box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);padding: 1.5rem;}.input-group {margin-bottom: 1.5rem;}#input {width: 96%;padding: 0.8rem;border: 2px solid var(--border-color);border-radius: 6px;resize: vertical;min-height: 100px;margin-bottom: 1rem;}#input:focus {outline: none;border-color: var(--primary-color);box-shadow: 0 0 0 3px rgba(44, 62, 80, 0.1);}.btn {background: var(--primary-color);color: white;border: none;padding: 0.8rem 1.5rem;border-radius: 6px;cursor: pointer;transition: background 0.2s ease;font-size: 1rem;}.btn:hover {background: var(--hover-color);}#response {white-space: pre-wrap;padding: 1rem;margin-top: 1.5rem;border: 2px solid var(--border-color);border-radius: 6px;background: #f8fafc;min-height: 100px;}.loading {opacity: 0.6;position: relative;}.loading::after {content: "正在思考...";color: var(--primary-color);}@media (max-width: 768px) {.chat-container {margin: 0 1rem;padding: 1rem;}}</style>
</head>
<body><div class="chat-container"><div class="input-group"><textarea id="input" rows="4"placeholder="请输入您的问题,例如:如何学习编程?"></textarea><button class="btn" onclick="sendToOllama()">发送问题</button></div><div id="response"></div></div><script>const API_ENDPOINT = 'http://127.0.0.1:11434/api/chat';const MODEL_NAME = 'deepseek-r1:1.5b';async function sendToOllama() {const inputEl = document.getElementById('input');const responseEl = document.getElementById('response');const btnEl = document.querySelector('.btn');const question = inputEl.value.trim();if (!question) {responseEl.textContent = '请输入有效的问题内容';return;}try {btnEl.disabled = true;responseEl.classList.add('loading');const response = await fetch(API_ENDPOINT, {method: 'POST',headers: { 'Content-Type': 'application/json',},body: JSON.stringify({model: MODEL_NAME,messages: [{ role: "user", content: question }],stream: false})});if (!response.ok) {throw new Error(`HTTP 错误! 状态码: ${response.status}`);}const data = await response.json();responseEl.innerHTML = `<strong>回复:</strong>${data.message.content}`;} catch (error) {console.error('请求失败:', error);responseEl.textContent = `请求失败: ${error.message}`;} finally {btnEl.disabled = false;responseEl.classList.remove('loading');}}</script>
</body>
</html>

打开HTML页面后,可以进行对话,如下图所示。

注意: 如果直接双击打开HTML页面,可能会出现跨域(CORS)错误,此时需要在Ollama服务端启用 CORS支持

第一步: 使用 WIN + R,搜索 “环境”,打开 “编辑系统环境变量”

第二步: 点击 “环境变量” 进入环境变量设置界面

第三步:系统变量这里,点击 “新建”

第四步: 变量名设置为 OLLAMA_ORIGINS,变量值设置为 *, 然后一直点击确定,保存环境变量设置

第五步: 重启Ollama服务,跨域(CORS)错误即可解决

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/905656.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【3】进制转换学习总结(c++)

1.进制的基础知识 一:进制是进位计数制,是人为定义的带进位的计数方法。对于任何一种进制,例如:X进制,就表示每一位置上的数运算时都是逢X进一位。比如十进制就是逢十进一,二进制就是逢二进一。 二:生活中常见的进制有:十进制,十二进制,二十四进制,六十进制等。 2.十…

vue+leaflet示例:地图截图批量导出(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

智能Agent如何改造传统工作流:从搜索到全能助手

智能Agent如何改造传统工作流:从搜索到全能助手 引言:当AI遇上工作流 还记得我们以前搜索信息的方式吗?输入关键词,浏览大量结果,筛选有用内容,再整合成我们需要的答案。这个过程不仅耗时,还常常让人感到疲惫。 如今,智能Agent的出现正在彻底改变这一切。想象一下,你只…

vue+leaflet示例:拓展wms以及wmts地图范围裁剪(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:快速渲染聚合矢量瓦片(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:热力图(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:地图全图以及框选截图导出功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:聚合图功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:结合geoserver利用WFS服务实现图层新增功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

vue+leaflet示例:结合geoserver利用WFS服务实现图层编辑功能(附源码下载)

demo源码运行环境以及配置运行环境:依赖Node安装环境,demo本地Node版本:14.19.1。 运行工具:vscode或者其他工具。 配置方式:下载demo源码,vscode打开,然后顺序执行以下命令: (1)下载demo环境依赖包命令:npm i (2)启动demo命令:npm run dev (3)打包demo命令: n…

IDEA使用Docker插件打包+推送+部署

前提条件:在服务器或者虚拟机中已经安装好了Docker1、确认是否安装插件2、配置SSH链接信息3、构建一个简单的SpringBootDemo工程4、编写一点测试代码 @RestController public class HelloController {@GetMapping("/hello")public String hello(){return "<…

蓝桥真题

有奖问答 这种选择导致分支可以使用递归 我个人觉得洛谷的答案错了,如果按能得到洛谷答案的代码,改成求30题对30道,最多对30道的话,得到的是0,应该把限制条件改为能计算答对10道题的方案,因为最多十道题不是不能达到10道题DFS #include <bits/stdc++.h> using name…