File size: 7,585 Bytes
29839a8
 
 
 
 
 
08a18f8
23acbef
 
 
ecefa48
 
 
 
 
 
 
 
 
 
 
 
 
3e15993
 
 
 
 
 
 
 
 
 
 
 
 
de14bd5
 
 
 
 
 
 
 
 
 
 
 
 
23acbef
 
 
 
 
 
 
 
 
 
08a18f8
 
 
 
 
 
 
 
 
 
 
 
ceb1437
 
 
 
 
 
 
 
 
 
 
 
 
12975e8
 
 
 
 
 
 
 
 
 
 
 
 
29839a8
 
 
 
 
 
 
1bea63d
 
 
 
 
 
 
 
 
 
 
 
 
bd18196
 
 
 
 
 
 
 
 
 
 
 
 
bdddf00
 
 
 
 
 
 
 
 
 
 
 
 
9ff4846
18c0acd
 
 
 
c39d1b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18c0acd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.11
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.11
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.11
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.11
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.12
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.12
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.12
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.12
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.12
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.12
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---
---
title: LinguAIcoach
emoji: πŸ’¬
colorFrom: blue
colorTo: red
sdk: streamlit
sdk_version: 1.31.1
python_version: 3.12
app_file: src/main.py
pinned: true
tags: [academic, english, learning, gpt, multimodal, whisper, gpt4-vision, dall-e, chatbot]
license: cc-by-nd-4.0
---

# LinguAIcoach

<img src="./docs/images/header.png" alt="LingAIcoach" width="1000" style="display: block; margin: 0 auto"/>

You can access to the App through Streamlit share: [LinguAIcoach Web](https://linguaicoach.streamlit.app/) or through Huggingface Spaces: [LinguAIcoach](https://huggingface.co/spaces/alvaroalon2/linguAIcoach)

## Table of Contents

- [Recent Activities](#recent-activities)
- [Description](#description)
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)
- [Authors](#authors)
- [Next Steps](#next-steps)

## Recent Activities
- Parameterized models, now is possible to make use of new OpenAI models like gpt-4o.

## Description
LinguAIcoach is a project that helps to improve your English with the assistance of AI. It provides tools for practicing, testing, and learning English using AI chatbots and other language processing technologies. The LinguAIcoach project utilizes DALL-E, GPT-4V, Whisper and GPT models to enhance English language learning in a multimodal way. The project offers a variety of exercises to enhance your English skills. The exercises cover different types of exams.

At this moment, First Cambridge Exam (FCE) has been the reference exam used for the proposed exercises. In particular, speaking exercises have been adapted to a chatbot environment.
- B2 - FCE: Speaking QA: This covers questions answering exercises of Speaking in B2 - FCE.
- B2 - FCE: Speaking Img Desc: This covers image description exercises in B2 - FCE.
- B2 - FCE: Speaking Opinion: This covers opinion question exercises in B2 - FCE.

Each exercise is designed to help you practice and improve your English skills in specific areas. The exercises are based on real-life exam questions and provide a hands-on experience to help you improve your English proficiency.

The input can be inserted either through text input or voice input which will be processed with Whisper to get its transcription.

After answering, the response will be evaluated based on its grammar syntaxis and complexity and the following fields will be returned:
- Evaluation: This field summarizes the evaluation of the response. This is where it is detailed how well the response matches the expected criteria.
- Tips: Provides tips about complexity and detailed mistakes correction. This is where you can give guidance on how to improve responses or correct mistakes.
- Example: This field provides an example of a response. It showcases how an ideal response should look like.

### Question Answering Exercises Example
<img src="./docs/screenshots/app_screenshot_qa_init.png" alt="QA Exercise" width="500" style="display: block; margin: 0 auto"/>

### Image Description Exercises Example
<img src="./docs/screenshots/app_screenshot_1.png" alt="Img Desc Exercise" width="500" style="display: block; margin: 0 auto"/>

## Local Installation
To install this project, you will need to have Python 3.11, Poetry and poethepoet installed. Then, you can clone the repository and run `poe setup` to install the required dependencies.

If you would like to use langsmith with this project I recommend you to create a .env file with the following values:
```
LANGCHAIN_API_KEY="your-langsmith-api-key"
LANGCHAIN_TRACING_V2=true
LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
LANGCHAIN_PROJECT="your-project-name-from-langsmith"
OPENAI_API_KEY="your-openai-api-key"
```

After installing the project, you can run the main application using the command `poe start`. This will start the Streamlit application, which provides a user interface for interacting with the AI English teacher.

## Usage
You will need to provide an [OpenAI API Key](https://platform.openai.com/account/api-keys) in the interface or in the .env file like explained above.

Exercises are defined in exam_guides/lessons.json file. The amount of exercises will be expanded in future releases. The .txt files in exam_guides are examples of what it is expected in each kind of exercise. In future releases this will be used for generating examples for reference in Langchain.

## Contributing
If you would like to contribute to this project, please fork the repository, make your changes, and submit a pull request. Your contributions are welcome!

## License
This project is licensed under the CC-BY-NC-ND-4.0 license. See the [LICENSE.md](LICENSE.md) file for more details.

## Authors
- [alvaroalon2](https://github.com/alvaroalon2)

## Next Steps
- New kind of exercises.
- Guide content generation using examples extracted from real exams.
- Testing