主流模型调用

一、openAI

使用文档:Developer quickstart - OpenAI API

复制代码
接口文档: https://platform.openai.com/docs/api-reference

1、获取 OpenAI API Key(即Token)

(1)访问:https://platform.openai.com/account/api-keys

(2)登录你的 OpenAI 账号(或注册一个新的)。

(3)点击 "Create new secret key"

复制生成的 Key(这个 Key 只显示一次,请妥善保存)

付费完成

2、访问api

url:

复制代码
https://api.openai.com/v1/chat/completions

header:

复制代码
Authorization: Bearer {YOUR_API_KEY}
Content-Type: application/json

curl示例:

复制代码
curl https://api.openai.com/v1/chat/completions 
-H "Authorization: Bearer sk-xxx" 
-H "Content-Type: application/json" 
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "今天上海的天气怎么样?"}]
}'

二、Ollama

还有的大模型注册送一定免费 tokens,还有的大模型不需要token。下面推荐几个LangChain4j支持的且免费的大模型:

模型类型 LangChain4j 模块 特点 是否免费
Ollama langchain4j-ollama 本地推理、内置多模型(Llama3、Phi3、Mistral等)
Local4j langchain4j-local 简单内存模型(仅测试)
HuggingFace Transformers langchain4j-huggingface 调用本地或远程的 HF 模型 ✅(离线模型)
LM Studio 通过 HTTP 调用本地服务 支持任何加载的 GGUF 模型

1、官网下载并安装 Ollama

2、启动

安装后打开即为启动,如果没有启动,可以手动启动

复制代码
ollama serve

默认端口是 11434,提供 REST API。Ollama 的本地 HTTP API 大致如下:

方法 路径 说明
POST /api/chat 发送聊天消息,返回模型回复
GET /api/models 查看本地可用模型

启动后发现是没有模型的:

提问也不会有响应

3、安装模型

建议安装轻量模型

(1)mistral

复制代码
ollama pull mistral

安装成功:

但是响应不了,电脑内存不足

(2)

复制代码
ollama run phi3:mini

4、调用

复制代码
curl -X POST http://localhost:11434/api/chat \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3",
    "messages": [{"role":"user","content":"讲个笑话"}]
  }'

Java 调用示例(普通 HttpClient)

复制代码
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class OllamaDemo {
    public static void main(String[] args) throws Exception {
        String requestBody = """
        {
          "model": "llama3",
          "messages": [{"role":"user","content":"用中文解释LangChain4j"}]
        }
        """;

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("http://localhost:11434/api/chat"))
                .header("Content-Type", "application/json")
                .POST(HttpRequest.BodyPublishers.ofString(requestBody))
                .build();

        HttpClient client = HttpClient.newHttpClient();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}

LangChain4j 提供 OllamaChatModel 直接封装本地 HTTP 调用:

复制代码
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.ollama.OllamaChatModel;

public class LangChainOllamaDemo {
    public static void main(String[] args) {
        ChatLanguageModel model = OllamaChatModel.builder()
                .baseUrl("http://localhost:11434") // 本地 Ollama 服务
                .modelName("llama3")
                .build();

        String result = model.generate("用中文介绍LangChain4j的核心接口");
        System.out.println(result);
    }
}
相关推荐
艾莉丝努力练剑21 小时前
【优选算法必刷100题:专题五】(位运算算法)第033~38题:判断字符是否唯一、丢失的数字、两整数之和、只出现一次的数字 II、消失的两个数字
java·大数据·运维·c++·人工智能·算法·位运算
大猫和小黄21 小时前
Java开发过程中的各种ID生成策略
java·开发语言·id
小罗和阿泽21 小时前
java [多线程基础 二】
java·开发语言·jvm
小罗和阿泽21 小时前
java 【多线程基础 一】线程概念
java·开发语言·jvm
悟空码字21 小时前
SpringBoot整合Zookeeper,实现分布式集群部署
java·zookeeper·springboot·编程技术·后端开发
橘颂TA21 小时前
线程池与线程安全:后端开发的 “性能 + 安全” 双维实践
java·开发语言·安全
色空大师21 小时前
服务打包包名设置
java·elasticsearch·maven·打包
xiaoyustudiowww21 小时前
fetch异步简单版本(Tomcat 9)
java·前端·tomcat
隐退山林21 小时前
JavaEE:多线程初阶(一)
java·开发语言·jvm
最贪吃的虎21 小时前
Redis其实并不是线程安全的
java·开发语言·数据库·redis·后端·缓存·lua