Невозможно разделить текст, полученный в качестве POST-запроса в django
Я столкнулся со странной ошибкой. Я пытаюсь разделить текст, отправленный через форму в django. Вот мой код в django
from transformers import AutoTokenizer
from langchain.text_splitter import CharacterTextSplitter
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased-finetuned-sst-2-english" )
text_splitter = CharacterTextSplitter.from_huggingface_tokenizer(
tokenizer, chunk_size=256, chunk_overlap=0
)
def home(request):
if request.method == 'POST':
input_text = request.POST['input'] # Get input text from the POST request
print("input_text",type(input_text))
splitted_text = text_splitter.split_text(str(input_text))
print("splitted_text_length_outside",len(splitted_text))
Длина всегда равна 1, что означает, что текст не разделяется. Я проверил, что получаю текст из html-формы и тип текста - str.
Но когда я использую тот же код вне django, например, в jupyter notebook, он работает хорошо и разделяет текст.
В django я попробовал input_text.split()
и это сработало. Но я не понимаю, почему не работает разделитель текста langchain.
def home(input_text):
splitted_text = text_splitter.split_text(input_text)
print("splitted_text_length_outside",len(splitted_text))
Вот моя html форма
<form action="{% url 'home' %}" method="post" id="myForm">
{% csrf_token %}
<textarea name="input" id="input" rows="4" cols="50"></textarea>
<br>
<button type="submit">Submit</button>
</form>
Вот мой код ajax
$("#myForm").submit(function(event) {
event.preventDefault();
let formData = $(this).serialize();
$.ajax({
"url": "/",
"type": "POST",
"data": formData,
"success": function(response) {
console.log("success");
},
"error": function(error) {
console.log("error",error);
}
});
});