분류 전체보기 62

[LangChain] 개요

LangChain 사용 이유LLM API 를 단독으로 사용할때보다 훨씬 간결하게 기능 구현 가능프롬프트 관리, 메모리, 체이닝, 툴 호출, RAG, 에이전트 같은 기능을 체계적으로 제공langchain-openai기존: 모든 공급자 (예: OpenAI, Anthropic, HuggingFace 등) 가 langchain 본체 안에 혼재변경: 의존성 폭발과 업데이트 속도 차이 때문에 공급자별 패키지 분리LangChain 의 주요 기능LLM 기본 호출프롬프트 템플릿 관리메모리 사용 (대화 맥락 유지)체인 구성 (여러 단계 처리, 기능 모듈화)RAG 간편 구현 (샘플 체인으로 이미 구현되어 있음)Agent 간편 구현즉, 일일이 프롬프트를 구성하여 결과를 재사용하는 과정, LLM 의 결과에 따라 특정 함수를 호..

AI/LLM 2025.10.02

Prompt Engineering

Prompting 원칙명확한 지침을 내릴 것입력에서 특정 부분을 명확히 강조하기 위해 ```, """, , , : 등의 delimiter (구분자) 사용할 것출력 형식을 JSON, HTML, 혹은 그 외 직접 설정한 structured ouput 형태로 요청할 것최대한 명확하고 자세하게 설명할 것짧은 프롬프트보다 긴 프롬프트가 더 효과적조건을 만족하면 어떠한 답변을, 만족하지 않으면 어떠한 답변을 주라는 식으로 명확히 지침모델이 생각할 시간을 줄 것작업을 완료하는 데 필요한 절차를 하나하나 명확하게 설명할 것모델이 스스로 생각하게끔 지시하기여러가지 팁잘못된 공백, 들여쓰기 등이 성능에 큰 영향을 미치지 않을 수 있으나 여전히 고려하기테스트를 해보며 프롬프트 계속해서 수정해보기고급 프롬프팅 기술Few-sh..

AI/LLM 2025.09.24

[Python] textwrap.dedent

멀티라인 문자열 (Multiline Strings)""" ... """ 멀티라인 문자열을 그대로 쓰면, 들여쓰기가 코드 전체 스타일과 어긋나서 보기가 안 예쁠 수 있음def main(): prompt = f"""When I use multi-line strings in Python,the indentation style looks misaligned and messy.How can I fix this?""" print(prompt)아래와 같이 코드 작성시 출력 앞부분에 공백이 들어감def main(): prompt = f""" When I use multi-line strings in Python, the indentation style looks misaligned and m..

Dev/Python 2025.09.18

Git, GitHub 병합 정리

Git(develop) git rebase -i maindevelop 커밋 히스토리를 main 위로 재배열 (develop 에 변화 있음)-i 옵션 여부에 따라 develop 의 커밋 압축 여부를 직접 지정할수도 혹은 지정 없이 모두 그대로 유지할수도 있음(develop) git rebase -i HEAD~3그냥 develop 내부에서 혼자 커밋 히스토리 정리하는거 (develop 에 변화 있음)(main) git merge --squash developdevelop 커밋 히스토리를 하나로 합쳐서 main 위로 새로운 커밋 하나 생성 (develop 에는 변화 없음)그냥 merge 해올때 커밋 하나로 압축해서 가져오는거이후 git add 및 git commit 진행해야 merge 완료됨GitHubCrea..

Dev/VCS 2025.09.18

API

API 란?서로 다른 시스템 간에 상호작용할 수 있도록 정해둔 규칙API 는 "함수", "메서드 호출", "시스템 호출", "네트워크 요청" 등 여러 형태로 존재할 수 있음API 종류API 는 크게 보면 아래와 같이 두 종류로 구분 할 수 있습니다.로컬 API (언어·OS)pip 같은 패키지 매니저로 로컬 환경에 설치네트워크 통신 없음호출하면 바로 로컬 CPU/GPU/메모리에서 실행원격 API (웹·RPC 등)경우에 따라 클라이언트 라이브러리를 설치하지만, 실제 계산은 서버에서 함네트워크 통신 필수호출 시 내부적으로 인터넷을 통해 서버에 요청을 보내고 원격 서버가 응답을 돌려줌OpenAI 의 경우 로컬에 pip install 을 통해 설치하여 사용하는 형식이지만 이는 클라이언트 라이브러리일 뿐 내부적으로..

기타 지식 2025.09.08

프로젝트 환경 관리 (.env, scratch 폴더, requirements.txt)

.env 파일 위치.env 파일은 프로젝트 최상단 (root directory) 에 놓는것이 일반적대부분의 라이브러리 (dotenv, python-decouple, node dotenv 등) 가 root 경로에 있는 .env 파일을 기본적으로 읽음임시 테스트용 파일scratch/ 같은 임시 테스트용 폴더 사용.gitignore 에 scratch/ 폴더를 통째로 넣어두면 폴더 자체가 깃허브에 안 올라감.gitkeep 사용하여 폴더 구조 유지 가능requirements.txt 작성법재현성 (reproducibility) 이 매우 중요한 경우가 아니라면 직접 import 해서 사용하는 패키지만 기록예를 들어 openai 를 설치하면 내부적으로 httpx, tqdm 같은 의존성 패키지가 딸려올 수 있지만 req..

Dev/DevOps 2025.09.04

Python f-string

Python f-string파이썬에는 %, .format(), f-string 등 여러 가지 문자열 포매팅 방식이 존재2025년 현재 대세이자 권장되는 방식은 f-string권장 이유:간결함: 변수와 표현식을 바로 중괄호 안에 넣을 수 있음가독성: 문자열과 코드가 뒤섞이지 않고 직관적성능: str.format() 보다 빠름 (CPython 구현 최적화 덕분)표현력: 수식 및 함수 호출도 직접 넣을 수 있음사용법:문자열 앞에 f (또는 F) 접두어 사용{} 내부에 변수명 또는 파이썬 표현식 작성포매팅 옵션 사용 가능중괄호 자체를 출력하려면 {{ 또는 }} 사용PEP 498 (Formatted String Literals) 에서 제안prompt = f"""Summarize the text delimited ..

Dev/Python 2025.08.23

Python PEP 설명

PEP 이란?PEP (Python Enhancement Proposal)Python 에 새로운 기능을 제안하거나, 설계 철학/가이드라인, 개발 프로세스 등을 정리한 공식 문서Python 개발 과정의 투명성과 합의를 위해 운영Informational PEP사용자에게 파이썬 철학, 코딩 스타일, 권장 방법 등을 공식적으로 안내하기 위함주로 Python 핵심 개발자 (core developers) 또는 Steering Council 이 직접 작성이미 core 개발자들이 작성하고 공식 안내 목적으로 배포한 문서이므로 별도의 채택 과정 없음Standards Track PEPPython 에 어떤 기능을 추가하거나 변경하고 싶다는 아이디어 + 설계 + 최소 구현 예시를 문서화한 것Python 개발자들도 제안할 수 있..

기타 지식 2025.08.21

OpenAI API

API Key 적용 방식client 객체를 생성할 때 api_key 인자를 직접 지정api_key 인자를 지정하지 않았다면 환경변수 OPENAI_API_KEY 값을 읽어와서 client 객체를 초기화 (다른 이름이면 안됨)import osimport openai# Case 1: client 객체 생성 시 API Key 직접 할당client = openai.OpenAI(api_key="sk-xxxx") # 직접 할당import osimport openai# Case 2: client 객체 생성 시 API Key 미할당 → OpenAI 클래스가 초기화 시점에 환경변수 OPENAI_API_KEY 값을 자동으로 읽어 사용os.environ["OPENAI_API_KEY"] = "sk-yyyy" # 미리 환경변..

AI/LLM 2025.08.19

Python dotenv 사용법 및 원리

사용 예시import osfrom dotenv import load_dotenvdef main(): load_dotenv(dotenv_path='.env') openai_api_key = os.getenv(key='OPENAI_API_KEY') print(openai_api_key)if __name__ == '__main__': main()동작 원리load_dotenv() 통해 변수를 현재 실행 중인 파이썬 프로세스의 환경 변수에 등록os.getenv() 통해 환경 변수 사용os.environ 통해 현재 실행 중인 파이썬 프로세스에 등록되어있는 환경 변수 확인 가능꼭 .env 파일이 아니어도 상관없지만 파일 내용은 KEY=VALUE 형식이어야 load_dotenv 가 환경 변수로 등..

Dev/Python 2025.08.17