Мы используем PDF-файл для загрузки в нашу векторную базу данных, и я могу получить ответ от LLM, но у нас есть требование, чтобы содержимое страницы было из PDF-файла.
from llama_index.llms.azure_openai import AzureOpenAI
from llama_index.embeddings.azure_openai import AzureOpenAIEmbedding
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.readers.file import PyMuPDFReader
from llama_index.core import Document
from llama_index.core.node_parser import SentenceSplitter
from pathlib import Path
from llama_index.core import Settings
import os
import json
from pathlib import Path
from langchain.chains import RetrievalQA
from langchain.prompts import PromptTemplate
query = 'What is the topic of the document?' # Hardcoded query
apiKey = 'xxx' # Hardcoded Azure OpenAI API key
apiVersion = '2023-07-01' # Set the appropriate API version
azure_endpoint = 'xxx' # Your Azure OpenAI endpoint
llm = AzureOpenAI(
model="xxx",
deployment_name="xxx",
api_key=apiKey,
azure_endpoint=azure_endpoint,
api_version=apiVersion,
)
embed_model = AzureOpenAIEmbedding(
model="text-embedding-ada-002",
deployment_name="Embedding",
api_key=apiKey,
azure_endpoint=azure_endpoint,
api_version=apiVersion,
)
# Define the LLM
Settings.llm = llm
Settings.embed_model = embed_model
# Load documents using PyMuPDFReader
docs0 = PyMuPDFReader().load(file_path=Path("sample2.pdf")) # Replace with the correct path if downloading is needed
doc_text = "\n\n".join([d.get_content() for d in docs0])
docs = [Document(text=doc_text)]
# Split documents into chunks
node_parser = SentenceSplitter(chunk_size=1024)
base_nodes = node_parser.get_nodes_from_documents(docs)
# Create the embedding function using Azure OpenAI
# Create the vector store index
index = VectorStoreIndex(base_nodes, embed_model)
retriever = index.as_retriever(search_type="similarity", search_kwargs={"k": 2})
# Build prompt
template = """Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer. Use three sentences maximum. Keep the answer as concise as possible. You always HAVE TO say "thanks for asking!" at the end of the answer!
{context}
Question: {question}
Helpful Answer:"""
QA_CHAIN_PROMPT = PromptTemplate.from_template(template)
# # Create a query engine
query_engine = index.as_query_engine()
# Get the answer
result = query_engine.query(query)
print(result)
Мы используем PDF-файл для загрузки в нашу векторную базу данных, и я могу получить ответ от LLM, но у нас есть требование, чтобы содержимое страницы было из PDF-файла. [code]from llama_index.llms.azure_openai import AzureOpenAI from llama_index.embeddings.azure_openai import AzureOpenAIEmbedding from llama_index.core import VectorStoreIndex, SimpleDirectoryReader from llama_index.readers.file import PyMuPDFReader from llama_index.core import Document from llama_index.core.node_parser import SentenceSplitter from pathlib import Path from llama_index.core import Settings import os import json from pathlib import Path from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate
query = 'What is the topic of the document?' # Hardcoded query apiKey = 'xxx' # Hardcoded Azure OpenAI API key apiVersion = '2023-07-01' # Set the appropriate API version azure_endpoint = 'xxx' # Your Azure OpenAI endpoint
# Load documents using PyMuPDFReader docs0 = PyMuPDFReader().load(file_path=Path("sample2.pdf")) # Replace with the correct path if downloading is needed doc_text = "\n\n".join([d.get_content() for d in docs0]) docs = [Document(text=doc_text)]
# Create the embedding function using Azure OpenAI
# Create the vector store index index = VectorStoreIndex(base_nodes, embed_model) retriever = index.as_retriever(search_type="similarity", search_kwargs={"k": 2})
# Build prompt template = """Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer. Use three sentences maximum. Keep the answer as concise as possible. You always HAVE TO say "thanks for asking!" at the end of the answer! {context} Question: {question} Helpful Answer:"""
# # Create a query engine query_engine = index.as_query_engine()
# Get the answer result = query_engine.query(query)
print(result) [/code] Нам нужен такой результат: [code]{ "answer": " Parkinson's disease", "context": [ { "name": "qna1718774871.255651\\10.1038_s41531-018-0058-0.pdf", "page": 6, "pageContent": "ADDITIONAL INFORMATION\nSupplementary information accompanies the paper on the npj Parkinson ’s..." }, ], "status": [ { "paper_id": "10.1038/s41531-018-0058-0", "status": "Success" } ] } [/code] Я использую Python, поэтому хочу знать, есть ли какая-либо библиотека или что-то еще, что можно использовать для получения такого рода результата.
Я написал код Python, который может анализировать вопрос и выдавать ответ. Проблема в том, что каждый раз, когда я пробовал использовать инструменты с одним и тем же вопросом, ответ иногда был правильным, а иногда неправильным. Как с этим...
Описание:
В настоящее время я работаю над реализацией чат-бота для запросов клиентов с использованием технологий Llammaindex и Langchain. Моя цель — улучшить функциональность чат-бота, включив в него механизм кэширования часто задаваемых вопросов. В...
Есть ли способ адаптировать текстовые узлы, хранящиеся в коллекции векторного хранилища Wdrant, в формат, читаемый langchain? Цель состоит в том, чтобы использовать ретривер Langchain, который может «общаться» с этими текстовыми узлами. Кажется, это...
Я запускаю ehartford_dolphin-2.1-mistral-7b на машине RTX A6000 на RunPod с шаблоном TheBloke LLM Text Generation WebUI.
У меня есть 2 варианта: запуск webui на runpod или запуск шаблона вывода HuggingFace Text Generation на runpod
Вариант 1....