mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-08-10 19:18:57 +08:00
Fix: value too long error for chat name (#7697)
### What problem does this PR solve? Hello, when I input a very long line in the chat input box, it will fail with following error: ``` 2025-05-17 16:11:26,004 ERROR 182558 value too long for type character varying(255) Traceback (most recent call last): File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 3291, in execute_sql cursor.execute(sql, params or ()) psycopg2.errors.StringDataRightTruncation: value too long for type character varying(255) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/var/home/sfc/Projects/ragflow/api/apps/conversation_app.py", line 68, in set_conversation ConversationService.save(**conv) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 3128, in inner return fn(*args, **kwargs) File "/var/home/sfc/Projects/ragflow/api/db/services/common_service.py", line 145, in save return cls.save_n(**kwargs) File "/var/home/sfc/Projects/ragflow/api/db/services/common_service.py", line 139, in save_n sample_obj = cls.model(**kwargs).save(force_insert=True) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 6923, in save pk = self.insert(**field_dict).execute() File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 2011, in inner return method(self, database, *args, **kwargs) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 2082, in execute return self._execute(database) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 2887, in _execute return super(Insert, self)._execute(database) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 2598, in _execute cursor = self.execute_returning(database) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 2605, in execute_returning cursor = database.execute(self) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 3299, in execute return self.execute_sql(sql, params) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 3289, in execute_sql with __exception_wrapper__: File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 3059, in __exit__ reraise(new_type, new_type(exc_value, *exc_args), traceback) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 192, in reraise raise value.with_traceback(tb) File "/var/home/sfc/Projects/ragflow/.venv/lib/python3.10/site-packages/peewee.py", line 3291, in execute_sql cursor.execute(sql, params or ()) peewee.DataError: value too long for type character varying(255) ``` This PR fix it by truncate the `name` field in the `set_conversation` method in the `conversation_app.py`. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) - [ ] New Feature (non-breaking change which adds functionality) - [ ] Documentation Update - [ ] Refactoring - [ ] Performance Improvement - [ ] Other (please describe):
This commit is contained in:
parent
86c6fee320
commit
b0275b8483
@ -41,6 +41,11 @@ def set_conversation():
|
||||
req = request.json
|
||||
conv_id = req.get("conversation_id")
|
||||
is_new = req.get("is_new")
|
||||
name = req.get("name", "New conversation")
|
||||
|
||||
if len(name) > 255:
|
||||
name = name[0:255]
|
||||
|
||||
del req["is_new"]
|
||||
if not is_new:
|
||||
del req["conversation_id"]
|
||||
@ -59,7 +64,7 @@ def set_conversation():
|
||||
e, dia = DialogService.get_by_id(req["dialog_id"])
|
||||
if not e:
|
||||
return get_data_error_result(message="Dialog not found")
|
||||
conv = {"id": conv_id, "dialog_id": req["dialog_id"], "name": req.get("name", "New conversation"), "message": [{"role": "assistant", "content": dia.prompt_config["prologue"]}]}
|
||||
conv = {"id": conv_id, "dialog_id": req["dialog_id"], "name": name, "message": [{"role": "assistant", "content": dia.prompt_config["prologue"]}]}
|
||||
ConversationService.save(**conv)
|
||||
return get_json_result(data=conv)
|
||||
except Exception as e:
|
||||
|
Loading…
x
Reference in New Issue
Block a user