제가 강사님 소스와 거의 같지만 다른게 upstage와 WikipediaRetriever 를 쓴다는 것인데 이러면서 requirements.txt에서 계속 버전 충돌 에러가 나네요;; pip show 로 해서 충돌나는 버전을 visual studio code에 맞춰서 해도 계속 에러가 나네요 langchain-upstage 때문인것 같은데 이것 때문에 다른 라이브러리 전체의 버전을 다 바꿔야 하는 걸까요?
안녕하세요 강사님 항상 좋은 강의와 답변에 감사드립니다. 다름이 아니라 저는 upstage를 사용하는데요 requirements.txt에 langchain-upstage==0.3.0 이렇게 넣으니까 에러가 나던데 이게 아닌건가요? pip install 에 보면 버전은 이게 맞는거 같은데요
안녕하세요~ 지난번에 gemini로 한다고 고전한다고 질문글을 남겼던 학생입니다. 그냥 openai로 다시 시작하니 실크로드마냥 뻥 뚫리더라고요.....기억나실지는 모르겠지만 지지난번에 남겼던 .env 문제도 해결했습니다. vscode에서도 그냥.env로 파일명 만들면 만들어지더라고요. 전엔 해당 확장자로 안 됐는데 어느순간 되는것이 이유를 모르겠습니다만... 아무튼 네 됐습니다. 그런데 (어쩌면 수업 외적인) 질문이 있는데요. 만약에 제가 chatbot에 2개 이상의 문서를 넣고 싶으면 어떻게 해야되나요? 가령 소비자 보호법과 세법을 넣는다고하면 소비자보호법 관련 문서에는 이게 소비자 보호법이라는게 명시가 안 되어 있고, 세법 문서에는 해당 내용이 세법이라는 것에 대해 명시가 되어 있지 않아 1) 단순히 두 word파일을 하나의 파일로 합치면 혼란이 올 것 같은데, 2) 안 합치고 따로 하자니 일단 그 방법도 모르거니와 각각 넣는 게 파일명 말고는 1번과 무슨 차이인지도 모르겠어서 선생님께 질문을 드립니다. 비슷한 상황으로 다른 예시를 들어드리자면 , 가령 대출 관련 챗봇을 만드려고 할 때, 신용 대출에 대한 문서가 신용 대출 << 언급이 안되어 있는 아래와 같은 상황이고 [직장인 대출] 금리 10% 조건 : 1년이상 재직자 대출한도: 만원 [직장인 대출2] 금리 9% 조건 : 3년이상 재직자 대출한도: 2만원 [CSS 대출] 금리 11% 조건 : 20세이상 30세 미만 대출한도: 3만원 그리고 주택 담보 대출은 아래와 같을 때, (= 대출 내용은 다르지만 대출을 받을 수 있는 컨디션은 똑같을 때) [a아파트 대출] 금리 10% 조건 : 1년이상 재직자 대출한도: 50만원 [주택 대출] 금리 9% 조건 : 3년이상 재직자 대출한도: 60만원 [버팀목 대출] 금리 11% 조건 : 20세이상 30세 미만 대출한도: 70만원 이 상황에서 만약에 주택담보대출을 알아보고 있으면 굳이 신용대출까지 조회를 안 해도 되잖아요. 이런 상황은 어떻게 거르죠? 참고로 직장인 대출 <- 신용이라는 키워드로 거를수가 없습니다. 강의에서 알려주신 대로 데이터 사전이나 프롬포트를 이용해 처리하는 방법밖엔 없을까요? (생각나는 상황이 이런거인데 사실 대출을 잘몰라서 ;; 제 질문이 잘 전달됐는지 모르겠네요..) 아무튼 긴 글 읽어주셔서 다시 한 번 감사합니다.
계속 upstage로 진행하고 있었습니다. 이번에도 3.4.1 따라하다 막히는 부분이 있어서 3.4 부분을 보았더니 pc넣는것과 pincone api key 넣는것이 있어서 그부분을 확인 후에 다시 진행을 했습니다. 진행하면서 아래와 같이 오류가 나왔습니다. 오류 내용 ---> 58 raise PineconeConfigurationError("You haven't specified an Api-Key.") 59 if not host: 60 raise PineconeConfigurationError("You haven't specified a host.") 해당 코드 부분 from langchain_pinecone import PineconeVectorStore # 데이터를 처음 저장할 때 index_name= 'tax-upstage-index' database = PineconeVectorStore.from_documents(documents=document_list, embedding=embedding) .env내용 OPENAI_API_KEY= UPSTAGE_API_KEY= LANGCHAIN_API_KEY= LANGCHAIN_TRACING_V2=true PINECONE_API_KEY= PINECONE_ENVIRONMENT=us-east-1 전체 코드 %pip install python-dotenv langchain langchain-openai langchain-community langchain-text-splitters docx2txt langchain-chroma %pip install -qU langchain-pinecone from langchain_community.document_loaders import Docx2txtLoader from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size=1500, chunk_overlap=200, ) loader = Docx2txtLoader("./tax.docx") document_list = loader.load_and_split(text_splitter=text_splitter) import os from dotenv import load_dotenv from langchain_upstage import UpstageEmbeddings # 환경변수를 불러옴 load_dotenv() pinecone_api_key = os.getenv("PINECONE_API_KEY") pinecone_environment = os.getenv("PINECONE_ENVIRONMENT") print("API Key:", pinecone_api_key) print("Environment:", pinecone_environment) # OpenAI에서 제공하는 Embedding Model을 활용해서 `chunk`를 vector화 embedding = UpstageEmbeddings(model='solar-embedding-1-large') 결과 화면 PINECONE_API_KEY: None PINECONE_ENVIRONMENT: None 분명 .env에도 apikey를 공식 문서에 있는 내용을 가져와서 똑같이 붙여 넣고 했음에도 key값이 출력 나오지 않아, database부분이 진행이 되지 않고 있습니다. pincone default 키값이 문제인가 해서 새로운 key를 만들어 넣었습니다. 혹시 제가 하면서 놓친 부분이 있을까요?
안녕하세요 오늘 파인콘 관련 강의를 들었는데요. pc = Pinecone(api_key= pinecone_api_key) pc = Pinecone(api_key= pinecone_api_key) 이 부분 까지는 잘 되는데, database = PineconeVectorStore.from_documents(document_list, embedding, index_name = index_name) 이 부분을 실행하면 진행이 되지 않습니다. 이런 메세지가 떠요.. gpt한테 물어봐서 아래와 같이 해서(제 환경에 맞게 수정함) 다시 돌려봤지만 결과적으로 마지막 database = PineconeVectorStore.from_documents(document_list, embedding, index_name = index_name) 여기서 같은 오류가 뜨네요 ㅠㅠ 이 경우는 어떻게 해야될까요 import pinecone from langchain.embeddings.openai import OpenAIEmbeddings from langchain.docstore.document import Document from langchain.vectorstores import PineconeVectorStore # 1. Pinecone 초기화 pinecone.init(api_key="your-api-key", environment="us-west1-gcp") # 2. 인덱스 생성 또는 불러오기 index_name = "example-index" if index_name not in pinecone.list_indexes(): pinecone.create_index(index_name, dimension=1536) # 3. 임베딩 모델 설정 embedding = OpenAIEmbeddings(openai_api_key="your-openai-api-key")
안녕하세요. 좋은 강의 감사합니다. 강의를 듣고 저도 word로 데이터를 가공해, 저만의 챗봇을 huggingface에 있는 모델을 사용해 만들어 streamlit에 띄우고 싶습니다. 그런데 streamlit에 띄우는 과정에서 계속 로딩이 오래걸리거나, 로컬과 달리 이상한 답변이 나오는 등 문제를 겪고 있습니다. 참고하면 좋을 만한 자료가 있을까요?
안녕하세요! 우선 저는 현재 윈도우 사용중이고요, 그런 의미에서 꾸역꾸역 3강을 거의 끝나가는 시점입니다~ 처음엔 쥬피터로 했는데, 커널이 계속 죽는 이슈로.. 코랩 엔터프라이즈로 돌리는 중입니다. 쥬피터를 활용해서 가상환경으로 하고 싶었는데 실패해서 결국 base에서 구동했어요ㅠㅠ 커널 죽는것도 이거 때문인가 싶기도하고.. 가상환경이 필수인건가요? 잘 돌아가면 일단 한숨 돌려도 되는거죠..? + vscode랑 쥬피터 연동하면 선생님처럼 .env파일을 쉽게 만들 수 있는건가요? 아님 pyenv한정 가능한 건가요? 저도 vscode로 쥬피터 연동까진 됐는데 .env파일 생성에서 막혀서 그냥 웹에서 돌리고 있었습니다 그마저 커널 이슈로 gcp로 돌렸지만.. ++ Open-AI 대신 gemini를 사용하는건 어떻게 생각하시나요? 본 강의에는 부적합한가요? 구글 크래딧이 있어서 이걸 활용하고 싶은데 꽤 장벽에 부딪히는거(가령 tiktoken이 안된다든지 ) 같은데 이게 제가 잘 몰라서 그런건지 보통 그런건지 모르겠네요. +++ 원래 정말 환경 얘기만 여쭤보려고했는데 적다보니 그동안 몰랐던거를 다 여쭤보게 됐네요.. 강의 잘 듣고 있습니다! 감사합니다~
강사님이 만들어 놓은 requirement.txt 가 아닌 새로운 환경에 구축할경우 버전업이 되며 deprecate된 것인지 일부가 작동하지 않습니다. 작동하지 않는 것들은 아래와 같습니다. 최신버전에선 어떻게 수정해야 써야하나요. from langchain.chains import create_history_aware_retriever, create_retrieval_chain from langchain.chains.combine_documents import create_stuff_documents_chain
안녕하세요, 강의 수강 중 아무리 실행해도 결과가 영상과 동일하게 나오지 않아서 질문드립니다. 실습에 사용중인 tax.docx 파일에서 제55조의 그림으로 되어 있는 테이블을 마크다운으로 변환한 tax_with_markdown.docx로 실습 진행하고 있습니다 . 강의에서 올려주신 마크다운 변환된 파일과 코드로 실행했는데, retriever.invoke(query) 결과에서 제55조가 나오지 않아서 result 값이 제대로 나오지 않습니다. 파인콘 인덱스를 삭제하고 새로 만들어도 결과는 동일하게 나옵니다. 원인이 무엇인지 알 수 있을까요? from langchain_community.document_loaders import Docx2txtLoader from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size = 1500, # 문서를 쪼갤 때, 하나의 chunk가 가질 수 있는 토큰 수 chunk_overlap = 200 # 문서를 쪼갤 떄, 중복을 허용하는 토큰 수 ) loader = Docx2txtLoader("tax_with_markdown.docx") document_list = loader.load_and_split(text_splitter=text_splitter) document_list[52] # 마크다운 부분 잘 나오는 거 확인 from dotenv import load_dotenv from langchain_openai import OpenAIEmbeddings load_dotenv() # API Key 필요 (환경 변수) embedding = OpenAIEmbeddings(model='text-embedding-3-large') import os import time from pinecone import Pinecone from langchain_pinecone import PineconeVectorStore index_name = 'tax-index-markdown' pinecone_api_key = os.environ.get("PINECONE_API_KEY") pc = Pinecone(api_key=pinecone_api_key) database = PineconeVectorStore.from_documents(document_list, index_name=index_name, embedding=embedding) query = '연봉 5천만원인 직장인의 소득세는 얼마인가요?' from langchain_openai import ChatOpenAI llm = ChatOpenAI(model='gpt-4o') from langchain import hub prompt = hub.pull("rlm/rag-prompt") from langchain.chains import RetrievalQA retriever = database.as_retriever() qa_chain = RetrievalQA.from_chain_type( llm, retriever = retriever, chain_type_kwargs = {"prompt":prompt} ) # llm 모델과 벡터데이터베이스와 프롬프트 템플릿 준다. retriever.invoke(query)
안녕하세요. 좋은 강의 감사합니다. 강의를 참고하여 standalone PC(GPU 4090)에서 Ollama, Langchain으로 RAG를 구성하고 테스트하고 있는데요. 혹시 한글 인식이 성능이 좋은 Ollama 임베딩, LLM 모델 추천해주실 수 있을까요? 4090급 GPU를 사용하다 보니 모델 선택 범위가 제한적이네요. 즐거운 하루 되세요.
ModuleNotFoundError : No module named 'chromadb' ImportError : Could not import chromadb python package. Please install it with pip install chromadb . chromadb 패키지를 설치하였는데 같은 오류가 계속 뜨고 있습니다. 버전 문제 일까요? 가상환경 python:3.12.2, chromadb: 0.4.15, langchain: 0.3.4 답변해주시면 정말 감사하겠습니다!
from langchain_chroma import Chroma # 데이터를 처음 저장할 때 database = Chroma.from_documents(documents=document_list, embedding=embedding) 다음 코드를 실행시키면, File c:\Dev\inflearn-llm-application\lib\site-packages\langchain_chroma\vectorstores.py:1089 , in Chroma.from_texts (cls, texts, embedding, metadatas, ids, collection_name, persist_directory, client_settings, client, collection_metadata, **kwargs) 1083 chroma_collection .add_texts( ... --> 571 raise ValueError( 572 f"Batch size {len(batch[0])} exceeds maximum batch size {limits['max_batch_size']}" 573 ) ValueError : Batch size 218 exceeds maximum batch size 166 다음과 같은 error가 발생합니다. 이후 다음과 같이 batch size를 줄여서 실행시키면 from langchain_chroma import Chroma # 배치 크기 설정 batch_size = 166 # 문서 리스트를 배치 크기만큼 나누어 처리 for i in range(0, len(document_list), batch_size): batch_documents = document_list[i:i + batch_size] database = Chroma.from_documents(documents=batch_documents, embedding=embedding) 다음과 같은 오류와 함께 커널이 종료됩니다ㅠ 해결책이 있을까요?