'메시지 기록'을 llama-index 기반 GPT-3에 Python으로 추가하는 방법
나는 llama-index 라이브러리를 사용하여 GPT-3를 훈련하고 표준 API를 통해 ChatGPT도 사용하는 것에 대해 상당히 새로웠습니다 (둘 다 Python에서). 나는 표준 ChatGPT API를 사용하여 다음과 같은 코드를 간단히 작성하여 ChatGPT가 메시지 히스토리를 context로 사용할 수 있도록했습니다:
message_history=[]
completion = openai.ChatCompletion.create(model=gpt-3.5-turbo,messages=message_history)
이제 나는 llama-index 라이브러리를 사용하여 GPT-3를 더 구체적인 컨텍스트로 훈련하고 있지만, 메시지 히스토리를 모델이 고려하도록하는 방법을 모르겠습니다. 여기에는 현재 작업 중인 코드가 있으며 메시지 히스토리를 구현하는 방법을 모릅니다:
def construct_index(directory_path):
# 최대 입력 크기 설정
max_input_size = 4096
# 출력 토큰 수 설정
num_outputs = 2000
# 최대 청크가 겹치는 수 설정
max_chunk_overlap = 20
# 청크 크기 제한 설정
chunk_size_limit = 600
# 프롬프트 도우미 정의
prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)
# LLM 정의
llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.5, model_name=text-ada-001, max_tokens=num_outputs))
# 컨텍스트(데이터셋) 정의
documents = SimpleDirectoryReader(directory_path).load_data()
# 컨텍스트를 인덱스 형식으로 변환
service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor, prompt_helper=prompt_helper)
index = GPTSimpleVectorIndex.from_documents(documents, service_context=service_context)
# 중요: 인덱스는 각 도시(텍스트)가 서로 얼마나 가까운지를 나타내는 위도와 경도와 같은 지도와 같습니다.
index.save_to_disk(index.json)
return index
index = GPTSimpleVectorIndex.load_from_disk(index.json)
dbutils.widgets.text(user_input, user: )
response = index.query(dbutils.widgets.get(user_input),response_mode='compact')
print(Response: , response.response)
답변 1
LLAMA 인덱스 라이브러리를 사용하여 GPT3.5 Turbo를 사용하는 동안 비슷한 문제가 발생했습니다. 제 문제를 해결한 것은 openai 라이브러리의 ChatMessage 내장 객체였습니다. 저는 채팅 엔진을 사용하여 messages 목록에 대화 컨텍스트와 함께 쿼리를 전송했습니다. Chat Engine 문서는 다음 위치에서 찾을 수 있습니다:
https://gpt-index.readthedocs.io/en/latest/examples/chat_engine/chat_engine_openai.html
대화 기록을 유지하기 위해 시스템 메시지, 쿼리 및 GPT의 응답을 메시지 기록에 저장했습니다.
다음을 통해 index.json 파일을 로드하려고 시도해보세요:
storage_context = StorageContext.from_defaults(persist_dir=.)
index = load_index_from_storage(storage_context)
그런 다음 다음과 같이 입력을 저장하세요:
messages.append(ChatMessage(role=user, content=query))
이제 chatengine()를 사용하여 쿼리를 실행하십시오:
chat_engine = index.as_chat_engine()
response = chat_engine.chat(query, messages)
response.response에 응답이 있을 것입니다.
답변 2
GPT-3은 자연어 처리 기술에 기반한 많은 언어 관련 태스크를 수행하는 최신 인공지능이다. 이 놀라운 모델은 대화 기능에서도 탁월한 성과를 보여주고 있으며, 확장 가능한 '메시지 기록' 기능을 추가하면 GPT-3가 대화 중에 이전 대화 내용을 이해하고 기억할 수 있게 될 것이다. 여기에서는 파이썬을 사용하여 GPT-3에 '메시지 기록'을 추가하는 방법을 소개하고자 한다.먼저, OpenAI의 GPT-3 API를 사용하여 GPT-3에 연결해야 한다. OpenAI의 GPT-3 API는 Python에서 웹 요청을 보내고 GPT-3 모델과 상호 작용할 수 있는 간단하고 직관적인 방법을 제공한다. API에 연결하기 위해 필요한 API 키를 받아야 한다.
API 키를 받았다면, Python에서 'requests' 라이브러리를 사용하여 API에 요청을 보내고 GPT-3 모델과 대화를 시작할 수 있다. 이를 위해 GPT-3에 대화 내용을 전달하는데 사용할 수 있는 'messages' 매개 변수를 사용해야 한다.
메시지 기록을 추가하려면 이전의 대화 내용을 추적하고 저장할 데이터 구조가 필요하다. 리스트나 딕셔너리와 같은 데이터 구조를 사용하여 메시지를 기록하고 추적할 수 있다. 매번 GPT-3 모델과 대화를 할 때마다 이전 대화 내용을 업데이트하고 필요한 경우 메시지 기록을 API에 제공한다.
메시지 기록을 업데이트하는 방법에는 몇 가지가 있다. 예를 들어, 대화가 진행될 때마다 사용자의 입력과 GPT-3의 응답을 번갈아가며 메시지 기록에 추가할 수 있다. 또는 사용자가 조금 더 긴 대화를 원할 수도 있기 때문에 한 번에 여러 메시지를 기록해야 할 수도 있다.
또한, GPT-3가 질문에 대답하기 위해 사용자와의 대화가 필요한 경우 이전 대화 내용이 특히 중요해진다. 사용자가 질문을 한다면, 메시지 기록에 이전 대화 내용을 포함해서 질문을 GPT-3에 전달해야 한다. 이렇게 함으로써 GPT-3는 이전 대화 내용을 참조하여 질문에 대한 응답을 더욱 더 정확하게 생성할 수 있다.
이렇게 '메시지 기록'을 추가하면 GPT-3가 대화 중에 이전 대화 내용을 이해하고 기억할 수 있다. 메시지를 기록하고 추적하는 데이터 구조를 활용하고 이전 대화 내용을 API에 전달하여 GPT-3의 대화 기능을 향상시킬 수 있다. Python을 사용하여 GPT-3에 '메시지 기록'을 추가하는 방법을 알아보았으며, 이를 통해 더욱 정확하고 유용한 대화 모델을 개발할 수 있다.