이전 글 보기 👇
Langchain 사용하기 - 03. Sequential chain
이전 글 보기 👇 Langchain 사용하기 - 02. prompt template 정의이전 글은 여기서 볼수있다.https://musej.tistory.com/9?category=1179483 prompt template 정의✅prompt 란 ?AI 의 답변을 받을 때 요구하는 답변 가이드.
musej.tistory.com
RAG 를 알기 위해선 RAG의 출현 배경인 LLM 에 대해서 먼저 알아야 하기에
✅ LLM (Large Language Model) 이란?
자연어 처리(NLP)에서 사용되는 인공진능 기술의 한 종류.
대량의 텍스트 데이터로 학습된 거대한 규모의 언어 모델이며, 이 모델들은 다양한 언어 관련 작업을 수행할 수 있는 능력이 있다.
EX) chatGPT, Claude, OpenAI, Lamda 등
LLM 주요 기능
- 자연어 (텍스트) 생성
- 글쓰기, 번역, 요약 등 문장 생성, 질문 응답 등 다양한 자연어 처리 태스크 수행
- 문맥 이해 및 문장 완성
- 단순히 단어를 매칭하는 것이 아니라 전후 맥락을 고려하여 언어를 이해하고, 주어진 시작 부분을 바탕으로 문장을 완성
- 감성 분석
- 텍스트의 감정 톤 파악 및 비유한 문장의 속 뜻을 이해하는 기능
- 언어 번역
- 한 언어에서 다른 언어로 변환 (번역)
- 코드 생성 및 이해
- 프로그래밍 언어 관련 작업 (코드 오류 확인 및 오류 발생 가능성 원인 제공 등)
- 확장성
- 더 많은 데이터와 컴퓨팅 자원을 활용하면 계속적으로 성능 향상 가능
- 전이 학습 능력
- 한 분야에서 학습한 지식을 다른 유사 태스크에 활용 가능
이렇게 많은 기능과 장점에도 불구하고 아래와 같은 단점과 한계점이 존재한다.
LLM 단점
- 편향성 문제
- 학습 데이터에 내재된 편향성을 그대로 반영할 가능성 존재
- 성별, 인종, 종교 등에 대한 고정관념이나 차별적 표현을 생성할 위험 존재
- 사실 관계 오류 가능성🌟
- 방대한 데이터를 학습하지만, 항상 정확한 정보를 제공하지는 않음
- 잘못된 정보나 허위 정보를 진실로 간주하고 전파할 수 있음
- 맥락 이해의 한계🌟
- 문장 단위의 이해는 가능하지만, 장문의 글이나 복잡한 맥락 파악은 어려울 수 있음
- 세계 지식과 상식 추론 능력이 부족하여 심층적인 이해에 한계 존재
- 일관성 문제
- 동일한 입력에 대해 일관된 답변을 생성하지 않을 수 있음
- 모델의 확률적 특성상 생성 결과가 매번 달라질 수 있어 신뢰성 저하
- 윤리적 문제
- 악용 가능성이 존재, 하지만 책임 소재 파악이 어려울 수 있음
- 모델의 출력 결과에 대한 통제와 검증 체계 마련 필요
이러한 LLM의 문제 중 🌟 체크된 "사실 관계 오류 가능성"과 "맥락 이해의 한계"를 보완하기 위해 RAG 기술이 등장하였다.
✅ RAG (Retrieval Augmented Generation - 검색 증강 생성) 이란?
LLM에 신뢰할 수 있는 외부 지식 베이스를 연결하여 모델의 생성 능력과 사실 관계 파악 능력을 향상 시키는 기술이다.
LLM 은 방대한 양의 텍스트 데이터를 사전 학습하여 강력한 언어 이해 및 생성 능력을 갖추고 있지만, 학습 데이터에 없는 최신 정보나 특정 도메인 지식은 제공하기 어렵다는 단점이 존재한다.
이러한 LLM의 한계를 극복하기 위해 RAG는 '지식 검색' 과 '언어 생성' 을 결합한 프레임 워크이다.
RAG는 이미 강력한 LLM의 기능을 특정 도메인이나 조직의 내부 지식 기반으로 확장하므로, 모델을 재교육할 필요 없음!
➡️ LLM 결과를 개선하여 다양한 상황에서 관련성, 정확성 및 유용성을 유지하기 위해 비용적인 측면에서 아주 효율적인 접근 방식이다!
RAG 이점
- 비용 효율적인 구현
- 생성형 AI 기술을 활용한 챗봇 개발 시, 조직 혹은 도메인별 정보를 재교육하는데 드는 재정적 비용 절감 가능
- 정확성
- 실시간으로 가장 관련성이 높은 정보를 검색해서 사용하므로 생성된 답변의 정확도가 높음
- 사용자 신뢰 강화
- RAG는 LLM 소스의 저작자 표시를 통해 정확한 정보 제공 가능, 사용자가 필요한 경우 소스 문서 직접 참조 가능
- 유연성
- 다양한 형태의 데이터와 연결될 수 있기에 다양한 분야에 적용 가
RAG 구성 요소
검색기 (retriever)
유저의 질문에 대해 가장 관련성 있는 정보를 데이터베이스 내에서 찾아내는 역할
생성기(generator)
검색기에서 찾아낸 정보를 토대로 유저의 질문에 대한 답변 생성하는 역할
RAG 작동 방식
😐RAG 없는 일반 LLM 작동 방식
사용자 쿼리 입력 ➡️ 훈련된 정보를 기반으로 응답 생성
🙂RAG 적용된 LLM 작동 방식
사용자 쿼리 입력 ➡️ "외부 데이터 소스에서 관련 정보 검색" ➡️ 관련 정보와 사용자 쿼리 기반으로 LLM이 더 신뢰성 있는 응답 생성
👇LLM과 RAG를 함께 사용하는 개념적 흐름 다이어그램

"관련 정보 검색"
사용자가 입력한 쿼리는 벡터로 변환되고 벡터 데이터베이스와 매칭된다.
예를 들어 조직의 인사 관련 질문에 답변하는 스마트 챗봇에게 직원이 "연차휴가는 얼마나 남았나요?" 라고 질문하면 시스템은 개별 직원의 과거 휴가 기록과 함께 연차 휴가 정책 문서를 검색한다.
이러한 검색에 필요한 관련성은 수학적 벡터 계산 및 표현을 사용한다.
"LLM 프롬프트 확장"
검색된 관련 데이터를 컨텍스트에 추가하여 사용자 입력 쿼리 혹은 프럼프트를 보강한다.
확장된 프럼프트를 사용하면 LLM이 사용자 쿼리에 대한 보다 정확한 답변을 생성할 수 있다.
RAG system architecture

RAG 기술적 구현
파일 쪼개기 전략 (Chunking Strategy)
자연어 처리에서 '파일 쪼개기'란?
텍스트를 작고, 간결하고, 의미있는 '조각들'로 분할하는 것을 의미한다.
RAG는 큰 문서보다는 작은 텍스트 덩어리들로부터 관련된 맥락을 더 빠르고 정확하게 찾을 수 있기 때문이다.
🔖 파일 조각의 퀄리티와 RAG 효과는 조각의 크기에 달려 있다.
조각이 클 경우 ➡️ 많은 맥락 + 많은 잡음 담김 ➡️ 조각 처리에 더 많은 시간과 계산 비용 소요
조각이 작을 경우 ➡️ 필요한 맥락이 부족함 + 적은 잡음 담김 ➡️ 맥락에 필요한 여러개의 조각 필요
그래서 비슷한 조각들 여러개를 사용하여 유저의 질문에 대한 적절한 응답을 생성하기 위해 여러 벡터에서 충분히 관련 데이터를 검색할 가능성을 높힘!
❗파일 쪼개기 전략의 단점
한 가지 파일에서만 정보를 찾을 수 없다는 점!
그래서 여러가지 파일에서 정보를 찾기 위해 "문서 계층 구조"와 지식 그래프"를 사용함
문서 계층 구조 (다이어그램으로 정보를 체계적으로 구분하기)
문서 계층 구조 = RAG 시스템의 목차
이렇게 계층 구조를 나누면 RAG가 관련 데이터들을 더 효율적으로 검색, 처리할 수 있도록 각각의 문서 조각들을 "구조화된 방식"으로 보여줌

문서의 계층 구조는 위와 같이 각 조각들을 노드와 연결하고, 그 노드들을 부모-자식 관계로 조직하는 것이다.
각각의 노드는 내부에 파일 조각들의 정보를 요약한 내용을 갖고 있다.
따라서 RAG 시스템이 데이터를 빠르게 탐색하고 어떤 조각을 추출할지 결정하는 과정을 더 쉽게 만든다.
❗노드(node) 란?
데이터를 저장하거나 처리하는 개별 단위
➡️ 문서의 계층 구조를 사용하면 관련도가 가장 높은 텍스트 조각들을 바로 찾아냄
➡️ 검색의 속도와 정확도 향상, 잘못된 데이터 조각들을 추출 가능
지식 그래프
지식 그래프란 ?
다양한 개념들이나 요소들 사이의 관계를 정확하게 연결해주는 역할의 그래프를 의미한다.
우리의 일상적인 자연어로 정보 사이의 관계를 설정하기에 기술적 지식이 없어도 지식 그래프 규칙을 만들어서 RAG 시스템을 관리할 수 있다.
EX) '만약 휴가에 관한 질문을 받으면 먼저 그 사무실의 HR 관련 찾아보고, 거기에서 휴가에 대한 부분을 확인하세요.' 와 같은 규칙을 설정할 수 있다.
➡️ 관련 규칙이나 개념을 더 정확히 찾을 수 있음
➡️ 정보를 찾을 때 발생하는 오류 줄임
기본 설정
import os
from dotenv import load_dotenv
from langchain_text_splitters import CharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, OpenAI
from langchain_community.vectorstores import FAISS
from langchain_community.document_loaders import TextLoader
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
load_dotenv()
current_dir = os.path.dirname(os.path.abspath(__file__))
restaurants_text = os.path.join(current_dir, 'restaurants.txt')
restaurant_faiss = os.path.join(current_dir, "restaurant-faiss")
환경 변수 로드 후, 현재 디렉토리와 필요한 파일 경로를 설정한다.
FAISS INDEX 생성
def create_faiss_index():
# TextLoader를 사용하여 "restaurants.txt" 파일에서 텍스트를 로드함
loader = TextLoader(os.path.join(current_dir, "restaurants.txt"))
documents = loader.load()
# 텍스트를 300자 단위로 나누고, 연속된 청크 사이에 50자의 겹침을 두어 텍스트를 분할함
text_splitter = CharacterTextSplitter(chunk_size=300, chunk_overlap=50)
chunks = text_splitter.create_documents(documents)
# OpenAI API를 사용하여 임베딩을 생성함
embeddings = OpenAIEmbeddings(api_key=os.getenv("OPENAI_API_KEY"))
# Faiss 인덱스를 생성하고 저장함
db = FAISS.from_documents(chunks, embeddings)
db.save_local(restaurant_faiss)
print("Faiss Index created and saved")
생성한 FAISS 로드
# 생성한 faiss 를 로드하는 과정
def load_faiss_index():
embeddings = OpenAIEmbeddings(api_key=os.getenv("OPENAI_API_KEY"))
load_db = FAISS.load_local(
restaurant_faiss, embeddings, allow_dangerous_deserialization=True)
return load_db
문서 포맷팅
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
## \n\n 가 앞에 붙어있으면 자르고 이걸 이어붙여라는 뜻
검색된 문서들을 하나의 문자열로 결합한다.
Prompt Template 생성 및 RAG 파이프라인 구성
def answer_question(db, query):
# OpenAI 언어 모델 초기화
llm = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 사용자 정의 프롬프트 템플릿 생성
prompt_template = """
당신은 유능한 AI 비서입니다. 주어진 맥락 정보를 바탕으로 사용자의 질문에 정확하고 도움이 되는 답변을 제공해야 합니다.
맥락: {context}
질문: {question}
답변을 작성할 때 다음 지침을 따르세요:
1. 주어진 맥락 정보에 있는 내용만을 사용하여 답변하세요.
2. 맥락 정보에 없는 내용은 답변에 포함하지 마세요.
3. 질문과 관련이 없는 정보는 제외하세요.
4. 답변은 간결하고 명확하게 작성하세요.
5. 불확실한 경우, "주어진 정보로는 정확한 답변을 드릴 수 없습니다."라고 말하세요.
답변:
"""
prompt = PromptTemplate(
template=prompt_template,
input_variables=["context", "question"]
)
qa_chain = (
{
"context": db.as_retriever() | format_docs,
"question": RunnablePassthrough(),
}
| prompt
| llm
| StrOutputParser()
)
# 질문에 대한 답변 생성
result = qa_chain.invoke(query)
return result
메인 함수
def main():
# FAISS 인덱스가 없으면 생성
if not os.path.exists(restaurant_faiss):
create_faiss_index()
# Faiss 인덱스를 로드합니다.
db = load_faiss_index()
while True:
query = input("레스토랑에 대해서 궁금한 점을 물어보세요 (종료하려면 'quit' 입력): ")
if query.lower() == 'quit':
break
answer = answer_question(db, query)
print(f"답변: {answer}\n")
if __name__ == "__main__":
main()
사용자와 대화 루프 시작하는 메인 함수를 정의한다.
사용자의 질문에 대해 answer_question 함수를 호출해서 답변을 생성한다.
결과
1-1. 질문에 대한 답변

1-2. 실제 바탕 정보 내용

"인기있는 메뉴"에 대한 답변으로 "유명한 요리"인 그릴에 구워낸 스테이크를 답변하였다.
2-1. 질문에 대한 답변

2-2. 실제 바탕 정보 내용

이렇게 문맥에 맞지 않는 답변도 내놓는다.
"소고기 불고기" 메뉴에 대한 설명은 이 정보뿐인데, "가장 저렴한 메뉴" 질문에 대해 가장 많이 팔리는 음식에 대한 답변을 하였다.
3-1. 질문에 대한 답변

3-2. 실제 바탕 정보 내용



이 내용은 굉장히 흥미로운데, "인기 있는 음식" 에 대한 관련 정보가 여러개 존재하였다.
그 중 디저트, 해산물 요리라는 특정 분야 음식을 제외하고 좀 더 포괄적인 "인기 있는 디너 음식"의 정보로 답변한 점이 굉장히 인상깊었다.
👇 restaurant.txt
Q: 이 음식점에서 추천하는 디저트는 무엇인가요?
A: 당연히 추천하는 디저트는 초콜릿 케이크입니다. 진한 초콜릿과 부드러운 생크림이 어우러져 맛있습니다.
Q: 음식점의 특별한 할인 행사는 언제 진행되나요?
A: 음식점에서는 매주 금요일에 특별한 할인 행사를 진행하고 있습니다. 그 날을 놓치지 마세요!
Q: 음식점의 주차 시설은 어떻게 되어 있나요?
A: 주변에는 무료 주차장이 마련되어 있어 편리하게 이용하실 수 있습니다. 주차 걱정 없이 맛있는 음식을 즐겨보세요.
Q: 이 음식점에서 유명한 요리는 무엇인가요?
A: 음식점에서는 그릴에 구워낸 스테이크가 유명합니다. 부드럽고 고기의 풍미가 일품입니다.
Q: 음식점에서 아이들을 위한 키즈 메뉴가 있나요?
A: 네, 음식점에서는 다양한 아이들을 위한 키즈 메뉴를 제공하고 있습니다. 아이들이 좋아할 맛있는 음식들이 가득합니다.
Q: 음식점의 운영 시간은 어떻게 되나요?
A: 음식점은 평일은 오전 11시부터 오후 10시까지, 주말은 오후 12시부터 오후 9시까지 영업합니다. 편리한 시간에 방문해주세요.
Q: 이 음식점에서 자리 예약을 할 수 있나요?
A: 네, 음식점에서는 자리 예약을 받고 있습니다. 특별한 날이나 이벤트 때 미리 예약하시면 보다 편안하게 식사를 즐길 수 있습니다.
Q: 이 음식점에서 추천하는 디저트는 무엇인가요?
A: 당연히 추천하는 디저트는 초콜릿 케이크입니다. 진한 초콜릿과 부드러운 생크림이 어우러져 맛있습니다.
Q: 음식점의 특별한 할인 행사는 언제 진행되나요?
A: 음식점에서는 매주 금요일에 특별한 할인 행사를 진행하고 있습니다. 그 날을 놓치지 마세요!
Q: 음식점의 주차 시설은 어떻게 되어 있나요?
A: 주변에는 무료 주차장이 마련되어 있어 편리하게 이용하실 수 있습니다. 주차 걱정 없이 맛있는 음식을 즐겨보세요.
Q: 이 음식점에서 유명한 요리는 무엇인가요?
A: 음식점에서는 그릴에 구워낸 스테이크가 유명합니다. 부드럽고 고기의 풍미가 일품입니다.
Q: 음식점에서 아이들을 위한 키즈 메뉴가 있나요?
A: 네, 음식점에서는 다양한 아이들을 위한 키즈 메뉴를 제공하고 있습니다. 아이들이 좋아할 맛있는 음식들이 가득합니다.
Q: 음식점의 운영 시간은 어떻게 되나요?
A: 음식점은 평일은 오전 11시부터 오후 10시까지, 주말은 오후 12시부터 오후 9시까지 영업합니다. 편리한 시간에 방문해주세요.
Q: 이 음식점에서 자리 예약을 할 수 있나요?
A: 네, 음식점에서는 자리 예약을 받고 있습니다. 특별한 날이나 이벤트 때 미리 예약하시면 보다 편안하게 식사를 즐길 수 있습니다.
Q: 이 음식점에서 가장 많이 팔리는 음식은 무엇인가요?
A: 가장 많이 팔리는 음식은 소고기 불고기입니다. 입맛 돋우는 양념과 고기의 조화가 일품입니다.
Q: 음식점의 분위기는 어떤가요?
A: 음식점은 편안하고 아늑한 분위기를 지니고 있습니다. 친구들과의 소소한 모임이나 데이트에 안성맞춤입니다.
Q: 이 음식점에서 특별한 이벤트는 무엇인가요?
A: 매월 첫 주 토요일에는 생일 당사자에게 무료 디저트를 제공하는 특별 이벤트가 있습니다.
Q: 음식점에서 제공하는 뷔페 서비스는 어떤 종류인가요?
A: 음식점에서는 주중 런치뷔페와 주말 디너뷔페를 제공하고 있습니다. 다양한 메뉴를 즐길 수 있어 인기가 높습니다.
Q: 음식점의 대표 메뉴 중에서 가장 특별한 요리는 무엇인가요?
A: 대표 메뉴 중에서 가장 특별한 요리는 트러플 오일을 사용한 크림 파스타입니다. 풍부한 향과 고소한 맛이 일품입니다.
Q: 음식점에서 사용하는 주요 식재료는 무엇인가요?
A: 음식점에서는 신선하고 고품질의 식재료를 사용합니다. 주로 지역에서 직접 공급받아 신선함을 유지하고 있습니다.
Q: 이 음식점에서 가족 모임이나 친구 소개팅에 추천할 만한 공간은 어디인가요?
A: 가족 모임이나 친구 소개팅에는 음식점의 프라이빗 룸을 이용하시면 더욱 편안하게 식사를 즐기실 수 있습니다.
Q: 이 음식점에서 즐길 수 있는 대표 음료 외에 다른 독특한 음료는 무엇인가요?
A: 대표 음료 외에도 음식점에서는 자체 제작한 수제 레모네이드가 인기 있습니다. 신선한 과일의 맛이 가득 담겨 있어 시원하고 상큼합니다.
Q: 음식점의 셰프는 어떤 경력을 가지고 있나요?
A: 음식점의 셰프는 국내외에서 다양한 요리 경험을 쌓은 베테랑 셰프로, 고객들에게 항상 신선하고 맛있는 음식을 제공하기 위해 노력하고 있습니다.
Q: 이 음식점에서 주로 사용하는 양념이나 소스는 무엇인가요?
A: 음식점에서는 양념과 소스에 신중하게 선택된 재료를 사용하여 고급스러우면서도 고소한 맛을 살려 음식을 조리합니다.
Q: 음식점의 고객들이 자주 찾는 테이블이나 좌석은 어디인가요?
A: 창가에 있는 테이블은 음식점의 인기 좌석 중 하나로, 햇빛이 잘 들어와서 밝고 쾌적한 분위기를 느낄 수 있습니다.
Q: 이 음식점에서 주말 브런치 메뉴는 어떤 종류가 있나요?
A: 주말에는 다양한 브런치 메뉴를 즐길 수 있습니다. 에그베네딕트, 프렌치 토스트, 신선한 과일 샐러드 등이 포함되어 있어 특별한 브런치를 즐길 수 있습니다.
Q: 음식점에서 제공하는 특별한 음료나 요리에 대한 시그니처 스토리가 있나요?
A: 네, 음식점의 시그니처 음료는 '선셋 패션 티'로, 다양한 차 종류와 특별한 시럽을 사용하여 만들어진 특별한 음료입니다.
Q: 이 음식점에서 유명한 후식은 무엇인가요?
A: 유명한 후식으로는 무스케이크가 있습니다. 다양한 플레이버와 푹신한 텍스처가 맛있는 디저트입니다.
Q: 음식점에서 자체 제작한 소스 중에서 가장 인기 있는 것은 무엇인가요?
A: 자체 제작한 소스 중에서 트러플 오일 드레싱이 인기가 많습니다. 샐러드에 뿌리면 풍부한 향과 맛을 더해줍니다.
Q: 이 음식점에서 주로 사용하는 식재료 중에 지역 특산품이 있나요?
A: 네, 음식점에서는 지역에서 생산된 신선한 채소와 고기를 적극 활용하고 있습니다. 지역 특산품을 이용해 맛을 높이고 있습니다.
Q: 음식점에서는 어떤 음악을 틀어놓고 있나요?
A: 음식점은 다양한 음악 장르를 플레이리스트로 제공하고 있습니다. 고객들의 취향에 맞춰 쾌적한 분위기를 조성하고 있습니다.
Q: 이 음식점에서는 특별한 식사 이벤트나 쿠폰 프로모션을 진행하고 있나요?
A: 네, 음식점은 계절마다 다양한 식사 이벤트와 쿠폰 프로모션을 개최하고 있습니다. 고객들에게 다양한 혜택을 제공하고 있어 많은 이용자들이 참여하고 있습니다.
Q: 이 음식점에서는 어떤 스타일의 커피가 제공되나요?
A: 음식점은 다양한 커피 스타일을 제공하고 있습니다. 에스프레소, 라떼, 아메리카노뿐만 아니라 특별한 시그니처 커피 메뉴도 있습니다.
Q: 음식점에서 특별한 날에는 예약 없이 입장할 수 있나요?
A: 주말이나 특별한 날에는 예약 없이도 입장이 가능하지만, 인기있는 시간대에는 예약을 추천드립니다. 특히 저녁 시간에는 예약이 필요한 경우가 많습니다.
Q: 이 음식점에서 제공하는 특별한 코스 요리가 있나요?
A: 네, 음식점에서는 주문 시 특별 코스 요리도 제공하고 있습니다. 다양한 음식을 한 번에 즐길 수 있는 좋은 기회입니다.
Q: 음식점의 주방은 어떻게 열려있나요? 손님들이 조리 과정을 볼 수 있나요?
A: 음식점은 개방적인 주방을 지니고 있어 고객들이 조리 과정을 직접 볼 수 있습니다. 신선한 재료와 정교한 조리과정을 직접 확인할 수 있어 인기가 있습니다.
Q: 이 음식점에서는 채식주의자를 위한 메뉴가 있나요?
A: 네, 음식점에서는 채식주의자를 위한 다양한 메뉴를 제공하고 있습니다. 신선한 채소와 곡물을 사용한 다양한 옵션이 있습니다.
Q: 음식점에서는 어떤 종류의 와인이나 칵테일이 제공되나요?
A: 음식점은 다양한 와인과 칵테일 메뉴를 보유하고 있습니다. 맛있는 음식과 함께 와인 또는 칵테일을 즐기실 수 있습니다.
Q: 이 음식점에서는 어린이 생일 파티나 소규모 이벤트를 위한 특별한 서비스가 있나요?
A: 네, 음식점은 어린이 생일 파티나 소규모 이벤트를 위한 특별한 패키지와 서비스를 제공하고 있습니다. 자세한 내용은 문의해주세요.
Q: 음식점의 요리사들은 매일 메뉴를 변경하거나 새로운 아이디어를 도입하나요?
A: 네, 음식점의 요리사들은 매일 새로운 아이디어를 도입하고 계절에 따라 메뉴를 조정합니다. 고객들에게 항상 새로운 맛을 제공하려고 노력하고 있습니다.
Q: 음식점에서는 특별한 음악 행사나 라이브 밴드 공연을 개최하나요?
A: 네, 음식점에서는 정기적으로 특별한 음악 행사나 라이브 밴드 공연을 개최하고 있습니다. 손님들에게 더욱 즐거운 시간을 제공하기 위해 다양한 이벤트를 기획하고 있습니다.
Q: 이 음식점에서 자체 제작하는 특별한 소스나 드레싱이 있나요?
A: 네, 음식점은 자체 제작하는 특별한 드레싱과 소스를 보유하고 있습니다. 특히 샐러드나 그릴 메뉴와의 조화로 많은 손님들에게 사랑받고 있습니다.
Q: 음식점의 룸 서비스는 어떻게 운영되나요?
A: 음식점은 룸 서비스를 제공하고 있으며, 객실 내에서 메뉴를 주문하고 편안한 분위기에서 음식을 즐길 수 있도록 서비스하고 있습니다.
Q: 이 음식점에서 인기 있는 해산물 요리는 무엇인가요?
A: 인기 있는 해산물 요리로는 해산물 파스타와 해산물 그릴이 있습니다. 신선한 해산물과 특제 소스가 조화를 이루어 맛있는 요리를 제공합니다.
Q: 음식점의 공간은 예약 없이도 이용 가능한가요?
A: 대부분의 경우 예약 없이 음식점을 이용할 수 있습니다. 다만, 주말이나 특별한 날에는 예약을 권장하며, 인기 있는 특별 행사 시에는 예약이 필수입니다.
Q: 음식점에서는 온라인 주문 및 배달 서비스를 제공하고 있나요?
A: 네, 음식점은 온라인 주문 및 배달 서비스를 운영하고 있습니다. 편리하게 음식을 주문하고 집에서 편안하게 즐길 수 있습니다.
Q: 음식점에서는 어린이 메뉴 외에도 가족 단위로 공유하기 좋은 음식이 있나요?
A: 네, 음식점은 가족 단위로 즐기기에 적합한 메뉴를 다양하게 제공하고 있습니다. 대형 플래터나 세트 메뉴 등이 있어 가족들과 함께 다양한 음식을 공유할 수 있습니다.
Q: 음식점에서는 어떤 종류의 차를 제공하고 있나요?
A: 음식점에서는 다양한 차 종류를 제공하고 있습니다. 홍차, 녹차, 허브 차 등 다양한 선택지로 손님들에게 차 한 잔의 여유를 제공합니다.
Q: 이 음식점에서는 어떤 테이블 서비스가 제공되나요?
A: 음식점에서는 프로페셔널한 서빙 스태프가 테이블 서비스를 제공합니다. 세련된 음식과 함께 최상의 서비스를 경험하실 수 있습니다.
Q: 음식점에서는 알레르기 정보를 어떻게 안내하고 있나요?
A: 음식점은 메뉴에 알레르기 정보를 상세히 표기하고 있습니다. 고객들이 안심하고 식사를 즐길 수 있도록 신경쓰고 있습니다.
Q: 이 음식점에서 인기 있는 디저트는 무엇인가요?
A: 인기 있는 디저트로는 마스카포네 치즈케이크와 자몽 세이블이 있습니다. 달콤함과 고소함이 어우러져 많은 손님들에게 사랑받고 있습니다.
Q: 이 음식점에서는 어떤 특별한 이벤트나 축제를 개최하나요?
A: 음식점은 계절이나 특별한 날을 맞아 다양한 이벤트와 축제를 개최합니다. 손님들에게 즐거운 경험을 선사하기 위해 노력하고 있습니다.
Q: 음식점에서는 몇 명까지 예약을 받나요?
A: 대부분의 경우 음식점은 최대 10인까지 예약을 받습니다. 그 이상의 인원이나 특별한 행사의 경우 사전에 문의하시면 도움을 드릴 수 있습니다.
Q: 이 음식점에서 주로 사용하는 조리 기술이나 스타일은 무엇인가요?
A: 음식점은 현대적이고 창의적인 조리 기술을 중시하며, 전통적인 스타일과 현대적인 기법을 조합하여 다양한 요리를 제공합니다.
Q: 음식점에서는 어떤 종류의 테이블 설정이 가능한가요?
A: 음식점은 손님들의 다양한 요구에 맞춰 실내와 야외, 그리고 프라이빗 룸까지 다양한 테이블 설정을 제공하고 있습니다.
Q: 음식점의 셰프가 자주 사용하는 특별한 재료는 무엇인가요?
A: 셰프가 자주 사용하는 특별한 재료로는 트러플 오일, 자체 제작한 허브 소스, 그리고 지역에서 직접 수확한 신선한 재료들이 있습니다.
Q: 이 음식점에서는 어떤 테마의 음식을 제공하고 있나요?
A: 음식점은 다양한 테마의 음식을 선보이고 있습니다. 이탈리안, 아시안, 현지 특산물 등 다양한 테마의 메뉴를 즐길 수 있습니다.
Q: 음식점의 키친에서는 어떤 유형의 조리기구를 사용하고 있나요?
A: 음식점의 키친에서는 최신식의 조리기구와 고품질의 주방 장비를 사용하여 신선하고 맛있는 음식을 조리하고 있습니다.
Q: 음식점에서는 미식축제나 음식과 관련된 이벤트에 자주 참여하나요?
A: 네, 음식점은 지역의 미식축제나 음식과 관련된 다양한 이벤트에 자주 참여하여 지역 사회와 소통하고 있습니다.
Q: 음식점에서는 어떤 종류의 디너 스페셜이 제공되나요?
A: 음식점에서는 디너 시간에는 주로 그릴 요리와 특별한 페어링이 제공되는 디너 스페셜을 선보입니다.
Q: 이 음식점에서는 주로 어떤 종류의 음악을 플레이하나요?
A: 음식점은 고객들이 편안하게 즐길 수 있는 다양한 음악 장르를 플레이하고 있습니다. 재즈, 클래식, 팝 등이 포함되어 있습니다.
Q: 이 음식점에서는 어떤 종류의 건강식 메뉴가 있나요?
A: 음식점에서는 건강식 메뉴로 샐러드 바와 로우 프레시 닭가슴살 샐러드 등을 제공하고 있습니다. 건강한 식단을 선호하는 손님들을 위해 다양한 옵션이 마련되어 있습니다.
Q: 음식점에서는 어떤 종류의 알코올 프로그램이 있나요?
A: 음식점은 다양한 종류의 와인, 맥주, 그리고 시그니처 칵테일 프로그램을 운영하고 있습니다. 손님들이 음식과 함께 다양한 음료를 즐길 수 있도록 다양한 선택지를 제공하고 있습니다.
Q: 음식점에서는 어떤 종류의 브런치 메뉴가 제공되나요?
A: 브런치 메뉴로는 에그베네딕트, 프렌치 토스트, 스모크드 살몬 샌드위치 등이 포함된 다양한 옵션이 제공됩니다.
Q: 이 음식점에서는 특별한 날을 위한 예약 이벤트를 개최하나요?
A: 네, 음식점에서는 크리스마스, 밸런타인데이 등 특별한 날을 위한 예약 이벤트를 주최하고 있습니다. 이러한 날에는 특별한 메뉴나 할인 혜택을 제공하고 있습니다.
Q: 음식점에서는 놀이터나 아이들을 위한 키즈 존이 있나요?
A: 네, 음식점은 가족 고객을 위해 놀이터나 키즈 존을 마련하고 있습니다. 아이들이 놀며 즐길 수 있는 공간을 제공하여 가족들이 편안하게 식사를 즐길 수 있습니다.
Q: 음식점에서는 셰프 특제의 시그니처 음료가 있나요?
A: 네, 셰프 특제의 시그니처 음료로는 '망고 스파클링 프레지오'가 있습니다. 신선한 망고와 탄산수로 만들어진 상큼한 음료입니다.
Q: 이 음식점에서는 더위를 식히기 위한 시원한 음료가 있나요?
A: 네, 더위를 식히기 위한 여러 종류의 시원한 음료가 있습니다. 아이스 티, 프로즌 레모네이드, 스무디 등이 있어 다양한 선택이 가능합니다.
Q: 음식점에서는 어떤 종류의 디너 음식이 인기가 있나요?
A: 디너 시간에는 그릴에 구워낸 스테이크와 허브 마리네이드 치킨이 특히 인기가 있습니다. 고객들에게 풍부한 맛과 향을 선사합니다.
Q: 음식점에서는 주로 어떤 종류의 커피 원두를 사용하나요?
A: 음식점은 고품질의 아라비카 원두를 사용하여 신선하고 풍부한 향의 커피를 제공하고 있습니다.
Q: 이 음식점에서는 소규모 비즈니스 모임이나 회의를 위한 프라이빗 룸을 제공하나요?
A: 네, 음식점은 소규모 비즈니스 모임이나 회의를 위한 프라이빗 룸을 제공하고 있습니다. 편안한 분위기에서 비즈니스 모임을 즐길 수 있습니다.
👇 참고
모두의 연구소
RAG(검색 증강 생성)란? - LLM 단점을 보완하는 기술
LLM(Large Language Model)의 많은 장점에도 불구하고 단점을 보완하기 위한 RAG(검색 증강 생성)이 많은 관심을 받고 있습니다. RAG의 기본 개념, 등장 배경, 원리, 적용 사례 등을 알아보겠습니다.
modulabs.co.kr
AWS
RAG란? - 검색 증강 생성 AI 설명 - AWS
검색-증강 생성이란 무엇인가요? RAG(Retrieval-Augmented Generation)는 대규모 언어 모델의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록
aws.amazon.com
블로그
비개발자도 알기 쉬운 RAG(검색 증강 생성)에 대한 설명 - TOGGLE
안녕하세요! 이번 글에서는 누구나 알기 쉽게 RAG를 설명해보겠습니다. 누구나 알기 쉽게, 그러나 내용의 깊이는 다른 글들보다 훨씬 더 깊게! 자부합니다. 간단하게 알아보고 싶으신 분은 RAG에
blog.togglecampus.com
'AI' 카테고리의 다른 글
| Langchain 사용하기 - 03. Sequential chain (0) | 2024.08.14 |
|---|---|
| Langchain 사용하기 - 02. prompt template (0) | 2024.07.30 |
| Langchain 사용하기 - 01.basic (2) | 2024.07.23 |
| 딥러닝 허깅페이스 트랜스포머 with 파이토치 실습-3 (0) | 2024.07.19 |
| 딥러닝 허깅페이스 트랜스포머 with 파이토치 실습-2 (0) | 2024.07.19 |