묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
EXAONE 모델 불러오기 안되는 문제
안녕하세요, 허깅페이스에서 모델을 불러오다가 에러가 생겨서 질문 남깁니다!강의상으로는 model_id='LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct 를 사용하셨지만, 인증 문제 때문에 model_id='LGAI-EXAONE/EXAONE-3.5-7.8B-Instruct' 로 대체하여 사용중입니다 대체된 모델로 chat_model을 만들고 돌렸을 때, 위 이미지와 같은 에러가 나타납니다...혹시 transformer 관련 버전 호환문제일 수도 있을까요? 답변 부탁드립니다!
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
[5.1 강의] LLM Evaluator에 Upstage를 사용하는 방법 + 변경된 Langsmith Docs를 참고하여 구현하는 방법 공유
안녕하세요. 강의 수강 중 중간중간에 일이 생겨 이제서야 빠르게 복습하고 다시 수강하고 있는 수강생입니다. 저는 강의에서 사용되었던 코드를 실행했을 때, 평가 실행 시 "KeyError" 오류가 발생되었습니다. 많은 분들께서 따라하는 과정에서 저와 같은 오류를 마주하고 Langsmith Docs를 열어보셨을 것 같습니다. 다만 강의에서 다루는 코드와 현재 시점에 Langsmith Docs에 작성된 튜토리얼 코드는 많은 부분이 변경되었기에 현재 시점의 Langsmith Docs에서 다루는 LLM Evaluator 구현 시 포인트와 함께 Upstage를 사용한 방법을 정리하여 공유드리려합니다. 참고로 현재 시점의 Langsmith Docs는 아래 링크의 문서이며, 이하 설명에서는 Langsmith Docs를 Docs로 부르겠습니다.https://docs.langchain.com/langsmith/evaluate-rag-tutorial 1. Evaluator 종류- 현재 Doc에서는 다음과 같은 평가 지표에 대한 예시를 제공하고 있습니다.1) 정확성(Correctness): LLM의 답변이 실제 답변과 얼마나 유사하고 정확한지 측정2) 관련성(Relevance): LLM의 답변이 사용자의 질문과 얼마나 관련있는지 측정3) 근거성(Groundedness): LLM의 답변이 검색된 데이터의 맥락과 얼마나 일치하는지 측정4) 검색 관련성(Retrieval relevance): 입력된 질문과 검색된 데이터는 얼마나 관련있는지 측정 2. 데이터 셋 형식 변경- 현재의 Docs에서는 다음과 같은 데이터 셋 형식을 사용하고 있습니다.# Define the examples for the dataset examples = [ { "inputs": {"question": "How does the ReAct agent use self-reflection? "}, "outputs": {"answer": "ReAct integrates reasoning and acting, performing actions - such tools like Wikipedia search API - and then observing / reasoning about the tool outputs."}, }, ... ] - 따라서 강의에서 제공된 데이터 셋을 다음과 같이 변경할 수 있습니다. Docs의 Evaluator에서는 'contexts' 를 사용하진 않는 것 같지만 기존 데이터 셋의 내용에 맞추어 수정한 점은 참고바랍니다.examples = [ { "inputs": {"question": "제1조에 따른 소득세법의 목적은 무엇인가요?"}, "outputs": {"answer": "소득세법의 목적은 소득의 성격과 납세자의 부담능력에 따라 적정하게 과세함으로써 조세부담의 형평을 도모하고 재정수입의 원활한 조달에 이바지하는 것입니다."}, "metadata": {"contexts": "제1조(목적) 이 법은 개인의 소득에 대하여 소득의 성격과 납세자의 부담능력 등에 따라 적정하게 과세함으로써 조세부담의 형평을 도모하고 재정수입의 원활한 조달에 이바지함을 목적으로 한다."}, }, ... ] 3. Upstage Model을 사용하는 방법- 현재의 Docs에서는 각 단계에서 LLM을 선언하는 부분에서 다음과 같이 'ChatOpenAI()' 함수를 사용하고 있습니다.# Rag-Bot from langchain_openai import ChatOpenAI ... llm = ChatOpenAI(model="gpt-4.1", temperature=1) # Evaluators grader_llm = ChatOpenAI(model="gpt-4.1", temperature=0).with_structured_output( ... ) - 따라서 다음과 같이 'ChatUpstage' 라이브러리를 import한 후, 'ChatOpenAI()' 함수를 사용하는 부분을 'ChatUpstage()' 함수로 변경해주면 됩니다. 'Rag-Bot' 코드를 작성하는 셀에서 'ChatUpstage' 라이브러리를 import한다면 이하 코드에서는 일일이 import하지 않아도 되며, 'ChatOpenAI()' 함수에서 사용하던 'temperature=1' 인자는 제거해도 무방했습니다. # Rag-Bot from langchain_upstage import ChatUpstage ... llm = ChatUpstage(model="solar-pro3") # Evaluators grader_llm = ChatUpstage(model="solar-pro3").with_structured_output( ... ) 제가 수정한 전체 코드, 코드별 설명과 변경된 데이터 셋 파일은 아래 링크에 업로드해두었으며, 참고하시면 좋을 것 같습니다.https://github.com/C0deH4ter/llm-application/tree/main/5.1%20Upstage%20Challenge
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
강의 9에 QA관련된 import가 되지 않네요
안녕하세요, RAG강의를 2026년 3월에 수강하고 있습니다. 강의 9에 prompt를 QA해주는 library가 있는데 import가 되지 않아서 질문 남깁니다. 제가 코드를 잘못 작성한줄 알고, github에 올려주신 코드를 사용해도 error가 발생하는데, 확인 부탁드리겠습니다. 감사합니다. ---------------------------------------------------------------------------ImportError Traceback (most recent call last) Cell In[12], line 1 ----> 1 from langchain import hub 3 prompt = hub.pull("rlm4/rag-prompt") ImportError: cannot import name 'hub' from 'langchain' (/Users/royjoo/.pyenv/versions/inflearn-llm-application/lib/python3.10/site-packages/langchain/__init__.py).
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
🚨 python3.14 를 쓰고 계시면 chroma 에서 ConfigError 가 발생합니다.
--------------------------------------------------------------------------- ConfigError Traceback (most recent call last) Cell In[13], line 1 ----> 1 from langchain_chroma import Chroma 3 database = Chroma.from_documents(documents=document_list, embedding=embedding) File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/langchain_chroma/__init__.py:3 1 """LangChain integration for Chroma vector database.""" ----> 3 from langchain_chroma.vectorstores import Chroma 5 __all__ = [ 6 "Chroma", 7 ] File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/langchain_chroma/vectorstores.py:18 12 from pathlib import Path 13 from typing import ( 14 TYPE_CHECKING, 15 Any, 16 ) ---> 18 import chromadb 19 import chromadb.config 20 import numpy as np File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/__init__.py:3 1 from typing import Dict, Optional, Union 2 import logging ----> 3 from chromadb.api.client import Client as ClientCreator 4 from chromadb.api.client import ( 5 AdminClient as AdminClientCreator, 6 ) 7 from chromadb.api.async_client import AsyncClient as AsyncClientCreator File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/api/__init__.py:51 46 from overrides import override 47 from chromadb.api.collection_configuration import ( 48 CreateCollectionConfiguration, 49 UpdateCollectionConfiguration, 50 ) ---> 51 from chromadb.config import DEFAULT_DATABASE, DEFAULT_TENANT 52 from chromadb.api.types import ( 53 CollectionMetadata, 54 Documents, (...) 73 DefaultEmbeddingFunction, 74 ) 76 from chromadb.auth import UserIdentity File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/chromadb/config.py:120 116 NODE = "node" 117 ID = "id" --> 120 class Settings(BaseSettings): # type: ignore 121 # ============== 122 # Generic config 123 # ============== 125 environment: str = "" 127 # Can be "chromadb.api.segment.SegmentAPI" or "chromadb.api.fastapi.FastAPI" or "chromadb.api.rust.RustBindingsAPI" File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/main.py:221, in ModelMetaclass.__new__(mcs, name, bases, namespace, **kwargs) 219 elif is_valid_field(var_name) and var_name not in annotations and can_be_changed: 220 validate_field_name(bases, var_name) --> 221 inferred = ModelField.infer( 222 name=var_name, 223 value=value, 224 annotation=annotations.get(var_name, Undefined), 225 class_validators=vg.get_validators(var_name), 226 config=config, 227 ) 228 if var_name in fields: 229 if lenient_issubclass(inferred.type_, fields[var_name].type_): File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:504, in ModelField.infer(cls, name, value, annotation, class_validators, config) 501 required = False 502 annotation = get_annotation_from_field_info(annotation, field_info, name, config.validate_assignment) --> 504 return cls( 505 name=name, 506 type_=annotation, 507 alias=field_info.alias, 508 class_validators=class_validators, 509 default=value, 510 default_factory=field_info.default_factory, 511 required=required, 512 model_config=config, 513 field_info=field_info, 514 ) File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:434, in ModelField.__init__(self, name, type_, class_validators, model_config, default, default_factory, required, final, alias, field_info) 432 self.shape: int = SHAPE_SINGLETON 433 self.model_config.prepare_field(self) --> 434 self.prepare() File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:544, in ModelField.prepare(self) 537 def prepare(self) -> None: 538 """ 539 Prepare the field but inspecting self.default, self.type_ etc. 540 541 Note: this method is **not** idempotent (because _type_analysis is not idempotent), 542 e.g. calling it it multiple times may modify the field and configure it incorrectly. 543 """ --> 544 self._set_default_and_type() 545 if self.type_.__class__ is ForwardRef or self.type_.__class__ is DeferredType: 546 # self.type_ is currently a ForwardRef and there's nothing we can do now, 547 # user will need to call model.update_forward_refs() 548 return File ~/workspace/ai/rag-practice/lib/python3.14/site-packages/pydantic/v1/fields.py:576, in ModelField._set_default_and_type(self) 573 self.annotation = self.type_ 575 if self.type_ is Undefined: --> 576 raise errors_.ConfigError(f'unable to infer type for attribute "{self.name}"') 578 if self.required is False and default_value is None: 579 self.allow_none = True ConfigError: unable to infer type for attribute "chroma_server_nofile"저는 Python 3.14 버전으로 venv 를 사용중이었는데요.위와 같은 에러가 발생하였습니다.구글에 ConfigError 문구를 검색해도 잘 나오지 않아서 ChatGPT의 도움을 좀 받았는데 이렇게 답하더라구요.- Python 3.14 환경에서 chromadb가 (pydantic v2에서 BaseSettings가 빠진 걸 처리하려다) pydantic.v1 호환 레이어로 떨어지고- 그런데 Pydantic v1 코어는 Python 3.14+에서 제대로 동작하지 않아서, Settings 모델 필드(chroma_server_nofile) 타입 추론이 깨지면서 ConfigError가 납니다.파이썬 버전을 3.12로 낮추어서 venv 를 다시 설정했더니 같은 코드임에도 정상적으로 실행되었습니다.혹시나 저와 같은 이슈를 겪으신 분들은 python 버전을 낮추어보시길 바라요.
-
미해결맞춤형 LLM 만들기 : 처음 시작하는 분을 위한 RAG 기초 개념부터 멀티모달·Agent 실습까지
langchain 함수확인 요청
공유해주신 수업자료 중실습8 벡터데이터베이스 기반 RAG어플리케이션.ipynb에서3번 째 셀의 # LangChain과 BeautifulSoup 관련 라이브러리 불러오기에서from langchain.text_splitter import RecursiveCharacterTextSplitter에서 from langchain.text_splitter -> from langchain_text_splitters가 되어야 하지 않을런지요??
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
강의와 책 관련 질문
안녕하세요! 강의 수강과 책을 병행해서 보고 싶은데요,강의가 예전에 촬영된것 같아서, 책을 참고해서 보는게 훨씬 수월하고 학습하는데 좋을것 같아서요. 각 강의 회차별로 "혼자서도 척척 해내는 AI 에이전트 만들기" 책에서 어떤 챕터랑 같이 보면 도움이 될지 알 수 있을까요??
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
문서 전처리 고민
안녕하세요, 개인 프로젝트로 rag 기반 챗봇을 구현하고 있습니다. ollama, gemma3:1b를 사용중입니다. txt 파일을 어느정도 전처리를 하고 임베딩을 시키려고 하는데 전처리 중 고민이 있습니다. 구조가 잡혀있는 txt 파일인데, 문서 구조는 대략 아래와 같은 형태입니다.1.2 화면 설명 1.2.1 개요 - 이 화면은 사용자가 업무를 처리하기 위한 화면입니다. 1.2.2 화면 위치 상단 메뉴 > 업무 관리 > 처리 화면 1.2.3 처리 절차 1) 항목 선택 2) 저장 버튼 클릭 현재 고민되는 부분은 다음과 같습니다.이런 번호 기반 구조를 그대로 유지한 채로 chunking 하는 것이 좋은지,아니면 번호는 제거하고 의미 단위로만 분할하는 것이 나은지-, •, 숫자 목록 같은 불릿/목록 기호를 임베딩 전에 제거하거나 정규화하는 게 좋은지“개요 / 처리 절차 / 화면 위치” 같은 섹션 제목을 chunk 본문에 포함시키는 것이 검색 품질에 도움이 되는지감사합니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
RAG 배포 질문드립니다
프론트엔드 개발자 입장에서 RAG를 처음 접하다 보니 구조가 잘 이해되지 않아 질문드립니다. 강의를 보다 보니 Streamlit과 LangChain으로 한 곳에서 개발이 이루어지는데, 이게 실무 구조를 단순화한 예제인지, 실제 서비스에서도 이런 형태로 운영되는지 궁금했습니다. 제가 이해한 바로는 일반적인 웹 서비스는 프론트엔드, 백엔드, 일반 DB(MySQL 등)가 분리되어 있고, 여기에 RAG를 구성하기 위한 Vector DB(Qdrant, Chroma, Pinecone 등)와 LLM 호출 로직이 추가되는 구조로 보이는데, 이때 RAG와 AI 에이전트는 보통 백엔드 서버 내부의 로직으로 구현되는지, 아니면 별도의 서비스로 분리해서 운영하는지도 알고 싶습니다. 실무에서 배포 관점에서는 백엔드 서버 하나에 RAG까지 포함해 배포하는 것이 일반적인지, 아니면 RAG나 Vector DB를 별도로 운영하는 경우가 많은지도 궁금합니다. Qdrant를 가장 추천주셔서 이걸사용할까 생각중입니다. 그리고 혹시 그래프 RAG에 대한 강의도 찍으실 예정이 있으실까요?크게 아래와같이 보고있고(이해한 대로 플로우 그려봤습니다),백엔드 서버는 FastAPI로 통일할수도 있을것 같습니다.┌─────────────────────────────────────────┐ │ Frontend (React.js) │ └─────────────────────────────────────────┘ │ ┌───────────┴───────────┐ │ │ ┌───────▼────────┐ ┌─────────▼────────┐ │ Spring Boot │ │ FastAPI AI │ │ (Main API) │ │ Service │ │ │ │ │ │ - CRUD │ │ - RAG Pipeline │ │ - 비즈니스 로직 │ │ - LLM Agent │ │ - 인증/권한 │ │ - Embedding 생성 │ └───────┬────────┘ └─────────┬────────┘ │ │ │ │ ┌───────▼────────┐ ┌─────────▼────────┐ │ PostgreSQL │ │ Vector DB │ │ (비즈니스 데이터) │ │ (임베딩/벡터) │ │ │ │ │ │ - hospitals │ │ - content_embeddings│ │ - contents │ │ - query_cache │ │ - bundles │ │ - document_chunks │ │ - contracts │ │ │ │ - users │ │ (Pinecone/ │ │ - ... │ │ Weaviate/ │ │ │ │ Qdrant/ │ │ │ │ pgvector) │ └────────────────┘ └──────────────────┘
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
강의 내용과는 별개로 궁금한 점이 있습니다
안녕하세요, 좋은 강의 감사합니다 ! 강의 내용과는 별개로, 개인 프로젝트 겸 하나 실험해보고 싶은 주제가 있어 간단히 의견 여쭤보고 싶습니다.유튜브 라이브 채팅 로그를 분석하기 위해, 각 채팅을 의도 기반으로 7~10개 정도의 라벨로 분류해보려 합니다. (채팅은 약 5만~10만개 정도)다만 라이브 채팅 특성상 다국어가 섞여 있고, 이모지 사용이 많으며, 문장이 매우 짧은 경우가 대부분이라 과연 잘 될지 고민이 됩니다...이와 관련해 LLM을 활용해 채팅 데이터를 라벨링하는 방식에 대해 어떻게 생각하시는지 궁금합니다. 실제로 비슷한 케이스를 다뤄보신 경험이 있거나, 주의해야 할 점이 있다면 공유해주시면 감사하겠습니다.또한 LLM을 활용한 라벨링 관점에서, 7~10개 라벨이 모델이 분류하기 적절한 수준인지 아니면 라벨 수를 줄이는 것이 성능 향상에 도움이 될지도 의견을 듣고 싶습니다.감사합니다!
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
폐쇄망 챗봇 모델
안녕하세요, 폐쇄망에 챗봇을 구축하려 합니다. 하지만, GPU가 안 되는 환경입니다. 폐쇄망 환경에서 CPU 위주로 운용한다는 제약까지 고려했을 때, 강의에서 소개된 것처럼LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct를 생성 모델로 사용하고,intfloat/multilingual-e5-large-instruct를 임베딩 모델로 사용하는 조합이한국어 중심 RAG 환경에서도 여전히 합리적인 선택이라고 보시는지 궁금합니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
AI agent 쿠폰
22강 듣고나니 agent 수업을 들어보라고 쿠폰을 쏘셨는데 할인이 적용되는건가요? 아니면 안되는 건가요?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
저는 왜 그대로 했는데 답변이 틀리게 나오는지 모르겠네요
소득세법 제55조(세율) 및 제47조(근로소득공제)에 따르면,거주자 기준으로 연봉 5천만원(근로소득)의 소득세는 다음과 같이 계산됩니다.근로소득공제 적용총급여액 5천만원 기준 공제액: 1,475만원(5천만원 × 15% + 75만원, 단 최고 한도 2천만원 미만)과세표준 산정5천만원 - 1,475만원 = 3,525만원종합소득세율 적용3,525만원 구간: 1,400만원 이하 6% + 초과분 15%산출세액: 84만원(1,400만원 × 6%) + (3,525만원 - 1,400만원) × 15% = 474.75만원최종 납부세액474.75만원에서 근로소득세액공제(산출세액의 55% 한도) 등 추가 공제 적용 가능※ 정확한 세액은 의료비·교육비·보험료 등 추가 공제항목에 따라 달라질 수 있습니다.(추가 설명: "거주자"는 직장·자영업 등 소득 유형과 무관하게 국적에 관계없이 국내 주소를 둔 개인을 의미하며, 직장인은 그 하위 범주에 포함됩니다.)답변이 전혀 다르고 이상하게 근거없는 숫자도 나오는데 왜그런걸까유 fewshot하는것까지 작성했습니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
langchain howto/sequence는 지금 doc 공식 사이트 어디서 확인할 수 있나요?
| 이런 파이프라인 문법 수업중에 보이는 how-to-guides의 링크가 어디인가요? 공식문서가 많이 업데이트 되었는지 수업 전반으로 일치하는 부분 찾기가 너무 힘드네요...
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
new_question에 대한 답 출력
new_question 이 ''연봉 5천만원인 거주자의 소득세는 얼마인가요?'' 이라는 질문만 내놓고, 답은 내놓지 않습니다%pip install python-dotenv langchain langchain-upstage langchain-community langchain-text-splitters langchain-pinecone docx2txtfrom 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)from dotenv import load_dotenv from langchain_upstage import UpstageEmbeddings # 환경변수를 불러옴 load_dotenv() # OpenAI에서 제공하는 Embedding Model을 활용해서 `chunk`를 vector화 embedding = UpstageEmbeddings(model="embedding-query")from langchain_pinecone import PineconeVectorStore # 데이터를 처음 저장할 때 index_name = 'tax-upstage-index' database = PineconeVectorStore.from_documents(document_list, embeddin g, index_name=index_name)query = '연봉 5천만원인 직장인의 소득세는 얼마인가요?' # `k` 값을 조절해서 얼마나 많은 데이터를 불러올지 결정 retrieved_docs = database.similarity_search(query, k=3)retrieved_docsfrom langchain_upstage import ChatUpstage llm = ChatUpstage()from langchain_core.prompts import PromptTemplate prompt_with_template = '아래 질문에 답변해주세요:\n\n {query}' prompt_template = PromptTemplate(template=prompt_with_template, input_variables={"query"})from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate dictionary = ["사람을 나타내는 표현 -> 거주자"] prompt = ChatPromptTemplate.from_template(f""" 사용자의 질문을 보고, 우리의 사전을 참고해서 사용자의 질문을 변경해주세요. 만약 변경할 필요가 없다고 판단된다면, 사용자의 질문을 변경하지 않아도 됩니다. 그런 경우에는 질문만 리턴해주세요 사전: {dictionary} 질문: {{question}} """) dictionary_chain = prompt | llm | StrOutputParser() tax_chain = {"query": dictionary_chain} | prompt_templatenew_question = dictionary_chain.invoke({"question": query})new_questionRetrievalQA 가 사라져서 PromptTemplate 랑 Pinecorn으로 어떻게든 대체하려고 했는데 엉망이 된거 같습니다. ㅠㅠ어떻게 하면 답까지 내놓게 할 수 있을까요?
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
랭체인 라이브러리
docs2txt 같은 라이브러리를 랭체인에 있는 것을 사용하는 이유가 있을까여?순수라이브러리를 사용하면 조금 더 가볍지 않나 싶어서요!
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
[LangGraph를 활용한 AI Agent 개발] 쿠폰 유효기간
안녕하세요. 좋은 강의를 잘 들었습니다.[LangGraph를 활용한 AI Agent 개발] 강의를 이어서 수강하려고 하는데 할인 쿠폰 링크에 들어가보니 유효기간이 끝났다고 하는데, 할인 받을 수 있는 방법은 없는건가요? 확인 부탁 드립니다.🤖
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
postgresql의 pgvector 벡터는 어떤가요?
안녕하세요.이번에 회사 내부에서 AI Agent를 도입 예정인데요.회사 DB는 대부분 postgresql로 구성되어 있는데, postgresql에서 pgvector 벡터 데이터베이스를 제공하더라고요?사용해도 성능이 괜찮을지.. 혹시 경험이 있을지 궁금해서요. 혹시 주위분들에게 들은 거라도 있으신지 ㅠ
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
doc관련
소득세법 을 최신파일로 다운받고 똑같이 했는데(물론 다른 결과가 나오는게 정상이지만), 좀 다르게 나오네요. 실습파일을 올려주시면 좋을 거 같아요.(1년저니라 다를수도) " 결과"연봉 5천만원인 직장인의 소득세 계산은 복잡하며, 여러 단계에 걸쳐 이루어집니다. 기본적으로 근로소득공제, 인적공제, 추가공제 등을 통해 과세표준을 구하고, 이에 소득세율을 적용하여 산출세액을 계산합니다. 이후 다양한 세액공제를 적용하여 최종 납부할 세액을 산출하게 됩니다. 구체적인 계산은 다음과 같습니다. 1. 근로소득공제: - 연봉 5천만원에 대한 근로소득공제를 적용합니다. 공제액이 2천만원을 초과하는 경우에는 2천만원을 공제합니다. 따라서 근로소득공제액은 2천만원입니다. 2. 과세표준 계산: - 과세표준 = 총급여 - 근로소득공제 - 기타 필요경비(기본공제, 추가공제 등) - 기본공제는 연 150만원입니다. (단일 거주자로 가정) - 과세표준 = 5천만원 - 2천만원 - 150만원 = 2,850만원 3. 세율 적용: - 과세표준 구간별로 소득세율이 다르게 적용됩니다. (예: 2,850만원일 경우 소득세율은 일반적으로 \[단순한 설명을 위해 특정 세율로 계산\]) - 실제 세율 적용 과정은 복잡하며, 과세표준 구간에 따른 누진세율을 반영하여 정확하게 계산해야 합니다. 4. 세액공제 등: - 연금보험료공제 등 다른 공제항목들이 있으면 추가로 반영합니다. 이외에도 세금 계산 시 다양하고 복잡한 규정들이 많으므로, 정확한 세금 계산을 위해 세무사 등 전문가의 도움을 받는 것이 좋습니다. 개인의 소득구조, 부양가족, 제출 가능한 증빙자료 등에 따라 최종 세액은 크게 달라질 수 있습니다.
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
load_dotenv() 실행 False
from dotenv import load_dotenvload_dotenv() 전단계 모두 설치 다되었는데요위 코드 실행하면 False가 나옵니다. ㅠㅠ
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
RAG 답변 개선을 위한 정답지 활용 구조 검토 요청
강사님 안녕하세요! 지난번 알려주신 구글 시트 로그 적재 팁 덕분에 챗봇 로그가 잘 쌓이고 있습니다. 감사합니다.이렇게 수집된 [피드백 데이터]*를 활용해 챗봇 성능을 높이려 하는데, 아래 방식으로 구현해도 괜찮을지 의견 여쭙니다! (*데이터 내용: 사용자질문/챗봇답변/평가(좋아요, 싫어요)/답변개선방향)[현재 고민] 피드백 받은 답변개선방향(ex. 챗봇 답변이 ~~식으로 되어야 합니다)을 실시간 프롬프트에 반영하자니 케이스도 많고, 답변 속도도 저하될 것 같아서, 아예 [피드백 데이터]에서 답변을 잘하지 못한 질문에 대한 [정답 답변]을 만들어서 우선 검색하는 방식을 고려 중입니다.[고려 중인 로직]QA데이터셋(정답지): 사용자 질문과 정답 답변(담당팀 검수 답변) 간 유사도 비교분기 처리(Threshold):유사도 0.9 이상: QA 데이터의 답변을 즉시 반환 (LLM 생성 X)유사도 0.9 미만: 기존 RAG 프로세스 (문서 검색 -> LLM 답변 생성) [문의 사항]방법론 검증: 위와 같이 임계값(Threshold 0.9)을 임의로 정하고 정답지 검색을 앞단에 배치하는 방식이 실무적으로 괜찮은 접근일까요?대안 문의: 일반적으로 현업에서 피드백(Human Feedback) 데이터를 RAG에 반영하여 정확도를 높일 때 사용하는 더 나은 방법이 있을까요?바쁘시겠지만 짧게라도 조언 주시면 큰 도움이 될 것 같습니다! 참고로 저는 비개발자입니다!