수업 너무 잘들었습니다. 제가 강사님 수업을 듣고, 사용자 질의에 따라 sql 쿼리를 반환하는 모델을 만들어보고 있는데요, 모델은 허깅페이스에서 "LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct" 이용해서 만들고 있는데, 요청에 따라 적절히 sql 쿼리를 만들려면, 일단 모델이 1) db 테이블 구조를 명확히 알아야하고, 2) 질의를 db 테이블 용어(ex: '카톡'을 얘기했을때, sns_type =1 로 대체)로 대체하는 dictionary가 잘되어야 할것같은데, 현재는 프롬프트에 1) few_shot 예시와, system 프롬프트에 2) 테이블 구조에 대한 설명, sql 작성 규칙 등을 넣어서 결과를 받고 있습니다. (system 프롬프트는 langChain hub에서 rlm/text-to-sql 을 참조 했습니다) 예시와 유사하거나 예시에서 약간 변화를 준 질의에 대해서는 잘 답변을 하고있는데, 조금만 벗어나면 잘못된 답을 줍니다. 예를들면 userid 칼럼인데 user_id 로 적는다던지, 말을 조금만 바꿔도 못알아 듣는다던지, 심지어 dictionary_chain에 프롬프트로 잡아줘도 대체를 못하는 경우도 있습니다. 어떻게 모델이 질문에 유연하게 이해하고 적절히 답을 하도록 만들어야하는지 방향을 잘모르겠습니다. 조언 부탁드립니다ㅠ 🙏 (그리고 벡터스토어를 효용성을 못찾고 이용하지 않고 있는데 이 모델에서 벡터 스토어를 잘 이용할수 있는 방법이 있을까요?)
if 에서 아무리 설정을 줘도 boolean 값으로 True False를 못받고 "true" "False" 로 값이 출력되어 Wrong type: '[object Object]' is an object but was expecting a boolean [condition 0, item 0] Try either: Enabling 'Convert types where required' Converting the first field to a boolean by adding .toBoolean() 이와 같은 에러가 자꾸 발생합니다.
안녕하세요 강사님! 두 가지 질문이 있어서 글을 남겨 봅니다. Vector DB에 데이터를 넣기 위해서 임베딩 모델을 사용했는데 아직 실습을 따라하지 않아서 해당 모델을 사용해도 API 비용이 발생하는 것인지 궁금합니다. 또한, Upstage 외에 무료 임베딩 모델이 있는지도 궁금합니다. (실습은 OpenAI로 진행 예정이지만, 개인적으로 궁금해서 여쭤봅니다) 이거는 개인적인 질문인데 어제 GPT-OSS가 나왔는데, 20B 기준으로 로컬에서 문제 없이 돌아가더라구요. LangChain Ollama로 이 모델을 사용해서 현재 RAG 강의와 강사님 Agent강의 등 다른 강의 사용에 문제가 없을지 그리고 이 모델에 대한 견해가 궁금합니다!
안녕하세요! 수업 잘 듣고 있습니다. 수업을 들으면서 Rag 관련해서 정보를 찾아보던 중에 LlamaIndex 라는 것을 알게 됐는데 마찬가지로 Rag에 사용된다는 이야기를 들었습니다. 이 라이브러리에 대해서는 어떻게 생각하시는지 그리고 Langchain 만 알아도 굳이 LlamaIndex까지 공부할 필요는 없을지도 궁금합니다. 질문이 두서 없어서 죄송합니다! 감사합니다!
'Incorrect API key provided' 강의 내용과 동일하게 아래 주소로 로그인 후 'Create new secret key'를 통해서 API KEY를 발급받았습니다. https://platform.openai.com/api-keys 이후에 Copy 버튼 클릭해서 환경변수(.env) 파일에 OPENAI_API_KEY=복사한_API_KEY 저장 후 ChatOpenAI를 통해서 선언한 llm을 invoke()했는데, 반복적으로 Incorrect API Key provided 오류가 발생합니다. 혹시나 잘못 복사해서 붙여넣었나 싶어서 삭제 후 API KEY를 신규 생성 후 동일하게 invoke 해봤는데, 문제가 해결되지 않았습니다. 혹시 다른 원인이 있을까요?? 답변 기다리겠습니다.
4강까지 강의를 다 들었습니다. 하지만 연봉 5천만원인 거주자의 소득세는? 이라는 쿼리를 날릴경우 답변이 624만원이 나오지 않고 다양한 값이 나오고 있는것을 확인했습니다. upstage model을 사용하고 pinecone vector store 를 사용하고 있으며 dictionary chain 까지 구성해서 직장인 -> 거주자로 바꾸는것 까지 적용해서 invoke 를 실행했습니다. 직접 테스트한 예시로는 'query': 연봉 5천만원인 거주자의 소득세는 얼마인가요? 소득구간별 세율의 예시를 보여주면서 설명해줘, 'result': '연봉 5천만원인 직장인의 소득세는 550만원입니다. 소득구간별 세율에 따라 계산하면, 5천만원 이하의 과세표준에는 15%의 세율이 적용되어 84만원 + (1,400만원을 초과하는 금액의 15%) = 550만원이 소득세로 산출됩니다.'}, {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 550만원입니다. 이는 종합소득 과세표준 5,000만원 이하 구간에 해당하는 세율을 적용하여 계산한 금액입니다.', {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 526만원입니다. (산출식: 5,000만원 - 1,400만원 = 3,600만원, 3,600만원 * 15% - 84만원 = 420만원)'} 이런식으로 지속적으로 다른 답이 나오고 있으며 " 소득구간별 세율의 예시를 보여주면서 설명해줘" 이 부분을 추가하지 않고 처음 쿼리를 날리면 직장인의 소득세는 xxx 만원입니다. 하고 바로 끝나는 result가 나왔습니다. 이러한 원인이 upstage 모델을 사용해서 이런 결과가 발생했는지 궁금하고 4강에서 설명했던 few-shot prompting 이 되지 않아서 처음에는 정확한 답을 주지 못하고 있다가 " 소득구간별 세율의 예시를 보여주면서 설명해줘 " 이 부분이 추가되면서 다음 응답들이 더 자세하게 나오게 된 것인지 궁금합니다.
안녕하세요. 수업을 듣고 실습도 같이 해보고 있습니다. 유사도 쿼리 관련해서 질문이 있어서 문의드렸습니다. 같은 upstatge 임베딩 모델을 사용했고 chunk size 등 같은 문서 spliter 를 사용했는데 유사도 검색에서 나오는 결과가 예시랑 다르게 나오는 이유가 무엇인가요?
안녕하세요. 현재 강의에서 배운것만으로도 심리 상담 챗봇을 만들 수 있을까요? 소득세법 같이 정답이 있는 자료는 없는것 같아 인터넷 서칭으로 자료들을 긁어모을 생각입니다. ex) 연애 심리 상담 Bot - 연애에 대해 고민하는 사람들에게 질문에 따른 조언을 해줌 - 연애 커뮤니티 등에서 수동으로 데이터 수집 - 도움이 되는 질문들과 댓글을 직접 선정하여 .docs 문서에 복사 붙여넣기 알찬 강의 만들어 주셔서 감사합니다! (수강평 작성했습니다. 데헷)
안녕하세요 강병진 강사님 강의에서는 docx파일을 불러오셨는데, 혹시 이미지나 표가 포함된 pdf파일을 불러오기 위해서는 어떤 라이브러리를 쓰는게 좋을까요? PyMuPDFLoader를 사용했을 때는 이미지 안에 있는 내용을 전혀 텍스트로 변환하지 못하는 것 같아서 질문드립니다. 감사합니다.
graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
test.py 작성 시 AuraDB에 접속이 안 되서 막혀 있습니다. 이전에도 질문해 주신 분이 계셨던 것 같은데요. .env 파일에 URI, USERNAME, PASSWORD 정확히 썼고요 ( browser.neo4j.io 접속해서 위 정보 복사해서 붙이니 잘 되는 것 확인했습니다.) 분명 제 PC 문제일 것 같은데, 유사 해결사례가 있으시면 조언부탁드립니다. 수업을 시작할 수가 없네요. ㅠㅠ (방화벽 off 시도, PC 재부팅 시도 ) <code> import os from dotenv import load_dotenv from langchain_neo4j import Neo4jGraph load_dotenv() graph = Neo4jGraph( url=os.getenv("NEO4J_URI"), username=os.getenv("NEO4J_USERNAME"), password=os.getenv("NEO4J_PASSWORD"), ) def main(): # 간단한 테스트 쿼리 result = graph.query("MATCH (n) RETURN count(n) as node_count") print(f"Neo4j 데이터베이스 내 노드 수: {result[0]['node_count']}") if __name__ == "__main__": main() <Error> Unable to retrieve routing information Traceback (most recent call last): File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\langchain_neo4j\graphs\neo4j_graph.py", line 153, in __init__ self._driver.verify_connectivity() File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\neo4j\_sync\driver.py", line 1090, in verify_connectivity self._get_server_info(session_config) File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\neo4j\_sync\driver.py", line 1305, in _get_server_info return session._get_server_info() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\neo4j\_sync\work\session.py", line 183, in _get_server_info self._connect( File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\neo4j\_sync\work\session.py", line 136, in _connect super()._connect( File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\neo4j\_sync\work\workspace.py", line 186, in _connect target_db = self._get_routing_target_database( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\neo4j\_sync\work\workspace.py", line 260, in _get_routing_target_database self._pool.update_routing_table( File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\neo4j\_sync\io\_pool.py", line 1025, in update_routing_table raise ServiceUnavailable("Unable to retrieve routing information") neo4j.exceptions.ServiceUnavailable: Unable to retrieve routing information During handling of the above exception, another exception occurred: Traceback (most recent call last): File "c:\VSCODE Scripts\neo4j-project\test.py", line 9, in <module> graph = Neo4jGraph( ^^^^^^^^^^^ File "C:\Users\user-pc\AppData\Local\pypoetry\Cache\virtualenvs\neo4j-project-qp9QAGSV-py3.11\Lib\site-packages\langchain_neo4j\graphs\neo4j_graph.py", line 160, in __init__ raise ValueError( ValueError: Could not connect to Neo4j database. Please ensure that the url is correct ㅇㄹ
fine-tunning은 어떻게 생각하세요? 강사님이 알려주신 내용대로 RAG만 하면, fine-tunning은 할 필요가 없을까요? 아니면 fine-tunning이 필요한 영역이 따로 있는 걸까요? fine-tunning에 대해서 어떻게 생각하시는지 궁굼해서 문의드립니다 :)