Bug with Python library : language_tool_python

I don’t understand why I cannot use language_tool_python with Streamlit.

The first code works in my IDE

import language_tool_python
tl = language_tool_python.LanguageTool('en-US')

txt = "good mooorning sirr and medam my namee vincent i am from amerecia !"
m = tl.check(txt)
print(len(m))

The second code fails with streamlit

import streamlit as st
import language_tool_python


@st.cache(allow_output_mutation=True)
def get_model():
    tool = language_tool_python.LanguageTool('en-US')
    return tool


tool = get_model()

with st.form(key='my_form'):
    prompt = st.text_area(label='Enter sentence', value=" ")
    submit_button = st.form_submit_button(label='Submit')
    if submit_button:
        m = tool.correct(prompt)
        st.write(m)

If someone can help me?

Hi @Vincent_Terrasi , thanks for submitting this issue! I was able to reproduce what you were talking about. It looks like what is happening is that streamlit is trying to use localhost 8501 and same with when the language_tool_python is trying to download. As a result, there is a problem.

Maybe you can try running looking at this forum issue and running streamlit with a different port!

The main answer that is relevant to you I will post here:
There is a param called server.port. So you can do something like: streamlit run streamlit_app.py --server.port 8080

Here is the link if you want to learn more: How to set a different port number for different streamlit program in a same machine?

3 Likes

Thanks a lot for your help.

1 Like