Spaces:
Build error
Build error
abdulazeezoj
commited on
Commit
•
d513ed6
1
Parent(s):
6d81cbc
update model
Browse files- Pipfile +4 -0
- Pipfile.lock +40 -6
- alaroye/alaroye.py +36 -58
- alaroye/alaroyedb/chroma-collections.parquet +1 -1
- alaroye/alaroyedb/chroma-embeddings.parquet +2 -2
- alaroye/alaroyedb/index/{id_to_uuid_676957b6-5b85-4306-bd90-8fbd6a25173a.pkl → id_to_uuid_bec977cc-77ee-4019-b333-17858f6729e8.pkl} +2 -2
- alaroye/alaroyedb/index/{index_676957b6-5b85-4306-bd90-8fbd6a25173a.bin → index_bec977cc-77ee-4019-b333-17858f6729e8.bin} +1 -1
- alaroye/alaroyedb/index/{index_metadata_676957b6-5b85-4306-bd90-8fbd6a25173a.pkl → index_metadata_bec977cc-77ee-4019-b333-17858f6729e8.pkl} +1 -1
- alaroye/alaroyedb/index/{uuid_to_id_676957b6-5b85-4306-bd90-8fbd6a25173a.pkl → uuid_to_id_bec977cc-77ee-4019-b333-17858f6729e8.pkl} +1 -1
- notebooks/0-alaroye-v0.0.0.ipynb +64 -235
Pipfile
CHANGED
@@ -9,6 +9,10 @@ openai = "*"
|
|
9 |
gradio = "*"
|
10 |
chromadb = "*"
|
11 |
tiktoken = "*"
|
|
|
|
|
|
|
|
|
12 |
|
13 |
[dev-packages]
|
14 |
flake8 = "*"
|
|
|
9 |
gradio = "*"
|
10 |
chromadb = "*"
|
11 |
tiktoken = "*"
|
12 |
+
speechrecognition = "*"
|
13 |
+
gtts = "*"
|
14 |
+
pydub = "*"
|
15 |
+
pyaudio = "*"
|
16 |
|
17 |
[dev-packages]
|
18 |
flake8 = "*"
|
Pipfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
{
|
2 |
"_meta": {
|
3 |
"hash": {
|
4 |
-
"sha256": "
|
5 |
},
|
6 |
"pipfile-spec": 6,
|
7 |
"requires": {
|
@@ -715,6 +715,14 @@
|
|
715 |
"markers": "platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))",
|
716 |
"version": "==2.0.2"
|
717 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
718 |
"h11": {
|
719 |
"hashes": [
|
720 |
"sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d",
|
@@ -918,7 +926,7 @@
|
|
918 |
"sha256:2894e8ca1bbd41404925c3916099cd31ccea74e558a311c9aad67e02bcfa5ef8",
|
919 |
"sha256:2fc067dd038edcf18086d342da2c690984c4d37f9bfa684ffccaea34b43edb28"
|
920 |
],
|
921 |
-
"markers": "
|
922 |
"version": "==0.0.16"
|
923 |
},
|
924 |
"linkify-it-py": {
|
@@ -1560,6 +1568,23 @@
|
|
1560 |
],
|
1561 |
"version": "==3.2.0"
|
1562 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1563 |
"pydantic": {
|
1564 |
"hashes": [
|
1565 |
"sha256:07293ab08e7b4d3c9d7de4949a0ea571f11e4557d19ea24dd3ae0c524c0c334d",
|
@@ -1607,6 +1632,7 @@
|
|
1607 |
"sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6",
|
1608 |
"sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"
|
1609 |
],
|
|
|
1610 |
"version": "==0.25.1"
|
1611 |
},
|
1612 |
"pygments": {
|
@@ -1663,7 +1689,7 @@
|
|
1663 |
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
|
1664 |
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
|
1665 |
],
|
1666 |
-
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
1667 |
"version": "==2.8.2"
|
1668 |
},
|
1669 |
"python-dotenv": {
|
@@ -1849,7 +1875,7 @@
|
|
1849 |
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
1850 |
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
1851 |
],
|
1852 |
-
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
1853 |
"version": "==1.16.0"
|
1854 |
},
|
1855 |
"sniffio": {
|
@@ -1860,6 +1886,14 @@
|
|
1860 |
"markers": "python_version >= '3.7'",
|
1861 |
"version": "==1.3.0"
|
1862 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1863 |
"sqlalchemy": {
|
1864 |
"hashes": [
|
1865 |
"sha256:0db6734cb5644c55d0262a813b764c6e2cda1e66e939a488b3d6298cdc7344c2",
|
@@ -2652,7 +2686,7 @@
|
|
2652 |
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
|
2653 |
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
|
2654 |
],
|
2655 |
-
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
2656 |
"version": "==2.8.2"
|
2657 |
},
|
2658 |
"pyzmq": {
|
@@ -2743,7 +2777,7 @@
|
|
2743 |
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
2744 |
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
2745 |
],
|
2746 |
-
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
2747 |
"version": "==1.16.0"
|
2748 |
},
|
2749 |
"stack-data": {
|
|
|
1 |
{
|
2 |
"_meta": {
|
3 |
"hash": {
|
4 |
+
"sha256": "5c4dc65e2df68cd004dbf6534e64e5bee5bbc76472e4197eef27c46b900a2aae"
|
5 |
},
|
6 |
"pipfile-spec": 6,
|
7 |
"requires": {
|
|
|
715 |
"markers": "platform_machine == 'aarch64' or (platform_machine == 'ppc64le' or (platform_machine == 'x86_64' or (platform_machine == 'amd64' or (platform_machine == 'AMD64' or (platform_machine == 'win32' or platform_machine == 'WIN32')))))",
|
716 |
"version": "==2.0.2"
|
717 |
},
|
718 |
+
"gtts": {
|
719 |
+
"hashes": [
|
720 |
+
"sha256:5314f7dedb4230889ff4773edd37e101408497e166982027b8d9582a4585eb4f",
|
721 |
+
"sha256:9132e409603f34d5023458e3e10ce2f5df55498d7a2ee781c9adbe616fbd4152"
|
722 |
+
],
|
723 |
+
"index": "pypi",
|
724 |
+
"version": "==2.3.2"
|
725 |
+
},
|
726 |
"h11": {
|
727 |
"hashes": [
|
728 |
"sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d",
|
|
|
926 |
"sha256:2894e8ca1bbd41404925c3916099cd31ccea74e558a311c9aad67e02bcfa5ef8",
|
927 |
"sha256:2fc067dd038edcf18086d342da2c690984c4d37f9bfa684ffccaea34b43edb28"
|
928 |
],
|
929 |
+
"markers": "python_version < '4.0' and python_full_version >= '3.8.1'",
|
930 |
"version": "==0.0.16"
|
931 |
},
|
932 |
"linkify-it-py": {
|
|
|
1568 |
],
|
1569 |
"version": "==3.2.0"
|
1570 |
},
|
1571 |
+
"pyaudio": {
|
1572 |
+
"hashes": [
|
1573 |
+
"sha256:13915faaa780e6bbbb6d745ef0e761674fd461b1b1b3f9c1f57042a534bfc0c3",
|
1574 |
+
"sha256:1505d766ee718df6f5a18b73ac42307ba1cb4d2c0397873159254a34f67515d6",
|
1575 |
+
"sha256:26bccc81e4243d1c0ff5487e6b481de6329fcd65c79365c267cef38f363a2b56",
|
1576 |
+
"sha256:48e29537ea22ae2ae323eebe297bfb2683831cee4f20d96964e131f65ab2161d",
|
1577 |
+
"sha256:59cc3cc5211b729c7854e3989058a145872cc58b1a7b46c6d4d88448a343d890",
|
1578 |
+
"sha256:87137cfd0ef8608a2a383be3f6996f59505e322dab9d16531f14cf542fa294f1",
|
1579 |
+
"sha256:910ef09225cce227adbba92622d4a3e3c8375117f7dd64039f287d9ffc0e02a1",
|
1580 |
+
"sha256:c6b302b048c054b7463936d8ba884b73877dc47012f3c94665dba92dd658ae04",
|
1581 |
+
"sha256:d294e3f85b2238649b1ff49ce3412459a8a312569975a89d14646536362d7576",
|
1582 |
+
"sha256:eb128e4a6ea9b98d9a31f33c44978885af27dbe8ae53d665f8790cbfe045517e",
|
1583 |
+
"sha256:ff7f5e44ef51fe61da1e09c6f632f0b5808198edd61b363855cc7dd03bf4a8ac"
|
1584 |
+
],
|
1585 |
+
"index": "pypi",
|
1586 |
+
"version": "==0.2.13"
|
1587 |
+
},
|
1588 |
"pydantic": {
|
1589 |
"hashes": [
|
1590 |
"sha256:07293ab08e7b4d3c9d7de4949a0ea571f11e4557d19ea24dd3ae0c524c0c334d",
|
|
|
1632 |
"sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6",
|
1633 |
"sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"
|
1634 |
],
|
1635 |
+
"index": "pypi",
|
1636 |
"version": "==0.25.1"
|
1637 |
},
|
1638 |
"pygments": {
|
|
|
1689 |
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
|
1690 |
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
|
1691 |
],
|
1692 |
+
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
1693 |
"version": "==2.8.2"
|
1694 |
},
|
1695 |
"python-dotenv": {
|
|
|
1875 |
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
1876 |
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
1877 |
],
|
1878 |
+
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
1879 |
"version": "==1.16.0"
|
1880 |
},
|
1881 |
"sniffio": {
|
|
|
1886 |
"markers": "python_version >= '3.7'",
|
1887 |
"version": "==1.3.0"
|
1888 |
},
|
1889 |
+
"speechrecognition": {
|
1890 |
+
"hashes": [
|
1891 |
+
"sha256:14131155e8a8ba00ead1b7b9b1a2fa71c845e4db5f9a5f66a33a1bd6c55c6c35",
|
1892 |
+
"sha256:7ae9966887d9909ce3e5a0c27ecc3eacfca16fd0c0829f77f552919418e86306"
|
1893 |
+
],
|
1894 |
+
"index": "pypi",
|
1895 |
+
"version": "==3.10.0"
|
1896 |
+
},
|
1897 |
"sqlalchemy": {
|
1898 |
"hashes": [
|
1899 |
"sha256:0db6734cb5644c55d0262a813b764c6e2cda1e66e939a488b3d6298cdc7344c2",
|
|
|
2686 |
"sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
|
2687 |
"sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
|
2688 |
],
|
2689 |
+
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
2690 |
"version": "==2.8.2"
|
2691 |
},
|
2692 |
"pyzmq": {
|
|
|
2777 |
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
|
2778 |
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
|
2779 |
],
|
2780 |
+
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
2781 |
"version": "==1.16.0"
|
2782 |
},
|
2783 |
"stack-data": {
|
alaroye/alaroye.py
CHANGED
@@ -5,10 +5,10 @@ import pathlib
|
|
5 |
from typing import Any, Dict, List
|
6 |
|
7 |
import gradio as gr
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
from dotenv import find_dotenv, load_dotenv
|
13 |
from langchain.chains import RetrievalQA
|
14 |
from langchain.chains.retrieval_qa.base import BaseRetrievalQA
|
@@ -19,7 +19,6 @@ from langchain.llms import OpenAI
|
|
19 |
from langchain.prompts import PromptTemplate
|
20 |
from langchain.text_splitter import CharacterTextSplitter
|
21 |
from langchain.vectorstores import Chroma
|
22 |
-
# import speech_recognition as sr
|
23 |
|
24 |
|
25 |
# Load environment variables
|
@@ -42,16 +41,24 @@ class Alaroye:
|
|
42 |
"""
|
43 |
|
44 |
self.embeddings = OpenAIEmbeddings() # type: ignore
|
45 |
-
self.llm = OpenAI(temperature=0
|
46 |
self.vector_store: Chroma | None = None
|
47 |
-
# self.speech_recognizer = sr.Recognizer()
|
48 |
self.retrieval_qa: BaseRetrievalQA | None = None
|
49 |
-
self.persist_directory = os.path.join(os.path.dirname(__file__), "
|
50 |
self.prompt_template = """
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
53 |
Don't try to make up an answer.
|
54 |
|
|
|
|
|
|
|
|
|
55 |
{context}
|
56 |
|
57 |
<<<{question}>>>
|
@@ -156,6 +163,7 @@ Don't try to make up an answer.
|
|
156 |
|
157 |
# Get the answer
|
158 |
answer = self.retrieval_qa(question)
|
|
|
159 |
|
160 |
# Format the answer
|
161 |
formatted_answer = self._format_answer(answer, verbose=verbose)
|
@@ -163,59 +171,29 @@ Don't try to make up an answer.
|
|
163 |
# Return the formatted answer
|
164 |
return formatted_answer
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
# Returns
|
171 |
-
# -------
|
172 |
-
# str
|
173 |
-
# The user's input.
|
174 |
-
# """
|
175 |
-
|
176 |
-
# # Initialize the microphone
|
177 |
-
# mic = sr.Microphone()
|
178 |
-
|
179 |
-
# # Listen to the user
|
180 |
-
# with mic as source:
|
181 |
-
# print("Calibrating microphone...")
|
182 |
-
# self.speech_recognizer.adjust_for_ambient_noise(source, duration=5)
|
183 |
-
|
184 |
-
# print("Listening...")
|
185 |
-
# try:
|
186 |
-
# audio = self.speech_recognizer.listen(source, timeout=5)
|
187 |
-
# print("Recognizing...")
|
188 |
-
|
189 |
-
# text = self.speech_recognizer.recognize_google(audio)
|
190 |
-
|
191 |
-
# return text
|
192 |
-
# except Exception as e:
|
193 |
-
# bad_response = "Sorry, I didn't catch that. Could you repeat yourself?"
|
194 |
-
|
195 |
-
# return bad_response
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
|
|
|
|
|
200 |
|
201 |
-
|
202 |
-
|
203 |
-
# text : str
|
204 |
-
# The text to speak to the user.
|
205 |
-
# """
|
206 |
|
207 |
-
|
208 |
-
|
|
|
209 |
|
210 |
-
|
211 |
-
|
212 |
-
# tts.write_to_fp(mp3_fp)
|
213 |
|
214 |
-
|
215 |
-
|
216 |
-
# mp3_fp.close()
|
217 |
-
# audio = AudioSegment.from_file(stream, format="mp3")
|
218 |
-
# play(audio)
|
219 |
|
220 |
@staticmethod
|
221 |
def _get_documents(
|
|
|
5 |
from typing import Any, Dict, List
|
6 |
|
7 |
import gradio as gr
|
8 |
+
from gtts import gTTS
|
9 |
+
from pydub import AudioSegment
|
10 |
+
from pydub.playback import play
|
11 |
+
from io import BytesIO
|
12 |
from dotenv import find_dotenv, load_dotenv
|
13 |
from langchain.chains import RetrievalQA
|
14 |
from langchain.chains.retrieval_qa.base import BaseRetrievalQA
|
|
|
19 |
from langchain.prompts import PromptTemplate
|
20 |
from langchain.text_splitter import CharacterTextSplitter
|
21 |
from langchain.vectorstores import Chroma
|
|
|
22 |
|
23 |
|
24 |
# Load environment variables
|
|
|
41 |
"""
|
42 |
|
43 |
self.embeddings = OpenAIEmbeddings() # type: ignore
|
44 |
+
self.llm = OpenAI(temperature=0) # type: ignore
|
45 |
self.vector_store: Chroma | None = None
|
|
|
46 |
self.retrieval_qa: BaseRetrievalQA | None = None
|
47 |
+
self.persist_directory = os.path.join(os.path.dirname(__file__), "alaroyedb")
|
48 |
self.prompt_template = """
|
49 |
+
You are a helpful assistance that understand german and only respond in german. Answer the \
|
50 |
+
question delimited in <<< >>> using the german context. \
|
51 |
+
|
52 |
+
If the question is not german, just say `I don't know` in german. \
|
53 |
+
Don't try to make up an answer.
|
54 |
+
|
55 |
+
If you don't know the answer, just say `I don't know` in german. \
|
56 |
Don't try to make up an answer.
|
57 |
|
58 |
+
Only answer the question from the context. If the provided context \
|
59 |
+
can't answer the question, just say `I don't know` in german. \
|
60 |
+
|
61 |
+
Context:
|
62 |
{context}
|
63 |
|
64 |
<<<{question}>>>
|
|
|
163 |
|
164 |
# Get the answer
|
165 |
answer = self.retrieval_qa(question)
|
166 |
+
print(answer)
|
167 |
|
168 |
# Format the answer
|
169 |
formatted_answer = self._format_answer(answer, verbose=verbose)
|
|
|
171 |
# Return the formatted answer
|
172 |
return formatted_answer
|
173 |
|
174 |
+
@staticmethod
|
175 |
+
def _speak(text: str):
|
176 |
+
"""
|
177 |
+
Function to convert text to speech
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
|
179 |
+
Parameters
|
180 |
+
----------
|
181 |
+
text : str
|
182 |
+
The text to be converted to speech
|
183 |
+
"""
|
184 |
|
185 |
+
# Create a byte stream to store the speech audio
|
186 |
+
stream = BytesIO()
|
|
|
|
|
|
|
187 |
|
188 |
+
# Generate the speech audio using gTTS
|
189 |
+
tts = gTTS(text=text, lang="de")
|
190 |
+
tts.write_to_fp(stream)
|
191 |
|
192 |
+
# Rewind the stream to the beginning
|
193 |
+
stream.seek(0)
|
|
|
194 |
|
195 |
+
# Play the audio file
|
196 |
+
play(AudioSegment.from_file(stream, format="mp3"))
|
|
|
|
|
|
|
197 |
|
198 |
@staticmethod
|
199 |
def _get_documents(
|
alaroye/alaroyedb/chroma-collections.parquet
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 582
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:de64174bca901c1c84168475c023eed7ac8f8f6acd772c37f04e22837782cac1
|
3 |
size 582
|
alaroye/alaroyedb/chroma-embeddings.parquet
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:01c38e8c0a12afcb92445faea9342406eaa70617126e081ddb79dec454337af6
|
3 |
+
size 125303
|
alaroye/alaroyedb/index/{id_to_uuid_676957b6-5b85-4306-bd90-8fbd6a25173a.pkl → id_to_uuid_bec977cc-77ee-4019-b333-17858f6729e8.pkl}
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c79f1acda2734630c4a90916c44d47ac09f776ccfcabb9f4b9a3b052c077883e
|
3 |
+
size 348
|
alaroye/alaroyedb/index/{index_676957b6-5b85-4306-bd90-8fbd6a25173a.bin → index_bec977cc-77ee-4019-b333-17858f6729e8.bin}
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 63044
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:820b52318e5a319b4d58c885686fafbaebdafcf1f8ddd7a75647e8c605837d8c
|
3 |
size 63044
|
alaroye/alaroyedb/index/{index_metadata_676957b6-5b85-4306-bd90-8fbd6a25173a.pkl → index_metadata_bec977cc-77ee-4019-b333-17858f6729e8.pkl}
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 103
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:114ef538d4ea167d993114412eaa49c4e28622c06184234f1617764d59f3428c
|
3 |
size 103
|
alaroye/alaroyedb/index/{uuid_to_id_676957b6-5b85-4306-bd90-8fbd6a25173a.pkl → uuid_to_id_bec977cc-77ee-4019-b333-17858f6729e8.pkl}
RENAMED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 386
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:b4cffb2914c902a1345f3bfb78fb24d9e48fa14d8a2911e1bbd2d3a5e7a806c7
|
3 |
size 386
|
notebooks/0-alaroye-v0.0.0.ipynb
CHANGED
@@ -33,13 +33,6 @@
|
|
33 |
"execution_count": 1,
|
34 |
"metadata": {},
|
35 |
"outputs": [
|
36 |
-
{
|
37 |
-
"name": "stdout",
|
38 |
-
"output_type": "stream",
|
39 |
-
"text": [
|
40 |
-
"['/Users/abdulazeezoj/Desktop/Devspace/Play/alaroye', '/Users/abdulazeezoj/Desktop/Devspace/Play/alaroye/notebooks', '/Users/abdulazeezoj/.pyenv/versions/3.10.10/lib/python310.zip', '/Users/abdulazeezoj/.pyenv/versions/3.10.10/lib/python3.10', '/Users/abdulazeezoj/.pyenv/versions/3.10.10/lib/python3.10/lib-dynload', '', '/Users/abdulazeezoj/.local/share/virtualenvs/alaroye-YVTdCuTc/lib/python3.10/site-packages']\n"
|
41 |
-
]
|
42 |
-
},
|
43 |
{
|
44 |
"name": "stderr",
|
45 |
"output_type": "stream",
|
@@ -55,7 +48,6 @@
|
|
55 |
"\n",
|
56 |
"# Add the parent directory to the path\n",
|
57 |
"sys.path.insert(0, os.path.abspath(\"../\"))\n",
|
58 |
-
"print(sys.path)\n",
|
59 |
"\n",
|
60 |
"from alaroye.alaroye import Alaroye"
|
61 |
]
|
@@ -101,15 +93,16 @@
|
|
101 |
},
|
102 |
{
|
103 |
"cell_type": "code",
|
104 |
-
"execution_count":
|
105 |
"metadata": {},
|
106 |
"outputs": [
|
107 |
{
|
108 |
"name": "stdout",
|
109 |
"output_type": "stream",
|
110 |
"text": [
|
|
|
111 |
"Answer: \n",
|
112 |
-
"
|
113 |
"\n",
|
114 |
"\n",
|
115 |
"Source documents:\n",
|
@@ -120,115 +113,61 @@
|
|
120 |
"source": [
|
121 |
"# Test the model\n",
|
122 |
"query = \"Hallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut?\"\n",
|
123 |
-
"response = alaroye.ask(query, verbose=True)\n"
|
|
|
|
|
|
|
124 |
]
|
125 |
},
|
126 |
{
|
127 |
"cell_type": "code",
|
128 |
-
"execution_count":
|
129 |
"metadata": {},
|
130 |
"outputs": [
|
131 |
{
|
132 |
"name": "stdout",
|
133 |
"output_type": "stream",
|
134 |
"text": [
|
135 |
-
"Calibrating microphone...\n",
|
136 |
"Listening...\n",
|
137 |
-
"
|
138 |
-
"
|
139 |
-
]
|
140 |
-
}
|
141 |
-
],
|
142 |
-
"source": [
|
143 |
-
"# Test the model listening to the microphone\n",
|
144 |
-
"query = alaroye._listen()\n",
|
145 |
-
"print(query)\n",
|
146 |
-
"# response = alaroye.ask(query, verbose=True)"
|
147 |
-
]
|
148 |
-
},
|
149 |
-
{
|
150 |
-
"cell_type": "code",
|
151 |
-
"execution_count": 5,
|
152 |
-
"metadata": {},
|
153 |
-
"outputs": [
|
154 |
-
{
|
155 |
-
"name": "stdout",
|
156 |
-
"output_type": "stream",
|
157 |
-
"text": [
|
158 |
-
"Answer: \n",
|
159 |
-
"Omdena's terms and conditions state that applicants must be chosen and verified\n",
|
160 |
-
"before they can become collaborators, and that Omdena may collect and use\n",
|
161 |
-
"personal information for the purposes of administering the project. If there is\n",
|
162 |
-
"a conflict between the terms and conditions and the Code of Conduct, the last\n",
|
163 |
-
"appearing in the list will take precedence. Applicants must also represent,\n",
|
164 |
-
"warrant and undertake that their institution has authorized their entry into the\n",
|
165 |
-
"project, and must cease use of the project website and not participate if it is\n",
|
166 |
-
"contrary to their institution's policies. They may also be requested to sign a\n",
|
167 |
-
"Code of Conduct if chosen as a project participant.\n",
|
168 |
-
"\n",
|
169 |
-
"\n",
|
170 |
-
"Source documents:\n",
|
171 |
-
" - Omdena Terms and Conditions.docx\n"
|
172 |
-
]
|
173 |
-
}
|
174 |
-
],
|
175 |
-
"source": [
|
176 |
-
"# Test the model\n",
|
177 |
-
"query = \"Summarize the omdena terms and conditions.\"\n",
|
178 |
-
"response = alaroye.ask(query, verbose=True)"
|
179 |
-
]
|
180 |
-
},
|
181 |
-
{
|
182 |
-
"cell_type": "code",
|
183 |
-
"execution_count": 6,
|
184 |
-
"metadata": {},
|
185 |
-
"outputs": [
|
186 |
-
{
|
187 |
-
"name": "stdout",
|
188 |
-
"output_type": "stream",
|
189 |
-
"text": [
|
190 |
-
"Answer: \n",
|
191 |
-
"Omdena Top Talent projects are yet another frontier for people to collaborate on\n",
|
192 |
-
"solving AI-related problems. Here Omdena selects a smaller team (2-5 people)\n",
|
193 |
-
"from its top talents to work on projects. All members of top talent projects are\n",
|
194 |
-
"paid as per the market rates.\n",
|
195 |
-
"\n",
|
196 |
-
"\n",
|
197 |
-
"Source documents:\n",
|
198 |
-
" - Omdena Top Talent Projects Guidebook.docx\n"
|
199 |
-
]
|
200 |
-
}
|
201 |
-
],
|
202 |
-
"source": [
|
203 |
-
"# Test the model\n",
|
204 |
-
"query = \"What is a top talent project?\"\n",
|
205 |
-
"response = alaroye.ask(query, verbose=True)"
|
206 |
-
]
|
207 |
-
},
|
208 |
-
{
|
209 |
-
"cell_type": "code",
|
210 |
-
"execution_count": 7,
|
211 |
-
"metadata": {},
|
212 |
-
"outputs": [
|
213 |
-
{
|
214 |
-
"name": "stdout",
|
215 |
-
"output_type": "stream",
|
216 |
-
"text": [
|
217 |
-
"Answer: \n",
|
218 |
-
"To apply at Omdena School, you can visit the website www.omdena.com/school and\n",
|
219 |
-
"fill out the application form.\n",
|
220 |
-
"\n",
|
221 |
-
"\n",
|
222 |
-
"Source documents:\n",
|
223 |
-
" - Omdena Local Chapter Collaborator Onboarding.docx\n",
|
224 |
-
" - Omdena Terms and Conditions.docx\n"
|
225 |
]
|
226 |
}
|
227 |
],
|
228 |
"source": [
|
229 |
-
"
|
230 |
-
"
|
231 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
]
|
233 |
},
|
234 |
{
|
@@ -255,19 +194,19 @@
|
|
255 |
"name": "stderr",
|
256 |
"output_type": "stream",
|
257 |
"text": [
|
258 |
-
"/Users/abdulazeezoj/.local/share/virtualenvs/
|
259 |
" from .autonotebook import tqdm as notebook_tqdm\n"
|
260 |
]
|
261 |
}
|
262 |
],
|
263 |
"source": [
|
264 |
-
"import
|
265 |
"import sys\n",
|
266 |
"\n",
|
267 |
"# Add the parent directory to the path\n",
|
268 |
-
"sys.path.insert(0,
|
269 |
"\n",
|
270 |
-
"from
|
271 |
]
|
272 |
},
|
273 |
{
|
@@ -285,10 +224,10 @@
|
|
285 |
"outputs": [],
|
286 |
"source": [
|
287 |
"# Load Osanyin\n",
|
288 |
-
"
|
289 |
"\n",
|
290 |
"# Load the Osanyin\n",
|
291 |
-
"
|
292 |
]
|
293 |
},
|
294 |
{
|
@@ -308,26 +247,23 @@
|
|
308 |
"name": "stdout",
|
309 |
"output_type": "stream",
|
310 |
"text": [
|
|
|
311 |
"Answer: \n",
|
312 |
-
"
|
313 |
-
"via a form shared in Slack, getting approval to publish the article from the\n",
|
314 |
-
"project, submitting a draft of the article if the quality is good enough\n",
|
315 |
-
"according to the guidelines, having the Omdena team edit and suggest\n",
|
316 |
-
"improvements, and then submitting the manuscript according to the Omdena JAII\n",
|
317 |
-
"Template via the journal online submission link at https://omdena.com/JAII/.\n",
|
318 |
"\n",
|
319 |
"\n",
|
320 |
"Source documents:\n",
|
321 |
-
" -
|
322 |
-
" - Omdena Writers Guidelines.docx\n",
|
323 |
-
" - Omdena AI Researcher Guidebook.docx\n"
|
324 |
]
|
325 |
}
|
326 |
],
|
327 |
"source": [
|
328 |
"# Test the model\n",
|
329 |
-
"query = \"
|
330 |
-
"response =
|
|
|
|
|
|
|
331 |
]
|
332 |
},
|
333 |
{
|
@@ -339,130 +275,23 @@
|
|
339 |
"name": "stdout",
|
340 |
"output_type": "stream",
|
341 |
"text": [
|
|
|
342 |
"Answer: \n",
|
343 |
-
"
|
344 |
-
"\n",
|
345 |
-
"\n",
|
346 |
-
"Source documents:\n",
|
347 |
-
" - Omdena Local Chapter Collaborator Onboarding.docx\n",
|
348 |
-
" - Omdena Product Manager QA.docx\n"
|
349 |
-
]
|
350 |
-
}
|
351 |
-
],
|
352 |
-
"source": [
|
353 |
-
"# Test the model\n",
|
354 |
-
"query = \"Who is the CEO of omdena?\"\n",
|
355 |
-
"response = osanyin.ask(query, verbose=True)"
|
356 |
-
]
|
357 |
-
},
|
358 |
-
{
|
359 |
-
"cell_type": "code",
|
360 |
-
"execution_count": 5,
|
361 |
-
"metadata": {},
|
362 |
-
"outputs": [
|
363 |
-
{
|
364 |
-
"name": "stdout",
|
365 |
-
"output_type": "stream",
|
366 |
-
"text": [
|
367 |
-
"Answer: \n",
|
368 |
-
"Omdena's most unique feature is its focus on collaboration, compassion,\n",
|
369 |
-
"curiosity, and consciousness. This approach creates empowerment, builds trust,\n",
|
370 |
-
"gives access to data, generates diverse opinions, and spurs innovation, while\n",
|
371 |
-
"also making the solutions more ethical.\n",
|
372 |
-
"\n",
|
373 |
-
"\n",
|
374 |
-
"Source documents:\n",
|
375 |
-
" - Omdena Local Chapter Collaborator Onboarding.docx\n",
|
376 |
-
" - Omdena Local Chapter Lead Manual.docx\n"
|
377 |
-
]
|
378 |
-
}
|
379 |
-
],
|
380 |
-
"source": [
|
381 |
-
"# Test the model\n",
|
382 |
-
"query = \"What do you think is MOST unique about Omdena compared to other platforms which build AI (or other software) solutions? Maximum 3 points.\"\n",
|
383 |
-
"response = osanyin.ask(query, verbose=True)"
|
384 |
-
]
|
385 |
-
},
|
386 |
-
{
|
387 |
-
"cell_type": "code",
|
388 |
-
"execution_count": 6,
|
389 |
-
"metadata": {},
|
390 |
-
"outputs": [
|
391 |
-
{
|
392 |
-
"name": "stdout",
|
393 |
-
"output_type": "stream",
|
394 |
-
"text": [
|
395 |
-
"Answer: \n",
|
396 |
-
"Omdena is a global community of collaborators working together to solve social\n",
|
397 |
-
"and environmental issues through technology. We provide a platform for people\n",
|
398 |
-
"with the right skills and motivation to come together, learn, share and build\n",
|
399 |
-
"solutions. Our approach is to create a community-first innovation model where\n",
|
400 |
-
"members feel like a family.\n",
|
401 |
"\n",
|
402 |
"\n",
|
403 |
"Source documents:\n",
|
404 |
-
" -
|
405 |
-
" - Omdena Product Manager QA.docx\n"
|
406 |
-
]
|
407 |
-
}
|
408 |
-
],
|
409 |
-
"source": [
|
410 |
-
"# Test the model\n",
|
411 |
-
"query = \"Please write in maximum 3 sentences how you will explain Omdena to someone who has no idea about Omdena.\"\n",
|
412 |
-
"response = osanyin.ask(query, verbose=True)"
|
413 |
-
]
|
414 |
-
},
|
415 |
-
{
|
416 |
-
"cell_type": "code",
|
417 |
-
"execution_count": 7,
|
418 |
-
"metadata": {},
|
419 |
-
"outputs": [
|
420 |
-
{
|
421 |
-
"name": "stdout",
|
422 |
-
"output_type": "stream",
|
423 |
-
"text": [
|
424 |
-
"Answer: \n",
|
425 |
-
"I don't know, rephrase the question or contact Omdena support on slack or email\n",
|
426 |
-
"([email protected]).\n",
|
427 |
-
"\n",
|
428 |
-
"\n",
|
429 |
-
"Source documents:\n",
|
430 |
-
" - Omdena Product Manager Handbook.docx\n"
|
431 |
-
]
|
432 |
-
}
|
433 |
-
],
|
434 |
-
"source": [
|
435 |
-
"# Test the model\n",
|
436 |
-
"query = \"What is google?\"\n",
|
437 |
-
"response = osanyin.ask(query, verbose=True)"
|
438 |
-
]
|
439 |
-
},
|
440 |
-
{
|
441 |
-
"cell_type": "code",
|
442 |
-
"execution_count": 8,
|
443 |
-
"metadata": {},
|
444 |
-
"outputs": [
|
445 |
-
{
|
446 |
-
"name": "stdout",
|
447 |
-
"output_type": "stream",
|
448 |
-
"text": [
|
449 |
-
"Answer: \n",
|
450 |
-
"Machine learning is a subset of artificial intelligence (AI) that enables\n",
|
451 |
-
"computers to learn from data and experiences without being explicitly\n",
|
452 |
-
"programmed. It uses algorithms to find patterns in data and make decisions with\n",
|
453 |
-
"minimal human intervention.\n",
|
454 |
-
"\n",
|
455 |
-
"\n",
|
456 |
-
"Source documents:\n",
|
457 |
-
" - Omdena Local Chapter Lead Manual.docx\n",
|
458 |
-
" - Omdena AI Researcher Guidebook.docx\n"
|
459 |
]
|
460 |
}
|
461 |
],
|
462 |
"source": [
|
463 |
"# Test the model\n",
|
464 |
"query = \"What is machine learning?\"\n",
|
465 |
-
"response =
|
|
|
|
|
|
|
466 |
]
|
467 |
},
|
468 |
{
|
|
|
33 |
"execution_count": 1,
|
34 |
"metadata": {},
|
35 |
"outputs": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
{
|
37 |
"name": "stderr",
|
38 |
"output_type": "stream",
|
|
|
48 |
"\n",
|
49 |
"# Add the parent directory to the path\n",
|
50 |
"sys.path.insert(0, os.path.abspath(\"../\"))\n",
|
|
|
51 |
"\n",
|
52 |
"from alaroye.alaroye import Alaroye"
|
53 |
]
|
|
|
93 |
},
|
94 |
{
|
95 |
"cell_type": "code",
|
96 |
+
"execution_count": 4,
|
97 |
"metadata": {},
|
98 |
"outputs": [
|
99 |
{
|
100 |
"name": "stdout",
|
101 |
"output_type": "stream",
|
102 |
"text": [
|
103 |
+
"{'query': 'Hallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut?', 'result': 'Mir geht es gut, danke der Nachfrage.', 'source_documents': [Document(page_content='J:\\nOk. Sie haben das so gut vorgetragen und sie sind sich auch so sicher. Ich habe ein gutes Gefühl bei ihnen. Seien Sie doch so gut und schicken Sie mir die Frau Müller, damit wir uns da abstimmen könnten. Wenn es schnell funktioniert, dann ich das prima. Wir beide haben uns auf eine zwei-drittel Stelle geeinigt. Sie haben da meine Zusage. Sie würden ja auch nochmal etwas mehr machen bis das Phänomen nicht an Frau Müller übergeben wurde.\\n\\nS:\\nJa, klar. Aber ich denke das wird mit Frau Müller funktionieren. Wie gesagt ich muss da jetzt auch etwas an mich denken. \\n\\nJ:\\nIch wünsche ihnen alles Gute und die wir sehen uns ja weiterhin.\\nS:\\nBesten Dank. Genau, die Zusammenarbeit bleib weiterhin bestehen. Auf Wiedersehen.', metadata={'source': '../docs/state_of_the_union.txt'}), Document(page_content='Rollenspiel 5 – \\nThema: Stundenreduktion\\nJ: \\nHallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut? \\nS:\\nAlles gut so weit. Ich habe ein ganz wichtiges Anliegen mit ihnen zu besprechen. Ihnen ist bewusst, dass eine sehr geschätzte Kollegin bin und auch sehr oft eingesprungen bin, wenn es zu Krankheitsausfällen kam.\\nJ:\\nDas müssen Sie mir nicht sagen. Sie sind mein bestes Pferd im Stall. Ich bin so glücklich, wenn ich sie sehe. Sie strahlen immer so Ich höre immer von den Eltern und von den Lehrern und den anderen Kollegen immer nur positives. Es ist bemerkenswert, wie sie sich die letzten drei Jahre an der Schule faktisch unersetzlich gemacht haben. Einfach nur traumhaft. Bei ihnen merke ich auch sie tragen das einfach so mit. Bei ihnen merkt man einfach richtig, dass sie mit Freude Lehrerin sind. Auch ihrer Vertrauenslehrer-Tätigkeit ist ganz große Klasse.\\nS:\\nDas freut mich sehr von ihnen zu hören, deshalb fällt es mir auch etwas schwer diese Bitte zu äußern. Ich möchte erstmal sagen, dass ich mich sehr wohl an der Schule fühle und auch das Kollegium und ihre Arbeit sehr schätze. Ich muss dennoch mit ihnen über eine Reduzierung über meine Arbeitsstelle sprechen. Sie wissen ja, dass ich mich in den letzten drei Jahren sehr viel weitergebildet habe und das ich momentan eine Therapie und Begleitausbildung für den Schuldienst habe. Das hatte ich ihnen schon einmal erzählt\\nJ:\\nJa, stimmt. Sie hatten mich schon einmal drauf angesprochen. \\nS:\\nGenau, Sie wissen ja auch, dass ich Förderschullehrkraft bin und das es für unsere Arbeit unabdinglich ist, sich weiterzubilden und neue Methoden zu erfassen und dieser Grund beansprucht mich sehr, weil wir in der Prüfungsphase sind und deshalb müsste ich meine Arbeitszeit auf fünfzig Prozent reduzieren.', metadata={'source': '../docs/state_of_the_union.txt'}), Document(page_content='J:\\nEs gibt noch den Herrn Thomas und die Frau Simones. Da hatte ich wirklich überlegt, sie zu bitten mal langsamer zu machen. Die laufen hier mit Augenringen rum. Frau Simones hat zudem noch ein behindertes Kind und Herr Thomas pflegt noch seine kranken Eltern. Die stehen beide kurz vor dem Burn-Out – also beide. Lieber möchte ich die noch irgendwie retten. Also ich finde ihren Vorschlag mit dem Inklusionshund super. Nur momentan schein alles so „Land unter“ zu sein. Ich möchte ja auch nicht, dass die beiden Kollegen leiden.\\nS:\\nJa, natürlich. Wie sie wissen, bin ich ja schon sehr oft für die beiden Kollegen eingesprungen und bin auch wirklich engagiert. Leider muss ich in diesem Gespräch an mich denken und mich an dieser Stelle von der Problematik abgrenzen. Für die Schule bin ich eine wichtige Ressource. Wenn wir sagen, wir machen diese befristete Stellenreduktion und ich komme ja dann auch wieder in Vollzeit zurück. Einen Kompromiss habe ich ihnen ja auch bereits angeboten. Von fünfzig Prozent auf zwei-drittel und der Beginn ist erst nach den Sommerferien.', metadata={'source': '../docs/state_of_the_union.txt'})]}\n",
|
104 |
"Answer: \n",
|
105 |
+
"Mir geht es gut, danke der Nachfrage.\n",
|
106 |
"\n",
|
107 |
"\n",
|
108 |
"Source documents:\n",
|
|
|
113 |
"source": [
|
114 |
"# Test the model\n",
|
115 |
"query = \"Hallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut?\"\n",
|
116 |
+
"response = alaroye.ask(query, verbose=True)\n",
|
117 |
+
"\n",
|
118 |
+
"# Speak the response\n",
|
119 |
+
"alaroye._speak(response[\"answer\"])\n"
|
120 |
]
|
121 |
},
|
122 |
{
|
123 |
"cell_type": "code",
|
124 |
+
"execution_count": 1,
|
125 |
"metadata": {},
|
126 |
"outputs": [
|
127 |
{
|
128 |
"name": "stdout",
|
129 |
"output_type": "stream",
|
130 |
"text": [
|
|
|
131 |
"Listening...\n",
|
132 |
+
"Recognized Text: guten Morgen wie geht es dir\n",
|
133 |
+
"guten Morgen wie geht es dir\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
]
|
135 |
}
|
136 |
],
|
137 |
"source": [
|
138 |
+
"import speech_recognition as sr\n",
|
139 |
+
"\n",
|
140 |
+
"def listen(stop_word=\"stop\"):\n",
|
141 |
+
" # Create a recognizer object\n",
|
142 |
+
" recognizer = sr.Recognizer()\n",
|
143 |
+
"\n",
|
144 |
+
" # Create a microphone object\n",
|
145 |
+
" microphone = sr.Microphone()\n",
|
146 |
+
"\n",
|
147 |
+
" # Adjust microphone settings if needed\n",
|
148 |
+
" # microphone.energy_threshold = 1000\n",
|
149 |
+
" # microphone.chunk_size = 1024\n",
|
150 |
+
"\n",
|
151 |
+
" with microphone as source:\n",
|
152 |
+
" print(\"Listening...\")\n",
|
153 |
+
" audio = recognizer.listen(source)\n",
|
154 |
+
"\n",
|
155 |
+
" try:\n",
|
156 |
+
" # Use the German language model for speech recognition\n",
|
157 |
+
" text = recognizer.recognize_google(audio, language=\"de-DE\")\n",
|
158 |
+
" print(\"Recognized Text:\", text)\n",
|
159 |
+
" if text.lower() == stop_word:\n",
|
160 |
+
" return None\n",
|
161 |
+
" return text\n",
|
162 |
+
" except sr.UnknownValueError:\n",
|
163 |
+
" print(\"Could not understand audio\")\n",
|
164 |
+
" except sr.RequestError as e:\n",
|
165 |
+
" print(\"Error: \", str(e))\n",
|
166 |
+
"\n",
|
167 |
+
" return None\n",
|
168 |
+
"\n",
|
169 |
+
"spoken_text = listen(stop_word=\"exit\")\n",
|
170 |
+
"print(spoken_text)"
|
171 |
]
|
172 |
},
|
173 |
{
|
|
|
194 |
"name": "stderr",
|
195 |
"output_type": "stream",
|
196 |
"text": [
|
197 |
+
"/Users/abdulazeezoj/.local/share/virtualenvs/alaroye-YVTdCuTc/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
198 |
" from .autonotebook import tqdm as notebook_tqdm\n"
|
199 |
]
|
200 |
}
|
201 |
],
|
202 |
"source": [
|
203 |
+
"import os\n",
|
204 |
"import sys\n",
|
205 |
"\n",
|
206 |
"# Add the parent directory to the path\n",
|
207 |
+
"sys.path.insert(0, os.path.abspath(\"../\"))\n",
|
208 |
"\n",
|
209 |
+
"from alaroye.alaroye import Alaroye"
|
210 |
]
|
211 |
},
|
212 |
{
|
|
|
224 |
"outputs": [],
|
225 |
"source": [
|
226 |
"# Load Osanyin\n",
|
227 |
+
"alaroye = Alaroye(version=\"v0.0.0\")\n",
|
228 |
"\n",
|
229 |
"# Load the Osanyin\n",
|
230 |
+
"alaroye.load()"
|
231 |
]
|
232 |
},
|
233 |
{
|
|
|
247 |
"name": "stdout",
|
248 |
"output_type": "stream",
|
249 |
"text": [
|
250 |
+
"{'query': 'Hallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut?', 'result': 'Mir geht es gut, danke der Nachfrage.', 'source_documents': [Document(page_content='J:\\nOk. Sie haben das so gut vorgetragen und sie sind sich auch so sicher. Ich habe ein gutes Gefühl bei ihnen. Seien Sie doch so gut und schicken Sie mir die Frau Müller, damit wir uns da abstimmen könnten. Wenn es schnell funktioniert, dann ich das prima. Wir beide haben uns auf eine zwei-drittel Stelle geeinigt. Sie haben da meine Zusage. Sie würden ja auch nochmal etwas mehr machen bis das Phänomen nicht an Frau Müller übergeben wurde.\\n\\nS:\\nJa, klar. Aber ich denke das wird mit Frau Müller funktionieren. Wie gesagt ich muss da jetzt auch etwas an mich denken. \\n\\nJ:\\nIch wünsche ihnen alles Gute und die wir sehen uns ja weiterhin.\\nS:\\nBesten Dank. Genau, die Zusammenarbeit bleib weiterhin bestehen. Auf Wiedersehen.', metadata={'source': '../docs/state_of_the_union.txt'}), Document(page_content='Rollenspiel 5 – \\nThema: Stundenreduktion\\nJ: \\nHallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut? \\nS:\\nAlles gut so weit. Ich habe ein ganz wichtiges Anliegen mit ihnen zu besprechen. Ihnen ist bewusst, dass eine sehr geschätzte Kollegin bin und auch sehr oft eingesprungen bin, wenn es zu Krankheitsausfällen kam.\\nJ:\\nDas müssen Sie mir nicht sagen. Sie sind mein bestes Pferd im Stall. Ich bin so glücklich, wenn ich sie sehe. Sie strahlen immer so Ich höre immer von den Eltern und von den Lehrern und den anderen Kollegen immer nur positives. Es ist bemerkenswert, wie sie sich die letzten drei Jahre an der Schule faktisch unersetzlich gemacht haben. Einfach nur traumhaft. Bei ihnen merke ich auch sie tragen das einfach so mit. Bei ihnen merkt man einfach richtig, dass sie mit Freude Lehrerin sind. Auch ihrer Vertrauenslehrer-Tätigkeit ist ganz große Klasse.\\nS:\\nDas freut mich sehr von ihnen zu hören, deshalb fällt es mir auch etwas schwer diese Bitte zu äußern. Ich möchte erstmal sagen, dass ich mich sehr wohl an der Schule fühle und auch das Kollegium und ihre Arbeit sehr schätze. Ich muss dennoch mit ihnen über eine Reduzierung über meine Arbeitsstelle sprechen. Sie wissen ja, dass ich mich in den letzten drei Jahren sehr viel weitergebildet habe und das ich momentan eine Therapie und Begleitausbildung für den Schuldienst habe. Das hatte ich ihnen schon einmal erzählt\\nJ:\\nJa, stimmt. Sie hatten mich schon einmal drauf angesprochen. \\nS:\\nGenau, Sie wissen ja auch, dass ich Förderschullehrkraft bin und das es für unsere Arbeit unabdinglich ist, sich weiterzubilden und neue Methoden zu erfassen und dieser Grund beansprucht mich sehr, weil wir in der Prüfungsphase sind und deshalb müsste ich meine Arbeitszeit auf fünfzig Prozent reduzieren.', metadata={'source': '../docs/state_of_the_union.txt'}), Document(page_content='J:\\nEs gibt noch den Herrn Thomas und die Frau Simones. Da hatte ich wirklich überlegt, sie zu bitten mal langsamer zu machen. Die laufen hier mit Augenringen rum. Frau Simones hat zudem noch ein behindertes Kind und Herr Thomas pflegt noch seine kranken Eltern. Die stehen beide kurz vor dem Burn-Out – also beide. Lieber möchte ich die noch irgendwie retten. Also ich finde ihren Vorschlag mit dem Inklusionshund super. Nur momentan schein alles so „Land unter“ zu sein. Ich möchte ja auch nicht, dass die beiden Kollegen leiden.\\nS:\\nJa, natürlich. Wie sie wissen, bin ich ja schon sehr oft für die beiden Kollegen eingesprungen und bin auch wirklich engagiert. Leider muss ich in diesem Gespräch an mich denken und mich an dieser Stelle von der Problematik abgrenzen. Für die Schule bin ich eine wichtige Ressource. Wenn wir sagen, wir machen diese befristete Stellenreduktion und ich komme ja dann auch wieder in Vollzeit zurück. Einen Kompromiss habe ich ihnen ja auch bereits angeboten. Von fünfzig Prozent auf zwei-drittel und der Beginn ist erst nach den Sommerferien.', metadata={'source': '../docs/state_of_the_union.txt'})]}\n",
|
251 |
"Answer: \n",
|
252 |
+
"Mir geht es gut, danke der Nachfrage.\n",
|
|
|
|
|
|
|
|
|
|
|
253 |
"\n",
|
254 |
"\n",
|
255 |
"Source documents:\n",
|
256 |
+
" - state_of_the_union.txt\n"
|
|
|
|
|
257 |
]
|
258 |
}
|
259 |
],
|
260 |
"source": [
|
261 |
"# Test the model\n",
|
262 |
+
"query = \"Hallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut?\"\n",
|
263 |
+
"response = alaroye.ask(query, verbose=True)\n",
|
264 |
+
"\n",
|
265 |
+
"# Speak the response\n",
|
266 |
+
"alaroye._speak(response[\"answer\"])\n"
|
267 |
]
|
268 |
},
|
269 |
{
|
|
|
275 |
"name": "stdout",
|
276 |
"output_type": "stream",
|
277 |
"text": [
|
278 |
+
"{'query': 'What is machine learning?', 'result': 'Ich weiß es nicht.', 'source_documents': [Document(page_content='J: \\nDas sagen sie aber etwas. Sie wissen doch, dass wir nur mit zwei-drittel der Belegschaft aktuell auskommen müssen.\\n\\n\\nS:\\nJa, dies tut mir auch sehr leid damit an sie herantreten zu müssen. Aber ich glaube, dass dies für meine weitere Arbeit an der Schule sehr wichtig ist. Es ist auch nicht für immer. \\nJ:\\nWollen Sie weiter Lehrerin sein oder Hundetrainer werden?\\nS:\\nIch möchte in jedem Fall weiterhin Lehrerin bleiben und diesen Hund im Auftrag der Bildung einsetzten. Das ist gerade für unsere Inklusionskinder von großer Bedeutung. Studien belegen, dass die Arbeit mit einem Therapiehund sich positiv auf die Leistungen unserer Inklusionsschüler auswirken. Dieser Aspekt würde sich ebenfalls positiv auf die Qualitätssicherung unserer Schule auswirken. \\nJ:\\nJa, aber fünfzig ist wirklich hart. Das bedeutet ja auch für Sie weniger Gehalt. Haben Sie sich darüber Gedanken gemacht? Kommen Sie damit klar?', metadata={'source': '../docs/state_of_the_union.txt'}), Document(page_content='Rollenspiel 7\\nJ: trained actor\\nS: student teacher\\nThema: Studienfahrt\\nJ: \\nHallo Frau NAME . \\nS:\\nHallo.\\nJ:\\nJa, ich wollte mal mit ihnen sprechen. \\nS:\\nJa, worum geht es denn?\\nJ:\\nUnd zwar haben wir ja bald diese Studienfahrt, nicht wahr? Im Fach Geschichte haben wir ja gesagt, dass wir unsere Projekte berücksichtigen sollen. Also die Simone, Anna-Lena, Martina und ich haben beispielsweise das Thema und als Geschichts-Projekt „Heiliges Römisches Reich“. Dann hatten wir uns überlegt, dass es zutreffend wäre nach Nürnberg zu fahren, weil dort ja diese Burg gibt. Der Großteil der Klasse will aber irgendwie nach Berlin. Natürlich gibt es dort auch die Gedächtniskirche, aber die argumentieren eben wie folgt: „Ey lass mal nach Berlin fahren, ist voll cool, Party machen abends. Wenn es dann zu einer Abstimmung kommt, dann gewinnen die, weil es dann zwanzig zu zehn ist. Dann fahren wir nach Berlin und davon haben wir überhaupt nichts. Deshalb wollten wir Sie fragen, ob Sie uns da nicht unterstützen können. Sie haben ja auch gesagt, dass Nürnberg voll cool wäre. \\nS:\\nAlso ich verstehe sehr wohl dein Anliegen. Das ist verständlich, wenn ihr da ein Referat drüber haltet, dass es mit Nürnberg auf jeden Fall passt. Ich finde die Stadt natürlich auch toll. Finde allerdings, dass jede Stadt eigene Vorteile hat. Das Gespräch, was wir hier gerade führen, hat hier keinen Platz. Ich habe dafür extra die Moderationssitzung erstellt und ich bin da auch nur die Moderatorin. Ihr seid alt genug und ich lege die Verantwortung in eure Hände gemeinsam eine Entscheidung zu treffen. Das ist eine demokratische Abstimmung. Es heißt, es soll fair ablaufen. Ich verantworte nicht, wo es hingeht, sondern ihr. Es ist auch sehr lieb von dir, dass du versuchst mich als Geschichtslehrerin zu überzeugen, aber das kann ich leider nicht entscheiden. Da musst du die Argumente, die du hast nächste Woche in der Sitzung aufführen. \\nJ:\\nAber wie machen sie das denn mit der Moderation. Also gibt es da nicht eine Möglichkeit, dass sie sagen „Ähm ok“ also wenigstens, dass Sie darauf aufmerksam machen, dass es eine Studienfahrt und keine Spaßfahrt ist.', metadata={'source': '../docs/state_of_the_union.txt'}), Document(page_content='Rollenspiel 5 – \\nThema: Stundenreduktion\\nJ: \\nHallo, wie geht es Ihnen? Gut, sehen sie aus. Geht es ihnen gut? \\nS:\\nAlles gut so weit. Ich habe ein ganz wichtiges Anliegen mit ihnen zu besprechen. Ihnen ist bewusst, dass eine sehr geschätzte Kollegin bin und auch sehr oft eingesprungen bin, wenn es zu Krankheitsausfällen kam.\\nJ:\\nDas müssen Sie mir nicht sagen. Sie sind mein bestes Pferd im Stall. Ich bin so glücklich, wenn ich sie sehe. Sie strahlen immer so Ich höre immer von den Eltern und von den Lehrern und den anderen Kollegen immer nur positives. Es ist bemerkenswert, wie sie sich die letzten drei Jahre an der Schule faktisch unersetzlich gemacht haben. Einfach nur traumhaft. Bei ihnen merke ich auch sie tragen das einfach so mit. Bei ihnen merkt man einfach richtig, dass sie mit Freude Lehrerin sind. Auch ihrer Vertrauenslehrer-Tätigkeit ist ganz große Klasse.\\nS:\\nDas freut mich sehr von ihnen zu hören, deshalb fällt es mir auch etwas schwer diese Bitte zu äußern. Ich möchte erstmal sagen, dass ich mich sehr wohl an der Schule fühle und auch das Kollegium und ihre Arbeit sehr schätze. Ich muss dennoch mit ihnen über eine Reduzierung über meine Arbeitsstelle sprechen. Sie wissen ja, dass ich mich in den letzten drei Jahren sehr viel weitergebildet habe und das ich momentan eine Therapie und Begleitausbildung für den Schuldienst habe. Das hatte ich ihnen schon einmal erzählt\\nJ:\\nJa, stimmt. Sie hatten mich schon einmal drauf angesprochen. \\nS:\\nGenau, Sie wissen ja auch, dass ich Förderschullehrkraft bin und das es für unsere Arbeit unabdinglich ist, sich weiterzubilden und neue Methoden zu erfassen und dieser Grund beansprucht mich sehr, weil wir in der Prüfungsphase sind und deshalb müsste ich meine Arbeitszeit auf fünfzig Prozent reduzieren.', metadata={'source': '../docs/state_of_the_union.txt'})]}\n",
|
279 |
"Answer: \n",
|
280 |
+
"Ich weiß es nicht.\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281 |
"\n",
|
282 |
"\n",
|
283 |
"Source documents:\n",
|
284 |
+
" - state_of_the_union.txt\n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
285 |
]
|
286 |
}
|
287 |
],
|
288 |
"source": [
|
289 |
"# Test the model\n",
|
290 |
"query = \"What is machine learning?\"\n",
|
291 |
+
"response = alaroye.ask(query, verbose=True)\n",
|
292 |
+
"\n",
|
293 |
+
"# Speak the response\n",
|
294 |
+
"alaroye._speak(response[\"answer\"])"
|
295 |
]
|
296 |
},
|
297 |
{
|