반응형

Python/NLP Code 19

파이썬 챗봇 개발 라이브러리 Llama Index 예제 및 장점 정리

안녕하세요.Python에서 chatbot을 만들 때 매우 유용하게 활용 가능한라마 인덱스 라이브러리에 대하여 기본적인 사용 예제와대략적인 장점에 대하여 정리해보도록 하겠습니다.  라이브러리 설치 및 API Key 세팅우선, Llama Index를 설치해주어야 하는데요. 다음 명령어로 쉽게 설치가 가능합니다.!pip install llama-index 라마 인덱스 사용을 위해서는 OpenAI에서 발급받은 API 키가 필요합니다.다음과 같이 OPENAI_API_KEY 환경 변수로 지정해줍니다.import osos.environ["OPENAI_API_KEY"] = "sk-xxx"  문서 가져오기다음은 문서를 가져오는 단계인데요.라마 인덱스에서는 txt, pdf, csv, docx, hwp 등 매우 다양한 종류..

Python/NLP Code 2024.12.17

ChatGPT 모델 fine-tuning 진행하는 방법 파이썬 코드 예제

안녕하세요.OpenAI에서 제공하는 GPT 모델에 원하는 데이터를 직접 학습시키는 과정이 가능한데요.Python으로 간단하게 파인튜닝을 진행하는 예제 코드를 살펴보도록 하겠습니다. 참고로, 해당 과정에 대한 상세한 내용은 아래의 OpenAI 공식 document를 참고하세요.https://platform.openai.com/docs/guides/fine-tuning 이 글에서는 전반적인 감만 잡을 수 있는 매우 간단한 코드 스니펫 예시를 다룰 예정입니다.  데이터 준비우선, 데이터는 각 줄마다 하나의 대화로 구성된 jsonl 파일로 준비되어야 합니다.예시 파일의 포맷은 다음과 같습니다.{"messages": [{"role": "system", "content": "당신은 나라 이름을 대면 수도를 알려주는..

Python/NLP Code 2024.11.10

OpenAI GPT API에서 structured output 구조로 대답을 받도록 설정하는 방법 정리(pydantic 기능 활용)

안녕하세요.때로는 ChatGPT API를 사용하는 과정에서 원하는 response를포맷이 고정된 json 구조(structured output)로 받고 싶은 경우가 있습니다. 이런 경우를 위하여 pydantic의 type 지정 기능을 활용하여응답의 포맷을 고정하도록 주문하는 방법들이 있는데요. 이를 활용하는 예시 코드들을 간략하게 살펴보면서기능 사용법에 대한 이해를 해보도록 하겠습니다.  코드 예시방법 1먼저, OpenAI Client를 선언합니다.from openai import OpenAIOPENAI_API_KEY = "sk-xxxx" # 사용할 OpenAI API Keyclient = OpenAI(api_key=OPENAI_API_KEY) 이후, 원하는 포맷의 json 양식을 pydantic 모델로..

Python/NLP Code 2024.11.05

파이썬 OPENAI 텍스트 임베딩 모델 사용 및 유사도 구하기 예제

Python으로 OPENAI에서 제공하는 text embedding 모델을 활용하여 텍스트의 임베딩 벡터를 구해보고, 문서 간 코사인 유사도를 구하는 예제를 간략하게 다루어보도록 하겠습니다. OPENAI 텍스트 임베딩 모델 사용 코드 예시 현재 비교적 최신 모델인 text-embedding-3-small, text-embedding-3-large와 기존 모델인 text-embedding-ada-002에 대한 임베딩 API를 OPENAI에서 제공 중입니다. (모델 상세 정보는 해당 링크의 openai 공식 document 페이지를 참고해주세요.) 우선, 문자열 1개에 대한 텍스트 임베딩 벡터를 구하는 파이썬 코드 예시는 다음과 같습니다. from openai import OpenAI # !pip insta..

Python/NLP Code 2024.02.14

GPT 이미지+텍스트 멀티모달 API 활용 파이썬 코드 예제(gpt-4-vision-preview)

OPENAI에서 최근 공개된 gpt-4-vision-preview 모델을 활용하여 이미지의 정보를 같이 활용하여 GPT에게 질문을 하는 Python 코드 예시를 간략하게 다루어보도록 하겠습니다. 이 예제에서 사용한 이미지는 다음과 같은 고양이, 강아지가 2마리씩 있는 사진입니다. (출처는 pixabay 입니다.) OPENAI 이미지 활용 모델 사용 예제 이미지 input을 지원하는 gpt-4-vision-preview 모델로 이미지에 대한 질문을 던진 예시 파이썬 코드 스니펫은 다음과 같습니다. import openai # pip install openai OPENAI_API_KEY = "sk-..." # API KEY client = openai.OpenAI(api_key=OPENAI_API_KEY) ..

Python/NLP Code 2024.01.31

ChatGPT API에서 이전 대화 기록을 반영하여 호출하는 방법

ChatGPT를 웹에서 직접 이용하는 경우에는 이전 대화를 기억하여 채팅을 이어나가지만, API를 통하여 호출하는 경우에는 기본적으로는 이전 대화를 기억해주지 않습니다. 그래도 API 함수의 기능에 이전 대화의 맥락을 바탕으로 새로운 답변을 생성하도록 만들어줄 수 있는 기능이 있는데요. 이번 글에서는 해당 내용에 대해서 살펴보도록 하겠습니다. 이전 대화 맥락 반영 ChatGPT API 호출 방법 ChatGPT API 호출 함수에서 이전 히스토리를 반영하는 방법은 messages 인자에 이전 맥락의 대화들을 순서대로 리스트로 묶어서 전달해주시면 됩니다. 여기서 role을 지정할 때, 제가 던진 질문은 user로, AI가 답변했던 내역은 assistant로 지정하여 순서대로 묶어서 전달해주어야 하는 점이 중..

Python/NLP Code 2023.10.07

ChatGPT, GPT-4 토큰 개수 카운팅 및 인코딩/디코딩 방법(파이썬 tiktoken 모듈 활용)

GPT-3.5(ChatGPT) 및 GPT-4 활용을 위하여 원하는 글의 토큰 개수를 세거나 Encoding 및 Decoding 과정이 필요할 때가 종종 있습니다. 이 과정은 파이썬의 tiktoken 라이브러리의 기능을 활용하면 해당하는 토크나이저를 쉽게 불러올 수 있고, 토큰 개수 카운팅 및 인코딩/디코딩도 쉽게 할 수 있습니다. 이번 글에서는 해당 모듈의 사용법을 중심으로 위의 방법들을 간략하게 정리해보도록 하겠습니다. 토크나이저 선언 방법 우선, !pip install tiktoken 명령어로 모듈 설치를 진행해줍니다. 이후, ChatGPT(gpt-3.5-turbo) 혹은 GPT-4에 대하여 토크나이저를 가져오려면 cl100k_base 인코딩 방법을 지정해주시면 됩니다. 이후 모델명을 지정하여 최종 ..

Python/NLP Code 2023.09.19

원하는 corpus를 기준으로 토크나이저 학습하기 파이썬 코드 예제

새로운 코퍼스에 대하여 커스터마이징된 Tokenizer를 파이썬으로 학습시키는 방법을 간략하게 정리해보도록 하겠습니다. 예시로, 제가 corpus txt 파일 여러 개를 다음과 같은 디렉토리 구조로 가지고 있다고 가정해보도록 하겠습니다. 위의 많은 코퍼스 파일들을 통하여 토크나이저를 직접 학습시켜 보겠습니다. Step 1. 디렉토리명 가져오기 먼저, 위의 텍스트 파일들을 불러오기 위하여 디렉토리 목록을 가져와야 합니다. 이 과정을 os 모듈을 활용하여 진행한 예시 코드는 아래와 같습니다. import os dir_name = 'my_corpus' paths = os.listdir(dir_name) # ['corpus_15.txt', 'corpus_02.txt', 'corpus_09.txt', 'corpu..

Python/NLP Code 2023.09.17

파이썬 개체명 태깅(NER Tagging) 방법 정리(nltk, spacy)

지난번에 nltk 및 spacy 모듈을 통하여 품사 태깅(POS Tagging) 방법을 다루었던 글에 이어 이번에는 두 모듈로 개체명 태깅(NER Tagging)을 진행하는 방법을 살펴보도록 하겠습니다. 품사 태깅 방법과 관련된 내용은 아래 글을 참고해주세요. 파이썬 품사 태깅(POS Tagging) 방법 정리(nltk, spacy) 파이썬에서 각 단어 토큰의 품사 종류를 찾는 pos tagging을 nltk와 spacy 모듈을 통하여 진행하는 방법에 대하여 정리해보도록 하겠습니다. nltk를 활용한 POS Tagging 방법 먼저, nltk 모듈 설치가 진행되 jimmy-ai.tistory.com nltk를 활용한 NER Tagging 방법 nltk에서 개체명 태깅을 진행하려면 품사 태깅이 선행되어야 ..

Python/NLP Code 2022.11.09

파이썬 품사 태깅(POS Tagging) 방법 정리(nltk, spacy)

파이썬에서 각 단어 토큰의 품사 종류를 찾는 pos tagging을 nltk와 spacy 모듈을 통하여 진행하는 방법에 대하여 정리해보도록 하겠습니다. nltk를 활용한 POS Tagging 방법 먼저, nltk 모듈 설치가 진행되지 않았다면 아래 명령어로 설치해줍니다. !pip install nltk 품사 태깅을 위해서는 영어 기준으로 아래의 내부 라이브러리를 설치하는 과정이 필요합니다. import nltk nltk.download('punkt') nltk.download('averaged_perceptron_tagger') 위 과정들을 마쳤다면 문장 토큰화 후 pos tagging을 다음과 같이 진행해주시면 됩니다. from nltk import word_tokenize, pos_tag senten..

Python/NLP Code 2022.10.29
반응형