inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

10강 궁금증

미해결

RAG를 활용한 LLM Application 개발 (feat. LangChain)

10강에서 OpenAIEmbeddings -> UpstageEmbeddings로 변경하는 과정을 따라하고 있었습니다. 궁금한 점은 query = "연봉 5천만원인 직장인의 소득세는 얼마인가요?" reviewed_docs = database.similarity_search(query, k=3) 이렇게 진행을 하시고, 또 아래와 같은 코드를 왜 실행시키는지 궁금합니다. # 이제 QA 체인 만들기 from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=database.as_retriever(), chain_type_kwargs={"prompt" : prompt}) QA 체인이 문서 검색 기능을 해주는 것으로 알고 있는데 왜 위에서 "reviewed_docs = database.similarity_search(query, k=3) " 을 넣으신건지 궁금합니다.

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
댓글 1 좋아요 0 조회수 74

이번달말에 완강 후 공부 방향

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님. 제공해주신 강의 잘 듣고 있습니다. 다름이 아니라, 이번달 말에 강의를 완강할 수 있을 것 같은데 제가 준비하는 기업의 코딩테스트가 10월말쯤으로 약 한달 남았습니다. 이러한 경우, 강의를 한번 더 복습하는 게 나을까요 아니면 프로그래머스에서 문제를 골라서 푸는 게 나을까요? (기업 코딩테스트가 프로그래머스 환경에서 진행됩니다.) 답변 주시면 감사하겠습니다.

  • java
  • 코딩-테스트
이유민 댓글 1 좋아요 0 조회수 74

문서 못 찾음

미해결

RAG를 활용한 LLM Application 개발 (feat. LangChain)

%pip install --upgrade --quiet docx2txt langchain-community 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) %pip install -qU langchain-text-splitters document_list len(document_list) from langchain_openai import OpenAIEmbeddings from dotenv import load_dotenv load_dotenv() embedding = OpenAIEmbeddings(model="text-embedding-3-large") %pip install -qU langchain-chroma from langchain_chroma import Chroma # database = Chroma.from_documents(documents=document_list, embedding=embedding, collection_name="chroma-tax", persist_directory="./chroma") database = Chroma(collection_name="chroma-tax", persist_directory="./chroma", embedding_function=embedding) print(database._collection.count()) # 문서 개수 query = "연봉 5천만원인 직장인의 소득세는 얼마인가요?" # reviewed_docs = database.similarity_search(query, k=3) from langchain_openai import ChatOpenAI llm = ChatOpenAI(model="gpt-4o") %pip install -U langchain langchainhub --quiet from langchain import hub prompt = hub.pull("rlm/rag-prompt") prompt # 이제 QA 체인 만들기 from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=database.as_retriever(), chain_type_kwargs={"prompt" : prompt}) ai_messgae = qa_chain.invoke({"query" : query}) ai_messgae 인강을 들으며 코드를 동일하게 작성하였는데 관련 문서 내용을 찾지 못하여 답변이 저렇게 나오는데 어느 부분이 문제인지 모르겠습니다.

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
댓글 2 좋아요 0 조회수 134

n8n 설치 에러

미해결

퇴근 2시간 당기는 자동화, 코딩 몰라도 됩니다

설치 시 에러 발생했는데 어떤게 문제일까요..ㅠ

  • python
  • excel
  • no-code
  • n8n
  • 인공지능(ai)
졍니 댓글 2 좋아요 0 조회수 249

22. 슬랙봇으로 연결하는 Test-to-SQL 강의, query string newline

미해결

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

안녕하세요. 슬랙에 표시될 때 가끔 Query 가 줄바꿈 없이 표시됩니다. query 생성 LLM 이 개행문자 '\n' 없이 출력해 주는 경우가 있네요. 대부분은 아래와 같이 표시되지만요.

  • n8n
  • 인공지능(ai)
  • langchain
  • ai-활용-(ax)
  • langgraph
khs 댓글 2 좋아요 0 조회수 99

Django의 View나 URL의 네이밍 컨벤션

미해결

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)

안녕하세요 강사님, 스타트업에서 django를 활용해 개발하고 있는 신입 개발자입니다. 일을 시작하다 보니 제가 django에 대해 잘 모르고 있다는 것을 느껴 수강하게 되었는데요, 그 중 가장 고민이 되는 부분이 네이밍이었습니다. 그래서 질문드리는 것이 Django에서는 View나 URL 엔드포인트 별명(name=에 들어가는 값)을 지을 때 해당 객체의 타입도 같이 적는지 궁금합니다. 예를 들어 View의 이름을 지을 때 PostRenderView라고 짓는지, 아니면 PostRender라고만 해도 될까요? url name을 지을 때에도 post_render라고만 하면 되는지, post_render_view라고 해주는게 좋은지 django의 컨벤션을 알고 싶습니다. 제가 생각하기엔 View의 클래스 이름은 view라는 것을 명확하게 하기 위해 View를 붙이는 게, url name은 template에서 쓰이는 별명이므로 post_render라고만 하는 게 좋다고 생각해서 지금까지 이렇게 짓고 있었습니다. 또 HTTP response에 대해 들었던 내용 중에 정확하진 않지만 메서드 타입이 get이면 이미 타입에 역할이 포함되어 있기 때문에 메서드 이름에 get을 넣지 않는 게 좋다라고 들었던 기억이 있어서요. 강사님의 생각이 궁금합니다. 알찬 강의 잘 수강하고 있습니다. 감사합니다!

  • python
  • django
  • web-api
  • htmx
back010 댓글 1 좋아요 0 조회수 91

22. 슬랙봇으로 연결하는 Test-to-SQL 강의에서 Request URL 설정

미해결

회사에서 바로 쓰는 업무자동화 AI 에이전트 (w. n8n, LangGraph)

안녕하세요. 로컬에 n8n 설치해 강의 실습하고 있습니다. (localhost:5678) 22강의 Event Subscriptions 과정에서 Request URL 로의 request 가 실패하고 있습니다. response 가 오긴 하는 거 같은데 challenge 파라미터 값이 없다고.. localhost 일 때는 추가 조치가 필요할까요?

  • n8n
  • 인공지능(ai)
  • langchain
  • ai-활용-(ax)
  • langgraph
khs 댓글 2 좋아요 0 조회수 113

강의 자료 관련

미해결

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

강의자료가 PDF로 변환하다보니, 문자 길이 때문인지 끊어지는 경우가 있는거 같은데 혹시 Notion 페이지로 제공해주실 수 잇나요?

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
kimoon Hong 댓글 2 좋아요 0 조회수 114

dto 필드 속 엔티티 여부

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

1. 강의 내용과 관련된 질문인가요?예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, dto에 대해서 질문드리고 싶어 남깁니다. order 테이블에는 연관관계 필드가 있는데 orderDto에서는 연관관계 필드를 제외한 데이터들이 필드로 들어가있습니다. 보통 Dto를 작성할 때는 엔티티 연관관계 필드들은 양방향 편의 메서드같은것으로 수정하고 dto에서는 int, String같은 기본 필드들만 받는것이 일반적일까요 ? 스프링부트 1 버전에서 가급적 단방향 연관관계로 설계하라 하셨는데, 단방향으로 설계하게 되면 연관관계 편의 메서드를 작성하지 않을텐데 이때는 dto필드에 엔티티까지 작성하는지 궁금합니다. 좋은 강의 제공해주셔서 감사드립니다 !

  • java
  • spring
  • spring-boot
  • jpa
wonderwall09in 댓글 1 좋아요 0 조회수 87

Golden Dataset 관련 질문

미해결

RAG를 활용한 LLM Application 개발 (feat. LangChain)

안녕하세요. 강의 잘 듣고 있습니다. 강의에서 evaluation을 위한 golden dataset을 chatgpt로 생성하셨는데 실무에서는 보통 어떻게 처리하시는지 궁금합니다. 실무에서도 LLM이나 인공지능을 활용하여 dataset을 만드시나요? 아니면 사람이 개입해서 수집이나 조사 등을 통해 작성하시나요?

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
댓글 1 좋아요 0 조회수 175

custom_image 디렉토리 문의드립니다.

미해결

Airflow 마스터 클래스

안녕하세요. 섹션 12 강의를 듣는중인데 airflow 디렉토리 밑에 custom_image 디렉토리가 이미 하나 있어야 하더라구요. 그런데 제 airflow 디렉토리 밑에는 해당 디렉토리가 없습니다. 여태 진행한 강의는 분명 빠짐없이 들었는데 제가 실수로 놓친 부분이 있는 것 같습니다.. 다시 찾아 듣고자 하는데 어느 강의인지 찾지를 못하고 있습니다. 죄송하지만 혹시 해당 부분 몇 강에서 진행하셨는지 알 수 있을까요?

  • python
  • 데이터-엔지니어링
  • airflow
doran 댓글 2 좋아요 0 조회수 63

이너 클래스로 구현하는 이유

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

킬구형 안녕! 지금 실무에서 Spring Batch를 사용해서 배치 기능 구현하고 있는데 궁금한 점이 있어. 강의의 예제 코드들을 보다보면 Job에 필요한 항목들을 따로 클래스 파일로 빼서 구현하지 않고 JobConfig 클래스 내에서 이너 클래스로 구현하던데 특별한 이유가 있을까!? @Slf4j public static class BrainwashProcessor implements ItemProcessor<InFearLearnStudents, BrainwashedVictim> { 강의가 너무 재밌어서 점심시간에도 공부 중이야 ㅎㅎ

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
SBS 댓글 2 좋아요 1 조회수 84

멘토링 신청은 어디서 하나요

미해결

RAG를 활용한 LLM Application 개발 (feat. LangChain)

멘토링 페이지에서 강사님 이름을 쳐도 안나오는데 멘토링 신청 안받는것인지 궁금해서 여쭤봅니다.

  • vector-database
  • llm
  • langchain
  • rag
  • openai-api
개발 까마귀 댓글 1 좋아요 0 조회수 62

멀티모듈

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요 토비님 배운 내용을 바탕으로 기존 프로젝트 구조를 변경하는 연습하고 있습니다. 기존 프로젝트가 멀티 모듈로 되어있어 멀티모듈 구조는 그대로 가져가고 싶은데 분리한다면 어떻게 나누어야 할까요? 모듈을 두개로 나누어 api와 core로 구성했는데 adapter, application, domain를 api 모듈에 adapter core 모듈에 application, domain 이렇게 구성하였는데 이렇게 구분해도 괜찮은지 잘 모르겠습니다

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
rhdrlehf5 댓글 2 좋아요 0 조회수 133

제가 이런 코테가 처음인데 공부방법을..ㅠ

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

일단 인강을 보기전에 혼자 스스로 풀어보고 제출을해서 정답을 여러번 맞췄는데 선생님하고 코드가 좀 많이 다릅니다.(제 코드는 채점사이트에서는 정답은 나옴) 그래서 정답으로 나오긴하지만 선생님코드랑은 다르니..이게 올바는 코드인지..제가 푼게 잘푼건지..잘모르겠습니다..ㅠ 선생님코드로 공부를해야하는지..

  • java
  • 코딩-테스트
임다정 댓글 1 좋아요 1 조회수 121

재귀함수-2: 회문검사

해결됨

38군데 합격 비법, 2026 코딩테스트 필수 알고리즘

1. 현재 학습 진도 23. 2-9 재귀함수 - 2 2. 어려움을 겪는 부분 재귀함수-2 의 영상 6분 쯤에 "for i in range(n)" 부분이 이해가 안 가서요! 문자열 길이만큼, 끝까지 연산해야하는 로직인가요? 3. 시도해보신 내용 range(n)이 range(n/2) 이런식으로 절반까지만 연산해야하는게 아닌가 헷갈려서 질문드립니다 ㅠㅠ! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊

  • python
  • 코딩-테스트
  • 알고리즘
  • data-structure
당황한 치타 댓글 2 좋아요 0 조회수 92

메일보내기 할 때 에러..

미해결

Python 엑셀 프로그래밍 - with xlsxwriter

한글파일명인 액셀파일을 첨부하는 것은 안되나요? 아니면, 액셀 내 columns value 값이 한글인 것을 가져와서 메일 헤더나 파일명으로 사용한게 에러인 것인지.. 궁금합니다... 메일주소와 password 는 '^^^^^' 임의 처리한 코딩입니다. 오류내용: ❌ 이메일 발송 실패: 진리종합상사 - 'ascii' codec can't encode characters in position 5-7: ordinal not in range(128) import pandas as pd import os from openpyxl.utils import get_column_letter from openpyxl.styles import Font, PatternFill, Alignment, Border, Side import smtplib from email.message import EmailMessage import ssl from email.header import Header from email.utils import formataddr # ------------------------- # 설정 # ------------------------- cost_manage_path = 'cost_manage.xlsx' partner_path = 'partner.xlsx' output_dir = 'output' SENDER_EMAIL = '^^^^^^^^^^^^^^' SENDER_PASSWORD = '^^^^^^^^^^^^^^' SMTP_SERVER = 'smtp.gmail.com' SMTP_PORT = 587 # ------------------------- # 엑셀 읽기 # ------------------------- try: cost_data_df = pd.read_excel(cost_manage_path, sheet_name='Sheet1', header=1) partner_sheet1_df = pd.read_excel(partner_path, sheet_name='Sheet1') partner_sheet2_df = pd.read_excel(partner_path, sheet_name='Sheet2') except FileNotFoundError as e: print(f"오류: 파일을 찾을 수 없습니다. {e.filename}") exit() # ------------------------- # 데이터 전처리 # ------------------------- for df in [cost_data_df, partner_sheet1_df, partner_sheet2_df]: df.columns = df.columns.str.strip() cost_data_df = cost_data_df.drop(columns=['협력사ID', '협력사명']) cost_data_df['상세분류ID'] = cost_data_df['상세분류ID'].astype(str).str.strip() partner_sheet1_df['상세분류ID'] = partner_sheet1_df['상세분류ID'].astype(str).str.strip() partner_sheet2_df['협력사KEY'] = partner_sheet2_df['협력사KEY'].astype(str).str.strip() merged_df = pd.merge(cost_data_df, partner_sheet1_df, on='상세분류ID', how='left') final_df = pd.merge(merged_df, partner_sheet2_df, on='협력사KEY', how='left') final_df = final_df.drop(columns=['상세분류명_y']) final_df = final_df.rename(columns={'상세분류명_x': '상세분류명'}) final_columns = ['상세분류ID', '상세분류명', '협력사KEY', '협력사ID', '협력사명', '상품ID', '규격', '단가', 'moq', '이메일주소'] real_final_df = final_df[final_columns] grouped_by_partner = real_final_df.groupby('협력사KEY') if not os.path.exists(output_dir): os.makedirs(output_dir) # ------------------------- # 엑셀 생성 & 이메일 발송 # ------------------------- for partner_key, group_df in grouped_by_partner: # 엑셀 데이터 준비 columns_for_excel = ['상세분류ID', '상세분류명', '협력사ID', '협력사명', '상품ID', '규격', '단가', 'moq'] data_to_write = group_df[columns_for_excel].copy() header_row1 = pd.DataFrame([['', '', '', '', '', '', '▼작성', '▼작성']], columns=columns_for_excel) header_row2 = pd.DataFrame([columns_for_excel], columns=columns_for_excel) final_excel_df = pd.concat([header_row1, header_row2, data_to_write], ignore_index=True) # 파일 경로 file_name = f"{partner_key}_견적_요청서.xlsx" output_path = os.path.join(output_dir, file_name) # 엑셀 생성 with pd.ExcelWriter(output_path, engine='openpyxl') as writer: final_excel_df.to_excel(writer, index=False, header=False, sheet_name='Sheet1') worksheet = writer.sheets['Sheet1'] worksheet.sheet_view.showGridLines = False # 스타일 설정 bold_yellow_fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid') center_align = Alignment(horizontal='center') left_align = Alignment(horizontal='left') bold_font = Font(bold=True) thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin')) # 1행 스타일 for cell in worksheet[1]: if cell.value == '▼작성': cell.fill = bold_yellow_fill cell.font = bold_font # 2행 스타일 for cell in worksheet[2]: cell.alignment = center_align cell.border = thin_border # 데이터 행 스타일 left_align_cols = ['상세분류ID', '상세분류명', '규격'] col_map = {col: i + 1 for i, col in enumerate(columns_for_excel)} for row_num in range(3, worksheet.max_row + 1): for col_name in columns_for_excel: cell = worksheet.cell(row=row_num, column=col_map[col_name]) cell.alignment = left_align if col_name in left_align_cols else center_align cell.border = thin_border # 열 너비 자동 조정 for column in worksheet.columns: max_length = 0 column_letter = get_column_letter(column[0].column) for cell in column: if cell.value: max_length = max(max_length, len(str(cell.value))) worksheet.column_dimensions[column_letter].width = max_length + (20 if column_letter == get_column_letter(col_map['규격']) else 5) print(f"✅ '{file_name}' 파일이 '{output_dir}' 폴더에 생성되었습니다.") # 이메일 정보 partner_email = group_df['이메일주소'].iloc[0] partner_name = group_df['협력사명'].iloc[0] if pd.isna(partner_email): print(f"❌ {partner_name}의 이메일 주소가 없어 이메일 발송을 건너뜁니다.") continue print(f"📧 '{partner_name}' ({partner_email})님에게 이메일 발송 중...") msg = EmailMessage() msg['From'] = formataddr((str(Header('보내는 사람 이름', 'utf-8')), SENDER_EMAIL)) msg['To'] = partner_email # 이 부분만 이전 코드로 되돌려 일반 문자열을 할당합니다. msg['Subject'] = f'[{partner_name}] 월간 비용 견적 요청서입니다.' body = f"""안녕하세요, {partner_name} 담당자님. 월간 비용 견적 요청서(첨부파일)를 보내드립니다. 확인 후 회신 부탁드립니다. 감사합니다. -- 보내는 사람 이름 """ msg.set_content(body) try: with open(output_path, 'rb') as f: # `filename` 인수를 일반 문자열로 전달 msg.add_attachment(f.read(), maintype='application', subtype='octet-stream', filename=file_name) except Exception as e: print(f"❌ 파일 첨부 중 오류 발생: {e}") continue try: context = ssl.create_default_context() with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server: server.starttls(context=context) server.login(SENDER_EMAIL, SENDER_PASSWORD) server.send_message(msg) print(f"✅ 이메일 발송 성공: {partner_name}") except Exception as e: print(f"❌ 이메일 발송 실패: {partner_name} - {e}")

  • python
  • xlsxwriter
최미희 댓글 0 좋아요 0 조회수 66

querydsl sum() 메서드 없어요.

미해결

실전! Querydsl

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 보시다시피 sum()은 아예 없어요. NumberExpression 클래스에서 집계 함수들을 살펴보니깐 sum() 은 private로 되어있고, 나머지 sum 함수들은 내부에서 sum()을 호출해요. 구글에 검색해보면 다들 sum을 쓸 수 있는 것처럼 보이던데 왜 저만 이럴까요? 그리고 sumBigInteger()는 있는데 정작 sumInteger()는 왜 없을까요?

  • java
  • jpa
매콤한각설탕 댓글 2 좋아요 0 조회수 198

vscode 터미널 출력이 안되요

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

위에서 입력하면 터미널 창에 나와야 되는데 안나와요ㅠ

  • python
댓글 2 좋아요 0 조회수 801

인기 태그

인프런 TOP Writers

주간 인기글