rafaldembski commited on
Commit
5d454cb
1 Parent(s): bae1810

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +101 -74
app.py CHANGED
@@ -49,105 +49,130 @@ To make D-LOGIC beloved by users, ensure to:
49
  - Provide insightful and thoughtful responses that demonstrate intelligence and creativity
50
  """
51
 
52
- def trigger_example(example):
53
- chat, updated_history = generate_response(example)
54
- return chat, updated_history
55
-
56
- def generate_response(user_message, cid, history=None):
57
-
58
- if history is None:
59
- history = []
60
- if cid == "" or None:
61
- cid = str(uuid.uuid4())
62
-
63
- history.append(user_message)
64
-
65
- # Prepend the custom instructions to the user's message
66
- user_message_with_instructions = f"{CUSTOM_INSTRUCTIONS}\n\n{user_message}"
67
-
68
- stream = co.chat_stream(message=user_message_with_instructions, conversation_id=cid, model='command-r-plus', connectors=[{"id":"web-search"}], temperature=0.3)
69
-
70
- output = ""
71
-
72
- for idx, response in enumerate(stream):
73
- if response.event_type == "text-generation":
74
- output += response.text
75
- if idx == 0:
76
- history.append(" " + output)
77
- else:
78
- history[-1] = output
79
- chat = [
80
- (history[i].strip(), history[i + 1].strip())
81
- for i in range(0, len(history) - 1, 2)
82
- ]
83
- yield chat, history, cid
84
-
85
- return chat, history, cid
86
-
87
-
88
- def clear_chat():
89
- return [], [], str(uuid.uuid4())
90
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
 
92
- examples = [
93
- "Opisz szczegółowo, jak działa algorytm klastrowania k-średnich.",
94
- "Zaproponuj plan rozwoju sztucznej inteligencji w przedsiębiorstwie produkcyjnym.",
95
- "Erklären Sie die Hauptunterschiede zwischen überwachtem und unüberwachtem Lernen.",
96
- "Wie kann die natürliche Sprachverarbeitung in der Kundenbetreuung eingesetzt werden?",
97
- "Podaj analizę SWOT dla wprowadzenia nowego produktu na rynek.",
98
- "Erstellen Sie einen Projektplan für die Implementierung eines Chatbots im Kundenservice."
99
- ]
 
 
100
 
101
  with gr.Blocks(analytics_enabled=False, theme=gr.themes.Monochrome()) as demo:
102
- cid = gr.State("")
 
 
 
103
 
104
  with gr.Row():
105
  with gr.Column(scale=1):
106
  gr.Image("logoplus.png", elem_id="logo-img", show_label=False, show_share_button=False, show_download_button=False)
107
  with gr.Column(scale=3):
108
- gr.Markdown("""
109
- **D-LOGIC** to zaawansowany asystent AI stworzony przez Rafała Dembskiego, który wykorzystuje najnowsze osiągnięcia w dziedzinie sztucznej inteligencji, aby wspierać użytkowników w różnorodnych zadaniach.
110
- Opiera się na modelu **C4AI Command R+** – to wydanie otwartych wag badawczych modelu o 104 miliardach parametrów, wyposażonego w zaawansowane możliwości generacji treści wspierane przez **Retrieval Augmented Generation (RAG)**.
111
- Model D-LOGIC potrafi automatyzować złożone zadania oraz wspierać w wielu językach, w tym: polskim, niemieckim, angielskim, francuskim, hiszpańskim, włoskim, portugalskim, japońskim, koreańskim, arabskim i chińskim.
112
- Jest zoptymalizowany pod kątem różnych przypadków użycia, takich jak rozumowanie, podsumowywanie i odpowiadanie na pytania.
113
- <br/><br/>
114
- **Model**: [C4AI Command R+](https://huggingface.co/CohereForAI/c4ai-command-r-plus)
115
- <br/>
116
- **Stworzony przez**: [Cohere](https://cohere.com/) oraz [Cohere for AI](https://cohere.com/research)
117
- <br/>
118
- **Licencja**: [CC-BY-NC](https://cohere.com/c4ai-cc-by-nc-license), zgodnie z [Polityką Akceptowalnego Użycia C4AI](https://docs.cohere.com/docs/c4ai-acceptable-use-policy)
119
- <br/><br/>
120
- D-LOGIC jest niezastąpionym narzędziem w tworzeniu treści, zarządzaniu projektami oraz wsparciu klientów na najwyższym poziomie, oferując inteligentne, kontekstowe i profesjonalne odpowiedzi w wielu językach.
121
- """
122
- )
123
 
124
  with gr.Column():
125
  with gr.Row():
126
- chatbot = gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, avatar_images="bothavatar.png")
127
 
128
  with gr.Row():
129
- user_message = gr.Textbox(lines=1, placeholder="Zadaj pytanie ...", label="Input", show_label=False)
130
 
131
-
132
  with gr.Row():
133
- submit_button = gr.Button("Wyślij")
134
- clear_button = gr.Button("Wyczyść czat")
135
 
136
-
137
  history = gr.State([])
138
 
139
- user_message.submit(fn=generate_response, inputs=[user_message, cid, history], outputs=[chatbot, history, cid], concurrency_limit=32)
140
 
141
- submit_button.click(fn=generate_response, inputs=[user_message, cid, history], outputs=[chatbot, history, cid], concurrency_limit=32)
142
- clear_button.click(fn=clear_chat, inputs=None, outputs=[chatbot, history, cid], concurrency_limit=32)
143
 
144
  user_message.submit(lambda x: gr.update(value=""), None, [user_message], queue=False)
145
  submit_button.click(lambda x: gr.update(value=""), None, [user_message], queue=False)
146
  clear_button.click(lambda x: gr.update(value=""), None, [user_message], queue=False)
147
 
148
  with gr.Row():
149
- gr.Examples(
150
- examples=examples,
151
  inputs=[user_message],
152
  cache_examples=False,
153
  fn=trigger_example,
@@ -155,5 +180,7 @@ with gr.Blocks(analytics_enabled=False, theme=gr.themes.Monochrome()) as demo:
155
  examples_per_page=100
156
  )
157
 
 
 
158
  if __name__ == "__main__":
159
  demo.queue(api_open=False, max_size=40).launch(show_api=False)
 
49
  - Provide insightful and thoughtful responses that demonstrate intelligence and creativity
50
  """
51
 
52
+ # Tłumaczenia interfejsu i przykładów
53
+ translations = {
54
+ "pl": {
55
+ "input_placeholder": "Zadaj pytanie ...",
56
+ "submit_button": "Wyślij",
57
+ "clear_button": "Wyczyść czat",
58
+ "examples": [
59
+ "Opisz szczegółowo, jak działa algorytm klastrowania k-średnich.",
60
+ "Zaproponuj plan rozwoju sztucznej inteligencji w przedsiębiorstwie produkcyjnym.",
61
+ "Podaj analizę SWOT dla wprowadzenia nowego produktu na rynek."
62
+ ],
63
+ "description": """
64
+ **D-LOGIC** to zaawansowany asystent AI stworzony przez Rafała Dembskiego, który wykorzystuje najnowsze osiągnięcia w dziedzinie sztucznej inteligencji, aby wspierać użytkowników w różnorodnych zadaniach.
65
+ Opiera się na modelu **C4AI Command R+** – to wydanie otwartych wag badawczych modelu o 104 miliardach parametrów, wyposażonego w zaawansowane możliwości generacji treści wspierane przez **Retrieval Augmented Generation (RAG)**.
66
+ Model D-LOGIC potrafi automatyzować złożone zadania oraz wspierać w wielu językach, w tym: polskim, niemieckim, angielskim, francuskim, hiszpańskim, włoskim, portugalskim, japońskim, koreańskim, arabskim i chińskim.
67
+ Jest zoptymalizowany pod kątem różnych przypadków użycia, takich jak rozumowanie, podsumowywanie i odpowiadanie na pytania.
68
+ <br/><br/>
69
+ **Model**: [C4AI Command R+](https://huggingface.co/CohereForAI/c4ai-command-r-plus)
70
+ <br/>
71
+ **Stworzony przez**: [Cohere](https://cohere.com/) oraz [Cohere for AI](https://cohere.com/research)
72
+ <br/>
73
+ **Licencja**: [CC-BY-NC](https://cohere.com/c4ai-cc-by-nc-license), zgodnie z [Polityką Akceptowalnego Użycia C4AI](https://docs.cohere.com/docs/c4ai-acceptable-use-policy)
74
+ <br/><br/>
75
+ D-LOGIC jest niezastąpionym narzędziem w tworzeniu treści, zarządzaniu projektami oraz wsparciu klientów na najwyższym poziomie, oferując inteligentne, kontekstowe i profesjonalne odpowiedzi w wielu językach.
76
+ """
77
+ },
78
+ "de": {
79
+ "input_placeholder": "Stellen Sie eine Frage ...",
80
+ "submit_button": "Senden",
81
+ "clear_button": "Chat löschen",
82
+ "examples": [
83
+ "Erklären Sie die Hauptunterschiede zwischen überwachtem und unüberwachtem Lernen.",
84
+ "Wie kann die natürliche Sprachverarbeitung in der Kundenbetreuung eingesetzt werden?",
85
+ "Erstellen Sie einen Projektplan für die Implementierung eines Chatbots im Kundenservice."
86
+ ],
87
+ "description": """
88
+ **D-LOGIC** ist ein fortschrittlicher KI-Assistent, entwickelt von Rafał Dembski, der die neuesten Fortschritte in der künstlichen Intelligenz nutzt, um Benutzer in verschiedenen Aufgaben zu unterstützen.
89
+ Es basiert auf dem Modell **C4AI Command R+** – eine Forschungsfreigabe mit offenen Gewichten, die 104 Milliarden Parameter umfasst und über fortschrittliche Funktionen zur Generierung von Inhalten verfügt, die durch **Retrieval Augmented Generation (RAG)** unterstützt werden.
90
+ Das D-LOGIC-Modell automatisiert komplexe Aufgaben und unterstützt viele Sprachen, darunter: Deutsch, Polnisch, Englisch, Französisch, Spanisch, Italienisch, Portugiesisch, Japanisch, Koreanisch, Arabisch und Chinesisch.
91
+ Es ist für eine Vielzahl von Anwendungsfällen optimiert, einschließlich logischen Denkens, Zusammenfassungen und Beantwortung von Fragen.
92
+ <br/><br/>
93
+ **Modell**: [C4AI Command R+](https://huggingface.co/CohereForAI/c4ai-command-r-plus)
94
+ <br/>
95
+ **Entwickelt von**: [Cohere](https://cohere.com/) und [Cohere for AI](https://cohere.com/research)
96
+ <br/>
97
+ **Lizenz**: [CC-BY-NC](https://cohere.com/c4ai-cc-by-nc-license), in Übereinstimmung mit [C4AI's Richtlinie zur akzeptablen Nutzung](https://docs.cohere.com/docs/c4ai-acceptable-use-policy)
98
+ <br/><br/>
99
+ D-LOGIC ist ein unverzichtbares Werkzeug für die Inhaltserstellung, Projektmanagement und Kundenbetreuung auf höchstem Niveau und bietet intelligente, kontextbezogene und professionelle Antworten in vielen Sprachen.
100
+ """
101
+ },
102
+ "en": {
103
+ "input_placeholder": "Ask a question ...",
104
+ "submit_button": "Submit",
105
+ "clear_button": "Clear chat",
106
+ "examples": [
107
+ "Describe in detail how the k-means clustering algorithm works.",
108
+ "Propose an AI development plan for a manufacturing company.",
109
+ "Provide a SWOT analysis for launching a new product."
110
+ ],
111
+ "description": """
112
+ **D-LOGIC** is an advanced AI assistant created by Rafał Dembski, leveraging the latest advancements in artificial intelligence to assist users in various tasks.
113
+ It is based on the **C4AI Command R+** model – a research open weights release of a model with 104 billion parameters, equipped with advanced content generation capabilities supported by **Retrieval Augmented Generation (RAG)**.
114
+ The D-LOGIC model can automate complex tasks and supports multiple languages, including: English, German, Polish, French, Spanish, Italian, Portuguese, Japanese, Korean, Arabic, and Chinese.
115
+ It is optimized for various use cases, including reasoning, summarization, and question answering.
116
+ <br/><br/>
117
+ **Model**: [C4AI Command R+](https://huggingface.co/CohereForAI/c4ai-command-r-plus)
118
+ <br/>
119
+ **Developed by**: [Cohere](https://cohere.com/) and [Cohere for AI](https://cohere.com/research)
120
+ <br/>
121
+ **License**: [CC-BY-NC](https://cohere.com/c4ai-cc-by-nc-license), in accordance with [C4AI's Acceptable Use Policy](https://docs.cohere.com/docs/c4ai-acceptable-use-policy)
122
+ <br/><br/>
123
+ D-LOGIC is an indispensable tool in content creation, project management, and top-level customer support, offering intelligent, contextual, and professional responses in multiple languages.
124
+ """
125
+ }
126
+ }
127
 
128
+ # Funkcja zmieniająca język interfejsu
129
+ def change_language(language):
130
+ selected_translation = translations[language]
131
+ return (
132
+ gr.update(placeholder=selected_translation["input_placeholder"]),
133
+ gr.update(value=selected_translation["submit_button"]),
134
+ gr.update(value=selected_translation["clear_button"]),
135
+ selected_translation["examples"],
136
+ selected_translation["description"]
137
+ )
138
 
139
  with gr.Blocks(analytics_enabled=False, theme=gr.themes.Monochrome()) as demo:
140
+ language = gr.State("en")
141
+
142
+ with gr.Row():
143
+ language_selector = gr.Dropdown(choices=["pl", "de", "en"], value="en", label="Wybierz język / Sprache auswählen / Select language", show_label=True)
144
 
145
  with gr.Row():
146
  with gr.Column(scale=1):
147
  gr.Image("logoplus.png", elem_id="logo-img", show_label=False, show_share_button=False, show_download_button=False)
148
  with gr.Column(scale=3):
149
+ description = gr.Markdown(translations["en"]["description"])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
 
151
  with gr.Column():
152
  with gr.Row():
153
+ chatbot = gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, avatar_images=("bothavatar.png", "bothavatar.png"))
154
 
155
  with gr.Row():
156
+ user_message = gr.Textbox(lines=1, placeholder=translations["en"]["input_placeholder"], label="Input", show_label=False)
157
 
 
158
  with gr.Row():
159
+ submit_button = gr.Button(translations["en"]["submit_button"])
160
+ clear_button = gr.Button(translations["en"]["clear_button"])
161
 
 
162
  history = gr.State([])
163
 
164
+ user_message.submit(fn=generate_response, inputs=[user_message, language, history], outputs=[chatbot, history, language], concurrency_limit=32)
165
 
166
+ submit_button.click(fn=generate_response, inputs=[user_message, language, history], outputs=[chatbot, history, language], concurrency_limit=32)
167
+ clear_button.click(fn=clear_chat, inputs=None, outputs=[chatbot, history, language], concurrency_limit=32)
168
 
169
  user_message.submit(lambda x: gr.update(value=""), None, [user_message], queue=False)
170
  submit_button.click(lambda x: gr.update(value=""), None, [user_message], queue=False)
171
  clear_button.click(lambda x: gr.update(value=""), None, [user_message], queue=False)
172
 
173
  with gr.Row():
174
+ examples = gr.Examples(
175
+ examples=translations["en"]["examples"],
176
  inputs=[user_message],
177
  cache_examples=False,
178
  fn=trigger_example,
 
180
  examples_per_page=100
181
  )
182
 
183
+ language_selector.change(fn=change_language, inputs=[language_selector], outputs=[user_message, submit_button, clear_button, examples, description])
184
+
185
  if __name__ == "__main__":
186
  demo.queue(api_open=False, max_size=40).launch(show_api=False)