손쉬운 AI: Pinecone, Langchain 및 OpenAI 임베딩을 사용하여 강력한 텍스트 검색 시스템 구축

오늘날의 데이터 중심 세상에서 기업과 개발자는 종종 강력한 텍스트 검색 기능을 구현해야 합니다. 기존의 검색 알고리즘은 구조화되지 않은 대량의 텍스트 데이터를 처리할 때 최적의 결과를 제공하지 못할 수 있습니다. 여기에서 Pinecone, Langchain 및 OpenAI 서비스가 작동합니다. 이 블로그 게시물에서는 매우 정확하고 효율적인 텍스트 검색 시스템을 구축하기 위해 이러한 도구를 설정하고 활용하는 데 필요한 단계를 살펴보겠습니다.

1단계: 색인 설정

먼저 Pinecone에 인덱스를 설정해야 합니다. pinecone-client, openai 및 tiktoken을 포함하여 필요한 Python 패키지를 설치합니다. 그런 다음 다음 코드 스니펫으로 진행합니다.

import pinecone

pinecone.init(api_key="YOUR_API_KEY", environment="YOUR_ENVIRONMENT")

pinecone.create_index("langchain-demo", dimension=1536, metric="cosine")

출력 차원이 1536인 "text-embedding-ada-002" OpenAI 모델을 사용할 것이기 때문에 차원 매개변수는 1536으로 설정됩니다. 색인을 삭제해야 하는 경우 pinecone.delete_index("langchain-demo")명령을 사용하십시오.

2단계: 라이브러리 가져오기 및 키 설정

다음으로 필요한 라이브러리를 가져오고 필요한 키를 설정해야 합니다. 다음 라이브러리를 가져옵니다.

import os
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Pinecone
from langchain.document_loaders import TextLoader

PINECONE_API_KEY 및 PINECONE_ENV 변수를 Pinecone API 키 및 환경으로 설정합니다. 또한 OPENAI_API_KEY 환경 변수를 OpenAI API 키로 설정합니다.

os.environ["OPENAI_API_KEY"] = 'your openai api key'

3단계: 데이터 준비 및 레이어 포함

이제 텍스트 데이터를 로드하고(예제 사용) OpenAI 서비스를 사용하여 임베딩 레이어를 준비합니다. Langchain의 TextLoader 클래스를 사용하여 텍스트 데이터를 로드합니다.

loader = TextLoader("state_of_the_union.txt")
documents = loader.load()

그런 다음 CharacterTextSplitter 클래스를 사용하여 문서를 더 작은 청크로 분할합니다.

text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

마지막으로 OpenAI 임베딩을 초기화합니다.

embeddings = OpenAIEmbeddings()

4단계: 문서 분할 및 임베딩 벡터 인덱싱

이 단계에서는 문서를 더 작은 부분으로 분할하고 Pinecone을 사용하여 OpenAI 임베딩 벡터를 인덱싱합니다. 다음 코드 스니펫을 사용하십시오.

import pinecone

pinecone.init(
    api_key=PINECONE_API_KEY,
    environment=PINECONE_ENV,
)

index_name = "langchain-demo"

docsearch = Pinecone.from_documents(docs, embeddings, index_name=index_name)

query = "What did the president say about Ketanji Brown Jackson"
docs = docsearch.similarity_search(query)

print(docs[0].page_content)

5단계: 색인에 더 많은 텍스트 추가

기존 인덱스에 더 많은 텍스트를 추가하거나 빈 인덱스에서 시작하려면 다음 코드 스니펫을 사용하십시오.

index = pinecone.Index("langchain-demo")
vectorstore = Pinecone(index, embeddings.embed_query, "text")

vectorstore.add_texts(["More text to add as an example!"])

색인에 메타데이터를 추가해야 하는 경우 텍스트가 포함된 사전 목록을 전달할 수 있습니다.

vectorstore.add_texts(["More text to add as an example!"], [{'name':'example'}])

결론적으로:

이러한 단계를 따르면 Pinecone, Langchain 및 OpenAI 서비스를 사용하여 강력한 텍스트 검색 시스템을 구축할 수 있습니다. 이러한 도구를 사용하면 고급 텍스트 포함 및 인덱싱 기능을 활용하여 매우 정확하고 효율적인 검색 결과를 얻을 수 있습니다. 대량의 문서를 검색해야 하거나 추천 시스템을 구현해야 하는 경우 이러한 도구를 조합하면 애플리케이션의 성능과 사용자 경험을 크게 향상시킬 수 있습니다.

읽다

영문 원문

AI 좋은책 추천

AI는 하루가 다르게 변하고 있지만 고층 빌딩과 좋은 기초를 분리할 수는 없습니다. 인공 지능의 원리와 실습에 대해 배우고 싶습니까? 더 이상 보지 마세요! AI 원리 및 관행에 관한 책은 AI 세계에 대한 통찰력을 얻고자 하는 모든 사람에게 완벽한 리소스입니다. 해당 분야의 최고 전문가들이 작성한 이 포괄적인 가이드는 기계 학습의 기초부터 지능형 시스템 구축을 위한 고급 기술에 이르기까지 모든 것을 다룹니다. 당신이 초심자든 숙련된 AI 실무자이든 이 책은 당신을 다룬다. 그래서 왜 기다려?

인공 지능의 원리와 실습은 인공 지능과 데이터 과학의 다양한 중요 시스템의 고전을 포괄적으로 포괄합니다.

Peking University Press, Principles and Practice of Artificial Intelligence 인공 지능 및 데이터 과학 시작부터 숙달까지 기계 학습 딥 러닝 알고리즘 원리에 대한 자세한 설명

Supongo que te gusta

Origin blog.csdn.net/robot_learner/article/details/131803044
Recomendado
Clasificación