Сегодня вечером я получил от openAI по электронной почте следующее сообщение:
Поиск в Интернете дает точные и четко цитируемые ответы в Интернете. Используя тот же инструмент, что и поиск в ChatGPT, он отлично подходит для разговоров и дополнительных вопросов — и вы можете интегрировать его всего с помощью нескольких строк кода. Веб-поиск доступен в API ответов как инструмент для моделей gpt-4o и gpt-4o-mini и может использоваться в сочетании с другими инструментами. В Chat Completions API веб-поиск доступен как отдельная модель, называемая gpt-4o-search-preview и gpt-4o-mini-search-preview. Доступно всем разработчикам в предварительной версии.
Вопрос:
В настоящее время я использую langchain4j с Springboot и хочу реализовать модель gpt-4o-search-preview.
Я не знаю, как это сделать. Как мне сказать langchain4j использовать инструмент из самого openAI? И как мне указать langchain4j установить web_search_options, как показано в приведенном ниже фрагменте кода Python:
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-4o-search-preview",
web_search_options={
"user_location": {
"type": "approximate",
"approximate": {
"country": "GB",
"city": "London",
"region": "London",
}
},
},
messages=[{
"role": "user",
"content": "What are the best restaurants around Granary Square?",
}],
)
print(completion.choices[0].message.content)
Контекст
Ниже приведены коды, которые я сейчас использую:
import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.Result;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;
@AiService
public interface Assistant {
@SystemMessage("{{systemMessage}}")
Result chat(@MemoryId long memoryId, @UserMessage String userMessage, @V("systemMessage") String systemMessage);
}
@Service
public class ChatAiService {
@Autowired
private Assistant assistant;
@Autowired
private OpenAiModerationModel moderationModel;
@Autowired
private Environment environment;
public ChatAiService() {
}
public String sendRequest(ChatAiDTO chatAiDTO) {
String userInput = chatAiDTO.getInput();
UserDTO loggedUser = LoginContext.getLoggedUser();
String systemMessagePrompt = "You are an educated assistant. Answer me in HTML language.";
String model = environment.getProperty("langchain4j.open-ai.chat-model.model-name");
String response = "";
Result result = null;
try {
Response moderate = moderationModel.moderate(userInput);
boolean flagged = moderate.content().flagged();
if (flagged) {
throw new ModerationException("Blocked by moderation!");
}
result = assistant.chat(loggedUser.getId(), userInput, systemMessagePrompt);
response = result.content();
} catch (ModerationException e) {
response = "Blocked by moderation!";
}
//
//
return response;
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... n4j-spring