본문 바로가기

파이썬18

*, **, *args, **kwargs, *rest, :=, List Comprehension and Ternary Operator 등 정리 파이썬 코딩 및 프레임워크(OpenAI SDK, FastAPI, Django 등) 활용 시 필수적인 언패킹 및 고급 대입 연산자 5가지 및 파이썬 코드를 획기적으로 줄여주고 가독성을 높여주는 리스트 컴프리헨션(List Comprehension)과 삼항 연산자(Ternary Operator)를 쉽게 이해할 수 있도록 예제와 함께 정리합니다. 1. * (iterable 언패킹 연산자)리스트, 튜플, 세트 등의 순서가 있는 자료형(Iterable) 내부 요소를 하나씩 밖으로 풀어헤칠 때 사용합니다.# 1) 리스트/튜플 병합fruits = ["apple", "banana"]veggies = ["carrot", "cucumber"]# 기존 방식을 대체하는 깔끔한 병합basket = [*fruits, "grape".. 2026. 9. 26.
3. [History+Summary] 자동 대화 요약 메모리를 탑재한 대화형 챗봇 봇(CLI) 단발성 테스트 스크립트를 넘어, 실제 터미널(CLI) 환경에서 사용자와 주고받는 실시간 대화 루프(while True)와 슬라이딩 윈도우 기반 요약 메모리를 결합한 완성형 챗봇 애플리케이션입니다. #Chat_Loop (대화 루프): 사용자가 /quit을 입력하기 전까지 연속적으로 메시지를 입력받고 응답하는 무한 루프 구조입니다.#CLI_Command (특수 명령어): 챗봇 대화 중 /history, /summary, /reset과 같은 명령어로 대화 이력을 조회하거나 상태를 관리하는 기능입니다.#System_Prompt (시스템 프롬프트): AI에게 역할(Assistant), 답변 규칙, 요약 정보 참조 방식 등을 미리 지시하는 핵심 명령문입니다.#Summary_Memory (요약 메모리): 누적된 오래.. 2026. 8. 31.
2. [Summary Memory] 대화 이력 슬라이딩 윈도우 및 자동 요약 압축 시스템 이전 코드에서 한 단계 더 발전하여 대화 개수 기준(슬라이딩 윈도우)을 적용해 대화 이력(History)을 자동으로 잘라내고 요약 및 압축하는 완성형 파이썬 스크립트입니다. #History_Management (대화 이력 관리): 대화형 AI가 이전 맥락을 기억하도록 대화 목록을 저장하고 전달하는 메커니즘입니다.#Sliding_Window (슬라이딩 윈도우): 전체 대화 중 최근 $N$개의 메시지만 최신 상태로 유지하고, 나머지 오래된 메시지는 분리해내는 기법입니다.#Context_Compression (컨텍스트 압축): 오래된 대화들을 LLM에 전달해 3줄 요약문으로 만든 뒤 system 메시지로 변환하여 전체 토큰 수를 대폭 줄이는 기술입니다.#List_Slicing (리스트 슬라이싱): 파이썬의 m.. 2026. 8. 31.
XVI. 작은 AI Agent에 5가지 기능을 추가한 프로그램(끝) # 1. Tools from pathlib import Path def calculator(expr:str)->str: """(20*4)+15와 같은 간단한 산술 표현식을 계산합니다.""" allowed = set("0123456789+-*/().") expr = expr.replace(" ", "") if not expr or not set(expr) allowed: return "오류: 숫자와 +-*/().만 허용됩니다." try: return str(eval(expr)) except (SyntaxError, ZeroDivisionError) as e: .. 2026. 8. 26.
XV. 작은 AI Agent 프로그램(실제 LLM -OpenAI 사용) # 1. Tools from pathlib import Path def calculator(expr:str)->str: """(20*4)+15와 같은 간단한 산술 표현식을 계산합니다.""" allowed = set("0123456789+-*/().") expr = expr.replace(" ", "") if not expr or not set(expr) allowed: return "오류: 숫자와 +-*/().만 허용됩니다." try: return str(eval(expr)) except (SyntaxError, ZeroDivisionError) as e: .. 2026. 8. 26.
XIV. 작은 AI Agent 프로그램(가짜 LLM Model-script 사용) # 1. 설계 주석 # 설계 # 목표: 사용자로부터 입력받은 문장 # 도구: 계산기, 파일 읽기, 조회 # 반복: 최대 6단계 # 메모리: 메시지 목록 (완료 시 디스크에 저장) # 종료: 모델이 '완료' 도구를 반환하거나 단계 제한에 도달함 # (아래는 영문으로 위와 동일한 내용) # The design # goal a sentence from the user # tools calculator, read_file, lookup # loop at most 6 steps # memory a list of messages, saved to dis.. 2026. 8. 26.
반응형