Skip to content

Commit

Permalink
merge chainlit
Browse files Browse the repository at this point in the history
  • Loading branch information
avouacr committed May 21, 2024
2 parents c4fe29a + a460db0 commit 19cb050
Show file tree
Hide file tree
Showing 11 changed files with 741 additions and 124 deletions.
118 changes: 118 additions & 0 deletions .chainlit/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
[project]
# Whether to enable telemetry (default: true). No personal data is collected.
enable_telemetry = true


# List of environment variables to be provided by each user to use the app.
user_env = []

# Duration (in seconds) during which the session is saved when the connection is lost
session_timeout = 3600

# Enable third parties caching (e.g LangChain cache)
cache = false

# Authorized origins
allow_origins = ["*"]

# Follow symlink for asset mount (see https://github.com/Chainlit/chainlit/issues/317)
# follow_symlink = false

[features]
# Show the prompt playground
prompt_playground = true

# Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript)
unsafe_allow_html = false

# Process and display mathematical expressions. This can clash with "$" characters in messages.
latex = false

# Automatically tag threads with the current chat profile (if a chat profile is used)
auto_tag_thread = true

# Authorize users to spontaneously upload files with messages
[features.spontaneous_file_upload]
enabled = true
accept = ["*/*"]
max_files = 20
max_size_mb = 500

[features.audio]
# Threshold for audio recording
min_decibels = -45
# Delay for the user to start speaking in MS
initial_silence_timeout = 3000
# Delay for the user to continue speaking in MS. If the user stops speaking for this duration, the recording will stop.
silence_timeout = 1500
# Above this duration (MS), the recording will forcefully stop.
max_duration = 15000
# Duration of the audio chunks in MS
chunk_duration = 1000
# Sample rate of the audio
sample_rate = 44100

[UI]
# Name of the app and chatbot.
name = "Chatbot"

# Show the readme while the thread is empty.
show_readme_as_default = true

# Description of the app and chatbot. This is used for HTML tags.
# description = ""

# Large size content are by default collapsed for a cleaner ui
default_collapse_content = true

# The default value for the expand messages settings.
default_expand_messages = false

# Hide the chain of thought details from the user in the UI.
hide_cot = false

# Link to your github repo. This will add a github button in the UI's header.
# github = ""

# Specify a CSS file that can be used to customize the user interface.
# The CSS file can be served from the public directory or via an external link.
# custom_css = "/public/test.css"

# Specify a Javascript file that can be used to customize the user interface.
# The Javascript file can be served from the public directory.
# custom_js = "/public/test.js"

# Specify a custom font url.
# custom_font = "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap"

# Specify a custom build directory for the frontend.
# This can be used to customize the frontend code.
# Be careful: If this is a relative path, it should not start with a slash.
# custom_build = "./public/build"

[UI.theme]
#layout = "wide"
#font_family = "Inter, sans-serif"
# Override default MUI light theme. (Check theme.ts)
[UI.theme.light]
#background = "#FAFAFA"
#paper = "#FFFFFF"

[UI.theme.light.primary]
#main = "#F80061"
#dark = "#980039"
#light = "#FFE7EB"

# Override default MUI dark theme. (Check theme.ts)
[UI.theme.dark]
#background = "#FAFAFA"
#paper = "#FFFFFF"

[UI.theme.dark.primary]
#main = "#F80061"
#dark = "#980039"
#light = "#FFE7EB"


[meta]
generated_by = "1.1.101"
231 changes: 231 additions & 0 deletions .chainlit/translations/en-US.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "Settings",
"settingsKey": "S",
"APIKeys": "API Keys",
"logout": "Logout"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "New Chat"
},
"tasklist": {
"TaskList": {
"title": "\ud83d\uddd2\ufe0f Task List",
"loading": "Loading...",
"error": "An error occured"
}
},
"attachments": {
"cancelUpload": "Cancel upload",
"removeAttachment": "Remove attachment"
},
"newChatDialog": {
"createNewChat": "Create new chat?",
"clearChat": "This will clear the current messages and start a new chat.",
"cancel": "Cancel",
"confirm": "Confirm"
},
"settingsModal": {
"settings": "Settings",
"expandMessages": "Expand Messages",
"hideChainOfThought": "Hide Chain of Thought",
"darkMode": "Dark Mode"
},
"detailsButton": {
"using": "Using",
"running": "Running",
"took_one": "Took {{count}} step",
"took_other": "Took {{count}} steps"
},
"auth": {
"authLogin": {
"title": "Login to access the app.",
"form": {
"email": "Email address",
"password": "Password",
"noAccount": "Don't have an account?",
"alreadyHaveAccount": "Already have an account?",
"signup": "Sign Up",
"signin": "Sign In",
"or": "OR",
"continue": "Continue",
"forgotPassword": "Forgot password?",
"passwordMustContain": "Your password must contain:",
"emailRequired": "email is a required field",
"passwordRequired": "password is a required field"
},
"error": {
"default": "Unable to sign in.",
"signin": "Try signing in with a different account.",
"oauthsignin": "Try signing in with a different account.",
"redirect_uri_mismatch": "The redirect URI is not matching the oauth app configuration.",
"oauthcallbackerror": "Try signing in with a different account.",
"oauthcreateaccount": "Try signing in with a different account.",
"emailcreateaccount": "Try signing in with a different account.",
"callback": "Try signing in with a different account.",
"oauthaccountnotlinked": "To confirm your identity, sign in with the same account you used originally.",
"emailsignin": "The e-mail could not be sent.",
"emailverify": "Please verify your email, a new email has been sent.",
"credentialssignin": "Sign in failed. Check the details you provided are correct.",
"sessionrequired": "Please sign in to access this page."
}
},
"authVerifyEmail": {
"almostThere": "You're almost there! We've sent an email to ",
"verifyEmailLink": "Please click on the link in that email to complete your signup.",
"didNotReceive": "Can't find the email?",
"resendEmail": "Resend email",
"goBack": "Go Back",
"emailSent": "Email sent successfully.",
"verifyEmail": "Verify your email address"
},
"providerButton": {
"continue": "Continue with {{provider}}",
"signup": "Sign up with {{provider}}"
},
"authResetPassword": {
"newPasswordRequired": "New password is a required field",
"passwordsMustMatch": "Passwords must match",
"confirmPasswordRequired": "Confirm password is a required field",
"newPassword": "New password",
"confirmPassword": "Confirm password",
"resetPassword": "Reset Password"
},
"authForgotPassword": {
"email": "Email address",
"emailRequired": "email is a required field",
"emailSent": "Please check the email address {{email}} for instructions to reset your password.",
"enterEmail": "Enter your email address and we will send you instructions to reset your password.",
"resendEmail": "Resend email",
"continue": "Continue",
"goBack": "Go Back"
}
}
},
"organisms": {
"chat": {
"history": {
"index": {
"showHistory": "Show history",
"lastInputs": "Last Inputs",
"noInputs": "Such empty...",
"loading": "Loading..."
}
},
"inputBox": {
"input": {
"placeholder": "Type your message here..."
},
"speechButton": {
"start": "Start recording",
"stop": "Stop recording"
},
"SubmitButton": {
"sendMessage": "Send message",
"stopTask": "Stop Task"
},
"UploadButton": {
"attachFiles": "Attach files"
},
"waterMark": {
"text": "Built with"
}
},
"Messages": {
"index": {
"running": "Running",
"executedSuccessfully": "executed successfully",
"failed": "failed",
"feedbackUpdated": "Feedback updated",
"updating": "Updating"
}
},
"dropScreen": {
"dropYourFilesHere": "Drop your files here"
},
"index": {
"failedToUpload": "Failed to upload",
"cancelledUploadOf": "Cancelled upload of",
"couldNotReachServer": "Could not reach the server",
"continuingChat": "Continuing previous chat"
},
"settings": {
"settingsPanel": "Settings panel",
"reset": "Reset",
"cancel": "Cancel",
"confirm": "Confirm"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "Feedback: All",
"feedbackPositive": "Feedback: Positive",
"feedbackNegative": "Feedback: Negative"
},
"SearchBar": {
"search": "Search"
}
},
"DeleteThreadButton": {
"confirmMessage": "This will delete the thread as well as it's messages and elements.",
"cancel": "Cancel",
"confirm": "Confirm",
"deletingChat": "Deleting chat",
"chatDeleted": "Chat deleted"
},
"index": {
"pastChats": "Past Chats"
},
"ThreadList": {
"empty": "Empty...",
"today": "Today",
"yesterday": "Yesterday",
"previous7days": "Previous 7 days",
"previous30days": "Previous 30 days"
},
"TriggerButton": {
"closeSidebar": "Close sidebar",
"openSidebar": "Open sidebar"
}
},
"Thread": {
"backToChat": "Go back to chat",
"chatCreatedOn": "This chat was created on"
}
},
"header": {
"chat": "Chat",
"readme": "Readme"
}
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "Failed to fetch providers:"
}
},
"pages": {
"Design": {},
"Env": {
"savedSuccessfully": "Saved successfully",
"requiredApiKeys": "Required API Keys",
"requiredApiKeysInfo": "To use this app, the following API keys are required. The keys are stored on your device's local storage."
},
"Page": {
"notPartOfProject": "You are not part of this project."
},
"ResumeButton": {
"resumeChat": "Resume Chat"
}
}
}
11 changes: 5 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@ FROM inseefrlab/onyxia-vscode-pytorch:py3.12.2-gpu

USER root

WORKDIR /api
WORKDIR /app

COPY requirements-api.txt .
COPY . /app/

RUN pip install --no-cache-dir --upgrade -r requirements-api.txt

COPY ./src /api/
RUN pip install --no-cache-dir --upgrade -r requirements-app.txt && \
chmod +x entrypoint.sh

EXPOSE 8000
CMD ["uvicorn", "api:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "8000"]
ENTRYPOINT [ "./entrypoint.sh" ]
3 changes: 3 additions & 0 deletions chainlit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Assistant d'accès aux données de l'Insee

Comment puis-je vous aider aujourd'hui ?
2 changes: 0 additions & 2 deletions deployment/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ spec:
image: inseefrlab/llm-open-data-insee:latest
imagePullPolicy: Always
env:
- name: S3_BUCKET
value: projet-llm-insee-open-data
- name: AWS_S3_ENDPOINT
value: minio.lab.sspcloud.fr
- name: AWS_ACCESS_KEY_ID
Expand Down
8 changes: 8 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash

# Import vector DB
export MC_HOST_s3=https://$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY@$AWS_S3_ENDPOINT
mc cp --recursive s3/projet-llm-insee-open-data/data/chroma_database/chroma_db/ data/chroma_db

# Run app
chainlit run app.py --host 0.0.0.0 --port 8000 -h
Loading

0 comments on commit 19cb050

Please sign in to comment.