Solar LLM
- upstage가 내놓은 llm 모델
- 한국어/일본어에 특화된 모델
기능)
- Chat
- Embeddings
- Translation
- Groundedness Check
- (Text-to-SQL) 추후 공개 예정
API) 추후 공개 예정
헬스케어, 금융, 법
RAG 서비스 만들기
https://developers.upstage.ai/docs/getting-started/quick-start
https://developers.upstage.ai/docs/apis/chat
Embeddings API는 텍스트를 컴퓨터가 이해할 수 있는 숫자로 변환합니다. 단어를 토큰으로 쪼개서 숫자로 만드는 것. 각 숫자는 문장의 의미를 포착한다고 상상해 보세요. 이를 통해 기계는 유사한 텍스트 찾기, 정보 정렬, 질문 답변과 같은 작업을 더 쉽게 수행할 수 있습니다.
# RAG_ChatBot_SolarLLM
SolarLLM을 이용한 RAG ChatBot service 개발
## RAG(Retrieval-Augmented Generation)
사용자가 쿼리를 보냈을 때, 질문에 대한 답을 지식 db에서 찾아서 LLM 모델을 사용하여 생성해내는 것
### Preprocessing
1. Indexing
- Load: 문맥 정보 및 데이터 업로딩
- Split: 로딩된 파일 쪼개서 검색/모델 인풋에 넣기 좋게 만듦
- Store: split한 데이터 DB에 임베딩하 업로드
2. Retrieval and Generation
- Retrieve: 사용자의 검색 쿼리에 따라 DB 검색
- Generate: LLM이 찾은 답변을 다시 문장으로 생성
from langchain_upstage import ChatUpstage
from langchain_core.messages import HumanMessage, SystemMessage
import os
from dotenv import load_dotenv
# 디버그: dotenv 파일을 로드하고 API 키를 확인
print("dotenv 파일 로드 중...")
load_dotenv()
api_key = os.getenv("UPSTAGE_API_KEY")
if api_key is None:
print("API 키를 찾을 수 없습니다. .env 파일을 확인하세요.")
else:
print("API 키가 성공적으로 로드되었습니다.")
try:
print("ChatUpstage 인스턴스 생성 중...")
chat = ChatUpstage(api_key=api_key)
print("ChatUpstage 인스턴스 생성 완료")
messages = [
SystemMessage(
content="You are a helpful assistant."
),
HumanMessage(
content="Hi, how are you?"
)
]
# 디버그: 메시지가 제대로 생성되는지 확인
print("생성된 메시지:", messages)
print("메시지 전송 중...")
response = chat.invoke(messages)
# 디버그: 응답이 제대로 반환되는지 확인
print("받은 응답:", response)
except Exception as e:
print("오류가 발생했습니다:", e)
>>
- LangChain vs. LlamaIndex
langchain: 도메인 특화 창의적인 앱 개발시 유용
llamaindex: 사용자 검색에 특화된 패키지
'기술공부 > LLM' 카테고리의 다른 글
LLamaIndex vs. LangChain (1) | 2024.07.03 |
---|---|
RAG 모델 만들기: Upstage, Document AI (0) | 2024.06.30 |
Customized ChatGPT 만들기: 개인 비서 (0) | 2024.06.28 |
LLM 할루시네이션 신뢰성 검토 (1) | 2024.06.27 |
LLM, RAG (0) | 2024.05.03 |