abdulazeezoj commited on
Commit
d513ed6
1 Parent(s): 6d81cbc

update model

Browse files
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": "13faed2031f024c5c36c5227343c2e72f70f9d9577e9d3bd400b2d5ef3a78359"
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": "python_full_version >= '3.8.1' and python_version < '4.0'",
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
- # 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,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.1) # type: ignore
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__), "Alaroyedb")
50
  self.prompt_template = """
51
- Use the following pieces of context to answer the question delimited <<< >>>. If you don't know the answer, \
52
- just say `I don't know, rephrase the question or contect omdena support on slack or email (contact@omdena.com)` \
 
 
 
 
 
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
- # def _listen(self) -> str:
167
- # """
168
- # Listen to the user.
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
- # def _speak(self, text: str) -> None:
198
- # """
199
- # Speak to the user.
 
 
200
 
201
- # Parameters
202
- # ----------
203
- # text : str
204
- # The text to speak to the user.
205
- # """
206
 
207
- # # Generate speech using gTTS
208
- # tts = gTTS(text=text, lang="de")
 
209
 
210
- # # Write the speech to bytes
211
- # mp3_fp = BytesIO()
212
- # tts.write_to_fp(mp3_fp)
213
 
214
- # # Play the speech
215
- # stream = BytesIO(mp3_fp.read())
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:ba8f8c7ce3183dcece433278eda253ac414602bbf8fc056492f88fcb0f72dc41
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:4c63ddf58e8724ec72057ac7ff59a8247bd51e0053e37fadc1c33c72e5cce719
3
- size 133228
 
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:4c9b3099292e9a7715bec1415f43620f076b4815fd3b462df83cf7302b9a3030
3
- size 350
 
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:05dacfe0ea852273fa006eba491d99cce965b33f328da42cb36befcf4aa99948
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:2c6688716b16bb645997c219107f1a6f13c20d5ea26fe4165014c682b08f29b5
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:d5652d13e72f5f9fbf7d9d28dba4f216c927b0c28cd6722c8061f31d549d6d3e
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": 3,
105
  "metadata": {},
106
  "outputs": [
107
  {
108
  "name": "stdout",
109
  "output_type": "stream",
110
  "text": [
 
111
  "Answer: \n",
112
- "Alles gut so weit. Ich habe ein ganz wichtiges Anliegen mit ihnen zu besprechen.\n",
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": 4,
129
  "metadata": {},
130
  "outputs": [
131
  {
132
  "name": "stdout",
133
  "output_type": "stream",
134
  "text": [
135
- "Calibrating microphone...\n",
136
  "Listening...\n",
137
- "Recognizing...\n",
138
- "hello\n"
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
- "# Test the model\n",
230
- "query = \"how to apply at Omdenaschool\"\n",
231
- "response = alaroye.ask(query, verbose=True)"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
232
  ]
233
  },
234
  {
@@ -255,19 +194,19 @@
255
  "name": "stderr",
256
  "output_type": "stream",
257
  "text": [
258
- "/Users/abdulazeezoj/.local/share/virtualenvs/omdenabot-m2zzZ4nN/lib/python3.11/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",
259
  " from .autonotebook import tqdm as notebook_tqdm\n"
260
  ]
261
  }
262
  ],
263
  "source": [
264
- "import pathlib\n",
265
  "import sys\n",
266
  "\n",
267
  "# Add the parent directory to the path\n",
268
- "sys.path.insert(0, str(pathlib.Path(__file__).parent.parent))\n",
269
  "\n",
270
- "from osanyin.osanyin import Osanyin"
271
  ]
272
  },
273
  {
@@ -285,10 +224,10 @@
285
  "outputs": [],
286
  "source": [
287
  "# Load Osanyin\n",
288
- "osanyin = Osanyin(version=\"v0.0.0\")\n",
289
  "\n",
290
  "# Load the Osanyin\n",
291
- "osanyin.load()"
292
  ]
293
  },
294
  {
@@ -308,26 +247,23 @@
308
  "name": "stdout",
309
  "output_type": "stream",
310
  "text": [
 
311
  "Answer: \n",
312
- "The publishing process for Omdena writers involves submitting an article idea\n",
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
- " - Omdena Local Chapter Lead Manual.docx\n",
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 = \"What is the publishing process for omdena writers?\"\n",
330
- "response = osanyin.ask(query, verbose=True)"
 
 
 
331
  ]
332
  },
333
  {
@@ -339,130 +275,23 @@
339
  "name": "stdout",
340
  "output_type": "stream",
341
  "text": [
 
342
  "Answer: \n",
343
- "Rudradeb Mitra is the Founder & CEO of Omdena.\n",
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
- " - Omdena Local Chapter Collaborator Onboarding.docx\n",
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 = osanyin.ask(query, verbose=True)"
 
 
 
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
  {