Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/1.0.200 #681

Merged
merged 5 commits into from
Jan 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

Nothing is unreleased!

## [1.0.200] - 2023-01-22

### Added

- Chainlit Copilot
- Translations
- Custom font

### Fixed

- Tasklist flickering

## [1.0.101] - 2023-01-12

### Fixed
Expand Down
41 changes: 14 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
# Welcome to Chainlit 👋
# Welcome to Chainlit by Literal AI 👋

[![](https://dcbadge.vercel.app/api/server/ZThrUxbAYw?style=flat)](https://discord.gg/k73SQ3FyUh)
[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/chainlit_io.svg?style=social&label=Follow%20%40chainlit_io)](https://twitter.com/chainlit_io)
[![CI](https://github.com/Chainlit/chainlit/actions/workflows/ci.yaml/badge.svg)](https://github.com/Chainlit/chainlit/actions/workflows/ci.yaml)

**Build a production ready Chat GPT like application in minutes ⚡️**
**Build production-ready Conversational AI applications in minutes, not weeks ⚡️**

Chainlit is an open-source async Python framework that makes it incredibly fast to build Chat GPT like applications with your **own business logic and data**.
Chainlit is an open-source async Python framework which allows developers to build scalable Conversational AI or agentic applications.

Contact us [here](https://forms.gle/BX3UNBLmTF75KgZVA) for **Enterprise Support** and to get early access to the **Analytics & Observability** product.
- ✅ ChatGPT-like application
- ✅ Embedded Copilot
- ✅ Custom frontend
- ✅ API Endpoint
- 🛠️ Teams/Slack Integration

Full documentation is available [here](https://docs.chainlit.io).

Contact us [here](https://forms.gle/BX3UNBLmTF75KgZVA) for **Enterprise Support** and to get early access to Literal AI, our product to evaluate and monitor LLM applications.

https://github.com/Chainlit/chainlit/assets/13104895/8882af90-fdfa-4b24-8200-1ee96c6c7490

Expand All @@ -23,14 +31,6 @@ $ chainlit hello

If this opens the `hello app` in your browser, you're all set!

## 📖 Documentation

Please see [here](https://docs.chainlit.io) for full documentation on:

- Getting started (installation, simple examples)
- Examples
- Reference (full API docs)

## 🚀 Quickstart

### 🐍 Pure Python
Expand Down Expand Up @@ -78,25 +78,12 @@ $ chainlit run demo.py -w

Chainlit is compatible with all Python programs and libraries. That being said, it comes with integrations for:

- [Langchain](https://docs.chainlit.io/integrations/langchain)
- [LangChain](https://docs.chainlit.io/integrations/langchain)
- [Llama Index](https://docs.chainlit.io/integrations/llama-index)
- [Autogen](https://github.com/Chainlit/cookbook/tree/main/pyautogen)
- [OpenAI Assistant](https://github.com/Chainlit/cookbook/tree/main/openai-assistant)
- [Llama Index](https://docs.chainlit.io/integrations/llama-index)
- [Haystack](https://docs.chainlit.io/integrations/haystack)

## 🎨 Custom Frontend

Chainlit allows you to create a custom frontend for your application, offering you the flexibility to design a unique user experience. By integrating your frontend with Chainlit's backend, you can harness the full power of Chainlit's features, including:

- Abstractions for easier development
- Monitoring and observability
- Seamless integrations with various tools
- Robust authentication mechanisms
- Support for multi-user environments
- Efficient data streaming capabilities

To build and connect your own frontend, check out our [Custom Frontend Cookbook](https://github.com/Chainlit/cookbook/tree/main/custom-frontend).

## 📚 More Examples - Cookbook

You can find various examples of Chainlit apps [here](https://github.com/Chainlit/cookbook) that leverage tools and services such as OpenAI, Anthropiс, LangChain, LlamaIndex, ChromaDB, Pinecone and more.
Expand Down
4 changes: 2 additions & 2 deletions backend/chainlit/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ async def authenticate_user(token: str = Depends(reuseable_oauth)):
if data_layer := get_data_layer():
try:
persisted_user = await data_layer.get_user(user.identifier)
if persisted_user == None:
persisted_user = await data_layer.create_user(user)
except Exception as e:
return user
if persisted_user == None:
raise HTTPException(status_code=401, detail="User does not exist")

return persisted_user
else:
Expand Down
4 changes: 1 addition & 3 deletions backend/chainlit/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,9 +183,7 @@ def get_build_dir(local_target: str, packaged_target: str):

socket = SocketManager(
app,
cors_allowed_origins=[]
if config.project.allow_origins[0] == "*"
else config.project.allow_origins,
cors_allowed_origins=[],
async_mode="asgi",
)

Expand Down
6 changes: 2 additions & 4 deletions backend/chainlit/translations/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,8 @@
"index": {
"failedToUpload": "Failed to upload",
"cancelledUploadOf": "Cancelled upload of",
"couldNotReachServer": "Could not reach the server"
"couldNotReachServer": "Could not reach the server",
"continuingChat": "Continuing previous chat"
},
"settings": {
"settingsPanel": "Settings panel",
Expand Down Expand Up @@ -144,9 +145,6 @@
"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."
},
"Login": {
"authTitle": "Login to access the app."
},
"Page": {
"notPartOfProject": "You are not part of this project."
},
Expand Down
226 changes: 112 additions & 114 deletions backend/chainlit/translations/pt-BR.json
Original file line number Diff line number Diff line change
@@ -1,136 +1,137 @@
{
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "Configurações",
"settingsKey": "S",
"APIKeys": "Chaves de API",
"logout": "Sair"
}
"components": {
"atoms": {
"buttons": {
"userButton": {
"menu": {
"settings": "Configurações",
"settingsKey": "S",
"APIKeys": "Chaves de API",
"logout": "Sair"
}
}
}
},
"molecules": {
"newChatButton": {
"newChat": "Nova Conversa"
},
"tasklist": {
"TaskList": {
"title": "🗒️ Lista de Tarefas",
"loading": "Carregando...",
"error": "Ocorreu um erro"
}
},
"molecules": {
"newChatButton": {
"newChat": "Nova Conversa"
"attachments": {
"cancelUpload": "Cancelar envio",
"removeAttachment": "Remover anexo"
},
"newChatDialog": {
"createNewChat": "Criar novo chat?",
"clearChat": "Isso limpará as mensagens atuais e iniciará uma nova conversa.",
"cancel": "Cancelar",
"confirm": "Confirmar"
},
"settingsModal": {
"expandMessages": "Expandir Mensagens",
"hideChainOfThought": "Esconder Sequência de Pensamento",
"darkMode": "Modo Escuro"
}
},
"organisms": {
"chat": {
"history": {
"index": {
"lastInputs": "Últimas Entradas",
"noInputs": "Vazio...",
"loading": "Carregando..."
}
},
"inputBox": {
"input": {
"placeholder": "Digite sua mensagem aqui..."
},
"speechButton": {
"start": "Iniciar gravação",
"stop": "Parar gravação"
},
"SubmitButton": {
"sendMessage": "Enviar mensagem",
"stopTask": "Parar Tarefa"
},
"UploadButton": {
"attachFiles": "Anexar arquivos"
},
"waterMark": {
"text": "Construído com"
}
},
"tasklist": {
"TaskList": {
"title": "🗒️ Lista de Tarefas",
"loading": "Carregando...",
"error": "Ocorreu um erro"
"Messages": {
"index": {
"running": "Executando",
"executedSuccessfully": "executado com sucesso",
"failed": "falhou",
"feedbackUpdated": "Feedback atualizado",
"updating": "Atualizando"
}
},
"attachments": {
"cancelUpload": "Cancelar envio",
"removeAttachment": "Remover anexo"
"dropScreen": {
"dropYourFilesHere": "Solte seus arquivos aqui"
},
"newChatDialog": {
"createNewChat": "Criar novo chat?",
"clearChat": "Isso limpará as mensagens atuais e iniciará uma nova conversa.",
"index": {
"failedToUpload": "Falha ao enviar",
"cancelledUploadOf": "Envio cancelado de",
"couldNotReachServer": "Não foi possível conectar ao servidor",
"continuingChat": "Continuando o chat anterior"
},
"settings": {
"settingsPanel": "Painel de Configurações",
"reset": "Redefinir",
"cancel": "Cancelar",
"confirm": "Confirmar"
},
"settingsModal": {
"expandMessages": "Expandir Mensagens",
"hideChainOfThought": "Esconder Sequência de Pensamento",
"darkMode": "Modo Escuro"
}
},
"organisms": {
"chat": {
"history": {
"index": {
"lastInputs": "Últimas Entradas",
"noInputs": "Vazio...",
"loading": "Carregando..."
}
},
"inputBox": {
"input": {
"placeholder": "Digite sua mensagem aqui..."
},
"speechButton": {
"start": "Iniciar gravação",
"stop": "Parar gravação"
},
"SubmitButton": {
"sendMessage": "Enviar mensagem",
"stopTask": "Parar Tarefa"
},
"UploadButton": {
"attachFiles": "Anexar arquivos"
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "Feedback: Todos",
"feedbackPositive": "Feedback: Positivo",
"feedbackNegative": "Feedback: Negativo"
},
"waterMark": {
"text": "Construído com"
"SearchBar": {
"search": "Buscar"
}
},
"Messages": {
"index": {
"running": "Executando",
"executedSuccessfully": "executado com sucesso",
"failed": "falhou",
"feedbackUpdated": "Feedback atualizado",
"updating": "Atualizando"
}
},
"dropScreen": {
"dropYourFilesHere": "Solte seus arquivos aqui"
"DeleteThreadButton": {
"confirmMessage": "Isso deletará a conversa, assim como suas mensagens e elementos.",
"cancel": "Cancelar",
"confirm": "Confirmar",
"deletingChat": "Deletando conversa",
"chatDeleted": "Conversa deletada"
},
"index": {
"failedToUpload": "Falha ao enviar",
"cancelledUploadOf": "Envio cancelado de",
"couldNotReachServer": "Não foi possível conectar ao servidor"
"pastChats": "Conversas Anteriores"
},
"settings": {
"settingsPanel": "Painel de Configurações",
"reset": "Redefinir",
"cancel": "Cancelar",
"confirm": "Confirmar"
}
},
"threadHistory": {
"sidebar": {
"filters": {
"FeedbackSelect": {
"feedbackAll": "Feedback: Todos",
"feedbackPositive": "Feedback: Positivo",
"feedbackNegative": "Feedback: Negativo"
},
"SearchBar": {
"search": "Buscar"
}
},
"DeleteThreadButton": {
"confirmMessage": "Isso deletará a conversa, assim como suas mensagens e elementos.",
"cancel": "Cancelar",
"confirm": "Confirmar",
"deletingChat": "Deletando conversa",
"chatDeleted": "Conversa deletada"
},
"index": {
"pastChats": "Conversas Anteriores"
},
"ThreadList": {
"empty": "Vazio..."
},
"TriggerButton": {
"closeSidebar": "Fechar barra lateral",
"openSidebar": "Abrir barra lateral"
}
"ThreadList": {
"empty": "Vazio..."
},
"Thread": {
"backToChat": "Voltar para a conversa",
"chatCreatedOn": "Esta conversa foi criada em"
"TriggerButton": {
"closeSidebar": "Fechar barra lateral",
"openSidebar": "Abrir barra lateral"
}
},
"header": {
"chat": "Conversa",
"readme": "Leia-me"
"Thread": {
"backToChat": "Voltar para a conversa",
"chatCreatedOn": "Esta conversa foi criada em"
}
},
"header": {
"chat": "Conversa",
"readme": "Leia-me"
}
},
"hooks": {
"useLLMProviders": {
"failedToFetchProviders": "Falha ao buscar provedores:"
Expand All @@ -143,9 +144,6 @@
"requiredApiKeys": "Chaves de API necessárias",
"requiredApiKeysInfo": "Para usar este aplicativo, as seguintes chaves de API são necessárias. As chaves são armazenadas localmente em seu dispositivo."
},
"Login": {
"authTitle": "Faça login para acessar o aplicativo."
},
"Page": {
"notPartOfProject": "Você não faz parte deste projeto."
},
Expand All @@ -154,4 +152,4 @@
}
}
}
}
}
Loading