Простое Java-пакетирование для вызова ollama
Добавьте адрес репозитория
<!-- Добавьте адрес репозитория ollama-client -->
<repositories>
<repository>
<id>ollama-client</id>
<url>https://gitee.com/da9527/ollama-client/raw/master/repo</url>
</repository>
</repositories>
Добавьте зависимость
<dependency>
<groupId>com.da</groupId>
<artifactId>ollama-client</artifactId>
<version>1.0.9</version>
</dependency>
Ollama ollama = new Ollama("deepseek-r1:1.5b");
System.out.println(ollama.run("Кто ты?"));
```### Использование PromptTemplate
Три способа заполнения шаблонных переменных
```java
// Именованный шаблон
PromptTemplate named = new PromptTemplate("{name} ваш баланс составляет: {balance} миллиардов юаней");
System.out.println(named.format("name", "Ада", "balance", 1000));
// Индексированный шаблон
PromptTemplate indexed = new PromptTemplate("%1$s день рождения: %2$d/%3$d/%4$d");
System.out.println(indexed.format("Ада", 2000, 10, 1));
// Смешанный шаблон
Map<String, String> params = new HashMap<>();
params.put("name", "Ада");
params.put("1$s", "владеет");
params.put("car", "Xiaomi SU7");
PromptTemplate mixed = new PromptTemplate("{name} хочет {1$s} автомобиль: {car}");
System.out.println(mixed.format(params));
Ollama ollama = new Ollama("deepseek-r1:1.5b");
PromptTemplate prompt = new PromptTemplate("Вы шеф-повар, отвечайте на следующий вопрос профессионально.\nВопрос: {question}");
for (Result result : ollama.run_stream(prompt.format("question", "Как приготовить яичную кашу?"))) {
System.out.print(result.content());
}
Ollama ollama = new Ollama("deepseek-r1:1.5b");
List<Message> messages = Arrays.asList(
new SystemMessage("Вы шеф-повар, знаете множество блюд"),
new UserMessage("Рекомендуйте мне китайское блюдо")
);
// content() вернет ответ модели
System.out.println(ollama.chat(messages).content());
System.out.println(ollama.chat(new UserMessage("Мне не нравится, предложите что-то другое")).content());
// chat_history() вернет историю текущего диалога
System.out.println(ollama.chat_history());
Использование метода _stream
вернет итерируемый объект StreamResult
, что позволяет удобно выполнять поточное выполнение
Ollama ollama = new Ollama("deepseek-r1:1.5b");
for (Result result : ollama.run_stream("你好,我是谁")) {
System.out.print(result.content());
}
Ollama ollama = new Ollama("deepseek-r1:1.5b");
```List<Message> messages = Arrays.asList(
new SystemMessage("Вы是一名厨师,会非常多的菜品"),
new UserMessage("给我推荐一道川菜")
);
for (Result s : ollama.chat_stream(messages)) {
System.out.print(s.content());
}
Ollama ollama = new Ollama();
ollama.list().getModels().forEach(System.out::println);
OllamaEmbedding embedding = new OllamaEmbedding();
List<Double> data = embedding.embedding("吃了没,没吃的话吃我一锤").getEmbedding();
System.out.println(data);
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )