Я работаю над сохранением вектора, сгенерированного моделью модели Openai, вполне эмбления-ADA-002. Модель возвращает список двойных значений, которые я преобразую в строку перед сохранением ее в своей обогащении. Тем не менее, я сталкиваюсь с проблемой правильной сохранения обогащения в базе данных. Я попытался справиться с конверсией в репозитории, но сущность не хранится в базе данных. Интересно, что никакой ошибки не брошено; Операция просто не сохраняет объект.
Я работаю над сохранением вектора, сгенерированного моделью модели Openai, вполне эмбления-ADA-002. Модель возвращает список двойных значений, которые я преобразую в строку перед сохранением ее в своей обогащении. Тем не менее, я сталкиваюсь с проблемой правильной сохранения обогащения в базе данных. Я попытался справиться с конверсией в репозитории, но сущность не хранится в базе данных. Интересно, что никакой ошибки не брошено; Операция просто не сохраняет объект.[code]@Entity @Table(name = "enrichments") @SequenceGenerator(name = "enrichments_seq", sequenceName = "enrichments_seq", allocationSize = 1) public class EnrichmentEntity {
private static final Logger logger = LoggerFactory.getLogger(EnrichmentEntity.class);
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
public EnrichmentEntity(String profession, DocumentEntity document, String insurance, String embedding) { this.profession = profession; this.document = document; this.insurance = insurance; this.embedding = embedding; } < /code> Сервис: < /p> @Override @Transactional public String getOpenAiResponse(String profession, String insurance) { String userPrompt = """ Du bist ein Assistent, der mir hilft, Berufe mit Daten anzureichern, so dass diese in einer Vektordatenbank gespeichert und für die Suche verwendet werden können.
Du sollst nun den folgenden Beruf mit Daten anreichern (JSON-String): %s
Beachte die Anweisungen in den spitzen Klammern und ersetze sie durch gültige Strings. Antworte ausschließlich mit den geforderten Daten in **korrektem JSON-Format**. """.strip().formatted(profession);
Map requestBody = new HashMap(); requestBody.put("model", deployment);
List messages = new ArrayList(); messages.add(Map.of("role", "system", "content", "Du bist ein Assistent, der Berufe mit strukturierten Daten anreichert.")); messages.add(Map.of("role", "user", "content", userPrompt));
@Override public List getEmbedding(String text) { Map requestBody = new HashMap(); requestBody.put("model", "text-embedding-ada-002"); requestBody.put("input", text);
HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.setBearerAuth(apiKey);
HttpEntity requestEntity = new HttpEntity(requestBody, headers);
if (response.getBody() != null) { List data = (List) response.getBody().get("data"); if (!data.isEmpty()) { List embedding = (List) data.get(0).get("embedding"); return embedding; } }
throw new RuntimeException("No embedding received from OpenAI"); }
@Override public List searchProfessions(String profession, String insurance) { List embedding = this.getEmbedding(profession);
Я создал приложение RAG, используя Ollama, Langchain и pgvector. Получение ответа от модели llama3.1:7b занимает около 4–5 секунд.
Я следовал документации Langchain и добавил профилирование в свой код. Результаты профилирования следующие:
У меня есть следующий код, который позволяет мне задавать вопросы о конкретных инцидентах в моем векторном хранилище, а также об агрегированных показателях из таблицы метаданных SQL. Мне бы хотелось объединить оба инструмента, чтобы, например, мой...
У меня есть следующий код, который позволяет мне задавать вопросы о конкретных инцидентах в моем векторном хранилище, а также об агрегированных показателях из таблицы метаданных SQL. Мне бы хотелось объединить оба инструмента, чтобы, например, мой...
Я использую какую -то стороннюю облачную платформу, которая требует Джексона с версией 2.7.9 . При интеграции с PGVector и Spring AI, во время запуска приложения он дает ошибку о плохом возвращении типа метода фабрики PGVector, поступающего из...