Spaces:
Sleeping
Sleeping
Customize graphical UI:
Browse files- Include avatars
- Include greetings message
- Improve readability
- app.py +22 -3
- ims/camelslogo.jpg +0 -0
- ims/userpic.png +0 -0
app.py
CHANGED
|
@@ -1,4 +1,6 @@
|
|
| 1 |
-
#
|
|
|
|
|
|
|
| 2 |
import gradio as gr
|
| 3 |
from langchain import hub
|
| 4 |
from langchain_chroma import Chroma
|
|
@@ -50,6 +52,8 @@ urls = get_subpages(base_url)
|
|
| 50 |
loader = WebBaseLoader(urls)
|
| 51 |
docs = loader.load()
|
| 52 |
|
|
|
|
|
|
|
| 53 |
# Join content pages for processing
|
| 54 |
def format_docs(docs):
|
| 55 |
return "\n\n".join(doc.page_content for doc in docs)
|
|
@@ -91,6 +95,7 @@ embeddings = HuggingFaceInstructEmbeddings(model_name=embed_model)
|
|
| 91 |
# RAG chain
|
| 92 |
rag_chain = RAG(llm, docs, embeddings)
|
| 93 |
|
|
|
|
| 94 |
def handle_prompt(message, history):
|
| 95 |
try:
|
| 96 |
# Stream output
|
|
@@ -101,7 +106,9 @@ def handle_prompt(message, history):
|
|
| 101 |
except:
|
| 102 |
raise gr.Error("Requests rate limit exceeded")
|
| 103 |
|
| 104 |
-
|
|
|
|
|
|
|
| 105 |
example_questions = [
|
| 106 |
"How can I read a halo file?",
|
| 107 |
"Which simulation suites are included in CAMELS?",
|
|
@@ -109,7 +116,19 @@ example_questions = [
|
|
| 109 |
"Write a complete snippet of code getting the power spectrum of a simulation"
|
| 110 |
]
|
| 111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
# Define Gradio interface
|
| 113 |
-
demo = gr.ChatInterface(handle_prompt,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 114 |
|
| 115 |
demo.launch()
|
|
|
|
| 1 |
+
# AI assistant with a RAG system to query information from the CAMELS cosmological simulations using Langchain
|
| 2 |
+
# Author: Pablo Villanueva Domingo
|
| 3 |
+
|
| 4 |
import gradio as gr
|
| 5 |
from langchain import hub
|
| 6 |
from langchain_chroma import Chroma
|
|
|
|
| 52 |
loader = WebBaseLoader(urls)
|
| 53 |
docs = loader.load()
|
| 54 |
|
| 55 |
+
print("Pages loaded:",len(docs))
|
| 56 |
+
|
| 57 |
# Join content pages for processing
|
| 58 |
def format_docs(docs):
|
| 59 |
return "\n\n".join(doc.page_content for doc in docs)
|
|
|
|
| 95 |
# RAG chain
|
| 96 |
rag_chain = RAG(llm, docs, embeddings)
|
| 97 |
|
| 98 |
+
# Function to handle prompt and query the RAG chain
|
| 99 |
def handle_prompt(message, history):
|
| 100 |
try:
|
| 101 |
# Stream output
|
|
|
|
| 106 |
except:
|
| 107 |
raise gr.Error("Requests rate limit exceeded")
|
| 108 |
|
| 109 |
+
# Predefined messages and examples
|
| 110 |
+
description = "AI powered assistant which answers any question related to the [CAMELS simulations](https://www.camel-simulations.org/)."
|
| 111 |
+
greetingsmessage = "Hi, I'm the CAMELS DocBot, I'm here to assist you with any question related to the CAMELS simulations."
|
| 112 |
example_questions = [
|
| 113 |
"How can I read a halo file?",
|
| 114 |
"Which simulation suites are included in CAMELS?",
|
|
|
|
| 116 |
"Write a complete snippet of code getting the power spectrum of a simulation"
|
| 117 |
]
|
| 118 |
|
| 119 |
+
# Define customized Gradio chatbot
|
| 120 |
+
chatbot = gr.Chatbot([{"role":"assistant", "content":greetingsmessage}],
|
| 121 |
+
type="messages",
|
| 122 |
+
avatar_images=["ims/userpic.png","ims/camelslogo.jpg"],
|
| 123 |
+
height="60vh")
|
| 124 |
+
|
| 125 |
# Define Gradio interface
|
| 126 |
+
demo = gr.ChatInterface(handle_prompt,
|
| 127 |
+
type="messages",
|
| 128 |
+
title="CAMELS DocBot",
|
| 129 |
+
examples=example_questions,
|
| 130 |
+
theme=gr.themes.Soft(),
|
| 131 |
+
description=description,
|
| 132 |
+
chatbot=chatbot)
|
| 133 |
|
| 134 |
demo.launch()
|
ims/camelslogo.jpg
ADDED
|
ims/userpic.png
ADDED
|