RAG 라마인덱스 Gradio
Gradio 설치
기본 Gradio UI
import gradio as gr
# 응답 생성 함수
def generate_response(prompt_text: str):
return "Hello"
# Gradio Blocks 인터페이스 설정
def chatgpt_interface():
with gr.Blocks() as demo:
gr.Markdown("### ChatGPT")
with gr.Row():
with gr.Column():
# 사용자 입력 텍스트 박스
input_text = gr.Textbox(label="질문을 입력해 주세요:")
# ChatGPT의 응답 출력 텍스트 박스
output_text = gr.Textbox(label="AI 응답", interactive=False)
# 버튼 클릭 시, ChatGPT 응답 생성
input_text.submit(generate_response, inputs=input_text, outputs=output_text)
demo.launch()
# ChatGPT 인터페이스 실행
chatgpt_interface()
쿼리 실행하기
import gradio as gr
# 응답 생성 함수
def generate_response(prompt_text: str):
# 로드된 인덱스 실행
response = query_engine.query(prompt_text)
return response
# Gradio Blocks 인터페이스 설정
def chatgpt_interface():
with gr.Blocks() as demo:
gr.Markdown("### ChatGPT")
with gr.Row():
with gr.Column():
# 사용자 입력 텍스트 박스
input_text = gr.Textbox(label="질문을 입력해 주세요:")
# ChatGPT의 응답 출력 텍스트 박스
output_text = gr.Textbox(label="AI 응답", interactive=False)
# 버튼 클릭 시, ChatGPT 응답 생성
input_text.submit(generate_response, inputs=input_text, outputs=output_text)
demo.launch()
# ChatGPT 인터페이스 실행
chatgpt_interface()
통합된 코드
!pip install llama-index
!pip install llama-index-core
!pip install llama-index-llms-openai
!pip install llama-index-llms-replicate
!pip install llama-index-embeddings-huggingface
!pip install gradio
#아래 코드를 위에서 별도로 실행해 주세요.
#import os
#os.environ["OPENAI_API_KEY"] = "새로 붙여 넣으세요."
# 저장된 인덱스 불러오기
from llama_index.core import StorageContext, load_index_from_storage
# rebuild storage context
storage_context = StorageContext.from_defaults(persist_dir="./storage")
# load index (gpt-turbo-3.5 기본 사용)
#index = load_index_from_storage(storage_context)
# 변경된 방식. llm 모델은 인덱스와는 관련이 없고 이후 query엔진에 영향을 줌.
client = OpenAI()
index = load_index_from_storage(storage_context, llm=client)
# 쿼리 엔진 생성
query_engine = index.as_query_engine()
# Gradio 실행
import gradio as gr
# 응답 생성 함수
def generate_response(prompt_text: str):
# 로드된 인덱스 실행
response = query_engine.query(prompt_text)
return response
# Gradio Blocks 인터페이스 설정
def chatgpt_interface():
with gr.Blocks() as demo:
gr.Markdown("### ChatGPT")
with gr.Row():
with gr.Column():
# 사용자 입력 텍스트 박스
input_text = gr.Textbox(label="질문을 입력해 주세요:")
# ChatGPT의 응답 출력 텍스트 박스
output_text = gr.Textbox(label="AI 응답", interactive=False)
# 버튼 클릭 시, ChatGPT 응답 생성
input_text.submit(generate_response, inputs=input_text, outputs=output_text)
demo.launch()
# ChatGPT 인터페이스 실행
chatgpt_interface()
한글 답변을 위한 보완
#import os
#os.environ["OPENAI_API_KEY"] = "새로 붙여 넣으세요."
# 저장된 인덱스 불러오기
from llama_index.core import StorageContext, load_index_from_storage
# rebuild storage context
storage_context = StorageContext.from_defaults(persist_dir="./storage")
# load index (gpt-turbo-3.5 기본 사용)
#index = load_index_from_storage(storage_context)
# 변경된 방식. llm 모델은 인덱스와는 관련이 없고 이후 query엔진에 영향을 줌.
client = OpenAI()
index = load_index_from_storage(storage_context, llm=client)
# 쿼리 엔진 생성
query_engine = index.as_query_engine()
# Gradio 실행
import gradio as gr
# 응답 생성 함수
def generate_response(prompt_text: str):
# 한글 답변 추가
new_prompt = prompt_text + ". 질문에 대한 답변은 한글로 답변해줘."
# 로드된 인덱스 실행
response = query_engine.query(new_prompt)
return response
# Gradio Blocks 인터페이스 설정
def chatgpt_interface():
with gr.Blocks() as demo:
gr.Markdown("### ChatGPT")
with gr.Row():
with gr.Column():
# 사용자 입력 텍스트 박스
input_text = gr.Textbox(label="질문을 입력해 주세요:")
# ChatGPT의 응답 출력 텍스트 박스
output_text = gr.Textbox(label="AI 응답", interactive=False)
# 버튼 클릭 시, ChatGPT 응답 생성
input_text.submit(generate_response, inputs=input_text, outputs=output_text)
demo.launch()
# ChatGPT 인터페이스 실행
chatgpt_interface()