Я пытаюсь создать RAG, я начинаю с того, что разбиваю документ на части, отправляю его в локально размещенную модель внедрения, получаю векторы обратно, а затем застреваю с частью FAISS.
Моя проблема в том, что все, что я нахожу, похоже, связано с объятием лица или чем-то еще, и материал langchain, похоже, ориентирован на это, поэтому я получаю свои встраивания из внешнего источника или имею проводить дни повторно запускаю код до тех пор, пока не получу полную загрузку модели, не сообщая мне, что хэш не совпадает, потому что он пытался загрузить только 98,4% из нее. зачем это делать, если у меня отличный сервер.
Вот мой код для проверки концепции
import requests
from langchain_community.document_loaders import PyPDFLoader
from langchain.chains import retrieval_qa, RetrievalQA
from langchain_community.vectorstores.faiss import FAISS
from langchain.text_splitter import RecursiveCharacterTextSplitter
lm_studio_endpoint = "http://127.0.0.1:1234"
def setup_qa_system(file_path):
# Load and split PDF documents
try:
loader = PyPDFLoader(file_path)
docs = loader.load_and_split()
except Exception as e:
print(f"Error loading PDF: {e}")
return None
# Split documents into smaller chunks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=50)
chunks = text_splitter.split_documents(docs)
# Function to get embeddings
def get_embeddings(texts):
print(f"Getting embeddings for {len(texts)} texts.") # Debug output
try:
response = requests.post(f"{lm_studio_endpoint}/v1/embeddings", json={
"input": texts,
'model': 'text-embedding-granite-embedding-278m-multilingual'
})
response.raise_for_status()
embeddings_data = response.json().get('data')
# Extract embeddings from the response
embeddings = [item['embedding'] for item in embeddings_data]
print(f"Received {len(embeddings)} embeddings.") # Debug output
return embeddings
except requests.exceptions.RequestException as e:
print(f"Error getting embeddings: {e}")
return []
texts = [chunk.page_content for chunk in chunks] # Extract texts from chunks
print(f"Number of chunks: {len(chunks)}")
print(f"Number of texts being sent: {len(texts)}")
embeddings = get_embeddings(texts) # Get embeddings
# Check if embeddings were retrieved successfully
if not embeddings or len(embeddings) != len(chunks):
print(f"Error: Number of embeddings ({len(embeddings)}) does not match number of chunks ({len(chunks)}). Exiting setup.")
return None
# Create a list of (text, embedding) tuples
text_embeddings = list(zip(texts, embeddings))
# Create the FAISS vector store using the list of tuples
vector_store = FAISS.from_embeddings(text_embeddings, embeddings)#
Подробнее здесь: https://stackoverflow.com/questions/793 ... embeddings
Пытаюсь создать RAG со всем локальным. я застрял на использовании вложений ⇐ Python
Программы на Python
1735378108
Anonymous
Я пытаюсь создать RAG, я начинаю с того, что разбиваю документ на части, отправляю его в локально размещенную модель внедрения, получаю векторы обратно, а затем застреваю с частью FAISS.
Моя проблема в том, что все, что я нахожу, похоже, связано с объятием лица или чем-то еще, и материал langchain, похоже, ориентирован на это, поэтому я получаю свои встраивания из внешнего источника или имею проводить дни повторно запускаю код до тех пор, пока не получу полную загрузку модели, не сообщая мне, что хэш не совпадает, потому что он пытался загрузить только 98,4% из нее. зачем это делать, если у меня отличный сервер.
Вот мой код для проверки концепции
import requests
from langchain_community.document_loaders import PyPDFLoader
from langchain.chains import retrieval_qa, RetrievalQA
from langchain_community.vectorstores.faiss import FAISS
from langchain.text_splitter import RecursiveCharacterTextSplitter
lm_studio_endpoint = "http://127.0.0.1:1234"
def setup_qa_system(file_path):
# Load and split PDF documents
try:
loader = PyPDFLoader(file_path)
docs = loader.load_and_split()
except Exception as e:
print(f"Error loading PDF: {e}")
return None
# Split documents into smaller chunks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=50)
chunks = text_splitter.split_documents(docs)
# Function to get embeddings
def get_embeddings(texts):
print(f"Getting embeddings for {len(texts)} texts.") # Debug output
try:
response = requests.post(f"{lm_studio_endpoint}/v1/embeddings", json={
"input": texts,
'model': 'text-embedding-granite-embedding-278m-multilingual'
})
response.raise_for_status()
embeddings_data = response.json().get('data')
# Extract embeddings from the response
embeddings = [item['embedding'] for item in embeddings_data]
print(f"Received {len(embeddings)} embeddings.") # Debug output
return embeddings
except requests.exceptions.RequestException as e:
print(f"Error getting embeddings: {e}")
return []
texts = [chunk.page_content for chunk in chunks] # Extract texts from chunks
print(f"Number of chunks: {len(chunks)}")
print(f"Number of texts being sent: {len(texts)}")
embeddings = get_embeddings(texts) # Get embeddings
# Check if embeddings were retrieved successfully
if not embeddings or len(embeddings) != len(chunks):
print(f"Error: Number of embeddings ({len(embeddings)}) does not match number of chunks ({len(chunks)}). Exiting setup.")
return None
# Create a list of (text, embedding) tuples
text_embeddings = list(zip(texts, embeddings))
# Create the FAISS vector store using the list of tuples
vector_store = FAISS.from_embeddings(text_embeddings, embeddings)#
Подробнее здесь: [url]https://stackoverflow.com/questions/79312052/trying-to-create-a-rag-with-everything-local-im-stuck-on-using-the-embeddings[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия