как заставить PrivateGPT получать информацию только из локальных документов?
Я использую PrivateGPT со стандартной моделью GPT4All (ggml-gpt4all-j-v1.3-groovy.bin), а также с последней версией Falcon. Моя проблема в том, что я ожидал получить информацию только из местных документов, а не из того, что модель уже «знает».
Пример . Если единственным локальным документом является справочное руководство к программному обеспечению, я ожидал, что PrivateGPT не сможет ответить на вопрос типа: «Какая столица Германии?» или «Что такое яблоко?» потому что этого чего-то нет в самом локальном документе.
PrivateGPT использует локальное векторное хранилище Chroma для хранения вложений из локальных документов. Ретривер langchain не должен получать информацию только от них? что мне не хватает?
2 ответа
Ответ Privategpt состоит из трех компонентов (1) интерпретировать вопрос (2) получить источник из местных справочных документов и (3) использовать оба местных исходных документа + то, что он уже знает, для генерации ответа в виде человеческого ответа.
Вы можете отключить (3), закомментировав несколько строк, показанных ниже в исходном коде, и определив
docs = db.as_retriever(search_type="similarity", search_kwargs={"k":5}).get_relevant_documents(query)
как показано ниже. Вы можете настроить параметр{"k":5}
чтобы получить 5 или любое количество перечисленных источников.
Недостаток заключается в том, что если вы выполните вышеуказанные шаги, Privategpt выполнит только (1) и (2), но не сгенерирует окончательный ответ в виде человеческого ответа. Таким образом, по сути, Privategpt будет действовать как средство получения информации, где он будет перечислять только соответствующие источники из ваших местных документов.
Измененный код
while True:
query = input("\nEnter a query: ")
if query == "exit":
break
# Get the answer from the chain
####res = qa(query)
####answer, ####
docs = db.as_retriever(search_type="similarity", search_kwargs={"k":5}).get_relevant_documents(query)
# # Print the result
# print("\n\n> Question:")
# print(query)
# print("\n> Answer:")
# print(answer)
# Print the relevant sources used for the answer
for document in docs:
print("\n> " + document.metadata["source"] + ":")
print(document.page_content)
ваше ожидание не соответствует действительности. частный GPT просто означает, что он может работать локально на вашем компьютере без Интернета. Вы можете проглатывать документы и задавать вопросы без подключения к Интернету!
PrivateGPT особенно полезен для частных лиц или компаний, которым требуется общение с ChatGPT, но которые обеспокоены конфиденциальной личной или деловой информацией, которая может быть раскрыта в ходе взаимодействия.
Этот инструмент обеспечивает дополнительную безопасность частных разговоров, сохраняя при этом функциональность ChatGPT. Простой процесс входа/регистрации в инструменте позволяет пользователям легко начать генерировать текст, не содержащий конфиденциальной информации, не беспокоясь о последствиях для конфиденциальности.
В целом, PrivateGPT предоставляет эффективное решение для частных лиц и организаций, которые хотят использовать LLM, такие как ChatGPT, но нуждаются в дополнительной гарантии защиты конфиденциальности.