wordpress 加密东莞seo托管
目录
让其他电脑可访问本地ollama
流式响应
让其他电脑可访问本地ollama
默认情况下,其他电脑不能直接访问本地 Ollama 服务。
解决方法:让 Ollama 监听局域网地址,而不是 localhost
我们可以让 Ollama 监听局域网 IP,在 Ollama 服务器上运行:
set OLLAMA_HOST=0.0.0.0:11434
ollama serve
注意:这种方式只对当前 CMD 窗口有效,关闭窗口后就会失效。
如果你希望 每次打开 CMD 或 PowerShell 都能自动使用该设置,可以永久设置环境变量:
在 CMD (以管理员身份打开)里运行:
setx OLLAMA_HOST "0.0.0.0:11434" /M
然后重新启动 CMD 并运行:
ollama serve
这样 Ollama 就会监听 0.0.0.0,让局域网的其他设备访问了。
可以运行以下命令检查:
echo %OLLAMA_HOST%
如果输出 0.0.0.0:11434
,说明已经成功设置。
流式响应
下面是一个流式响应的测试案例。其中的your_ip改为部署ollama的电脑的局域网ip。局域网ip可通过命令ipconfig查询,yuanshenQA32是我的ollama下载的模型。
import okhttp3.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.concurrent.TimeUnit;public class OllamaApiClient {private static final String API_URL = "http://your_ip:11434/api/generate";private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");private final OkHttpClient client = new OkHttpClient.Builder().readTimeout(0, TimeUnit.SECONDS) // 允许流式响应不超时.build();public void generateTextStream(String model, String prompt) {String jsonBody = "{\"model\": \"" + model + "\", \"prompt\": \"" + prompt + "\", \"stream\": true}";RequestBody body = RequestBody.create(jsonBody, JSON);Request request = new Request.Builder().url(API_URL).post(body).build();client.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {System.err.println("请求失败:" + e.getMessage());}@Overridepublic void onResponse(Call call, Response response) {if (!response.isSuccessful()) {System.err.println("响应错误:" + response);return;}try (BufferedReader reader = new BufferedReader(new InputStreamReader(response.body().byteStream()))) {String line;while ((line = reader.readLine()) != null) {System.out.println(line); // 实时打印返回内容}} catch (IOException e) {System.err.println("读取流失败:" + e.getMessage());}}});}public static void main(String[] args) {OllamaApiClient client = new OllamaApiClient();client.generateTextStream("yuanshenQA32:latest", "已知一个数 x,满足以下等式:3(x+2)−2(x−1)=4x+5。请解出 x 的值");}
}
运行后,打开控制台,可以观察到控制台会不断打印响应内容: