2024/11 26

스파르타 AI-8기 TIL(11/26) -> 처음부터 계속하기

streamingLLM은 한단어씩 답변을 생성하기 때문에, 사실상 원하면 실시간으로 한단어씩 보여주는 것이 가능합니다. 그것을 가능하게 하는것이streaming입니다.from langchain_openai import ChatOpenAIchat = ChatOpenAI(model_name="gpt-4o-mini")#chat.invoke("사람이 뭔지 설명해줘.") # 평소에 완성된 대답을 받던 함수 (invoke)AIMessage(content='사람은 생물학적으로 호모 사피엔스(Homo sapiens)라는 종에 속하는 존재로, 지구상에서 가장 발달한 두뇌를 가진 동물입니다. 사람은 고유한 언어 능력, 추상적인 사고, 문제 해결 능력, 그리고 복잡한 사회적 관계를 형성하는 능력을 가지고 있습니다.\n\n사..

카테고리 없음 2024.11.26

스파르타 AI-8기 TIL(11/25) -> 처음부터 계속하기

솔직히 말해서 오늘은 팀 과제로 인해 배운점이 없다...라고 하면 거짓말....from langchain_community.vectorstores import FAISSfrom langchain_community.document_loaders import WebBaseLoaderfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.runnables import RunnablePassthroughfrom langchain_openai import OpenAIEmbeddingsfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_op..

카테고리 없음 2024.11.25

스파르타 AI-8기 TIL(11/24) -> 처음부터 계속하기

프롬프트 작성 원칙효과적인 프롬프트를 통해 모델이 최대한 질이 좋고 정확한 정보를 제공할 수 있게 해야합니다. 그러기 위해서는 다음과 같은 원칙들이 존재합니다.1. 명확성과 구체성질문은 명확하고 구체적으로. 모호한 질문은 오히려 모델의 계산을 힘들게 할 수 있습니다.예시:'2024년 전세계 경제 지표를 통해 2024년 11월 25일에 주식 시장에 대한 설명을 해줘'는 '내일 주식 시장에 대해 설명해줘'보다 더 정확한 값을 불러올 수 있습니다.2. 배경 정보를 포함모델이 문맥을 이해하고 정보를 이해할 수 있도록 필요한 기본 바탕이 되는 정보를 줘야합니다. 이는 환각 현상(hallucination)을 방지할 수 있으며, 관련성 높은 응답을 생성하는 데 도움을 줍니다. 예시: "2020년 미국 대선의 결과를 ..

카테고리 없음 2024.11.24

스파르타 AI-8기 TIL(11/23) -> 처음부터 계속하기

체인을 실행하는 방법LangChain을 사용하여 커스텀 체인을 생성하는 과정은 다음과 같다.1. 필요한 컴포넌트를 정의하고, 각각 "Runnable" 인터페이스를 구현합니다. 2. 컴포넌트들을 조합하여 사용자 정의 체인을 생성합니다. 3. 생성된 체인을 사용하여 데이터 처리 작업을 수행합니다. 이때, invoke, batch, stream 메소드를 사용하여 원하는 방식으로 데이터를 처리할 수 있습니다..invoke() - 주어진 입력에 대해 체인을 호출하고, 결과를 반환합니다. prompt = ChatPromptTemplate.from_template('인생에서 {topic}이란 뭔지 알려줘')model = ChatOpenAI(model = 'gpt-4o')output_parser = StrOutputP..

카테고리 없음 2024.11.23

스파르타 AI-8기 TIL(11/22) -> 처음부터 계속하기

LangChain의 "Runnable" 프로토콜LangChain의 "Runnable" 프로토콜은 체인을 쉽게 생성하고 관리할 수 있도록 설계된 핵심적인 개념입니다. 이 프로토콜을 통해, 개발자는 일관된 인터페이스를 사용하여 다양한 타입의 컴포넌트를 조합하고, 복잡한 데이터 처리 파이프라인을 구성할 수 있습니다. "Runnable" 프로토콜은 다음과 같은 주요 메소드를 제공합니다:invoke: 주어진 입력에 대해 체인을 호출하고, 결과를 반환합니다. 이 메소드는 단일 입력에 대해 동기적으로 작동합니다. batch: 입력 리스트에 체인을 호출 및 입력에 대한 결과를 리스트로 반환 이 메소드는 여러 입력에 대해 동기적으로 작동하며, 효율적인 배치 처리를 가능하게 합니다. stream: 입력에 대해 체인을 호출..

카테고리 없음 2024.11.22

스파르타 AI-8기 TIL(11/21) -> 처음부터 계속하기

LangChain 계속기본 LLM 체인의 구성 요소 프롬프트(Prompt): 사용자 또는 시스템에서 제공하는 입력으로, LLM에게 특정 작업을 수행하도록 요청하는 지시문입니다. LLM(Large Language Model): GPT, Gemini 등 대규모 언어 모델로, 대량의 텍스트 데이터에서 학습하여 언어를 이해하고 생성할 수 있는 인공지능 시스템입니다.일반적인 작동 방식 프롬프트 생성: 사용자의 요구 사항이나 특정 작업을 정의하는 프롬프트를 생성합니다. 이 프롬프트는 LLM에게 전달되기 전, 작업의 목적과 맥락을 명확히 전달하기 위해 최적화될 수 있습니다. LLM 처리: LLM은 제공된 프롬프트를 분석하고, 학습된 지식을 바탕으로 적절한 응답을 생성합니다. 이 과정에서 LLM은 내부적으로 다양한 언..

카테고리 없음 2024.11.21

스파르타 AI-8기 TIL(11/20) -> 처음부터 계속하기

LangChainLangChain은 대규모 언어 모델(LLM)을 활용하여 자연어 처리 작업을 쉽게 수행할 수 있도록 돕는 프레임워크입니다. LangChain은 LLM의 입력과 출력을 관리하고, 이를 기존 데이터 또는 사용자 정의 논리에 통합할 수 있는 다양한 모듈을 제공합니다.주요 기능: LLM을 이용한 텍스트 생성 및 요약 데이터베이스나 외부 파일에서 정보 검색 (Retrieval-Augmented Generation, RAG) 워크플로우 정의 (Chains & Agents) 메모리 및 상태 관리하나의 체인from langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParserf..

카테고리 없음 2024.11.20

스파르타 AI-8기 TIL(11/19) -> 처음부터 계속하기

LLM대형 언어 모델(Large Language Model, LLM)은 인간이 언어를 이해하고 생성할 수 있도록 훈련된 인공지능 모델을 의미합니다. 이 모델들은 방대한 양의 텍스트 데이터를 기반으로 학습하여, 단어나 문장의 이미를 이해하고, 새로운 텍스트를 생성할 수 있습니다.LLM의 핵심은 "패턴 인식"입니다. 언어에는 수많은 패턴이 존재하는데, 이 패턴을 학습하기 위해 수백만에서 수십억 개의 문장을 포함한 방대한 텍스트 데이터를 사용합니다. 이를 통해 모델은 단어 간의 관계, 문장 구조, 문맥 등을 이해하게 됩니다. 이를 기반으로 사람과 대화하거나 글을 쓸때 자연스러운 텍스트를 생성할 수 있습니다. NLP자연어 처리 (NLP)는 컴퓨터와 사람들이 인간의 언어를 사용하여 컴퓨터가 이해하고 처리할 수 있..

카테고리 없음 2024.11.19

스파르타 AI-8기 TIL(11/18) -> 처음부터 계속하기

if문프로그래밍에서 조건을 판단하여 해당 조건에 맞는 상황을 수행하는 데 쓰는 것이 바로 if 문입니다.money = Trueif money: print('hi')else: print('hello') #True이므로 hi가 출력됩니다."""if 조건문: 수행할_문장1 수행할_문장2 ...else: 수행할_문장A 수행할_문장B ...""" #기본 if와 else의 기본 구조#그렇기에 들여쓰기를 잘 해야한다. + f 조건문 뒤에는 반드시 콜론(:)이 붙습니다.#비교 연산자# x x가 y보다 작다.# x > y -> x가 y보다 크다.# x == y -> x와 y가 같다.# x != y -> x와 y가 같지 않다.# x >= y -> x가 y보다 크거나 같다.# ..

카테고리 없음 2024.11.18

스파르타 AI-8기 TIL(11/17) -> 처음부터 계속하기

딕셔너리사전이란 뜻이며, 딕셔너리는 Key와 Value를 한 쌍으로 가지는 자료형 입니다.딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻으며, 이것이 바로 딕셔너리의 가장 큰 특징입니다.#기본 형식{Key1: Value1, Key2: Value2, Key3: Value3, ...}예시:dic = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}예시:a = {'나이' : 15, '이름' : 'Kevin'}print(a['나이'])출력:15#참고로 리스트로 넣을 수 있습니다a = {'나이' : [15, 16 ,17], '이름' : 'Kevin'}print(a['나이'])출력:[15, ..

카테고리 없음 2024.11.17