ragflow icon indicating copy to clipboard operation
ragflow copied to clipboard

[Bug]: Chatbot's answer is repeated endlessly.

Open s-nt-s opened this issue 1 month ago • 5 comments

Self Checks

  • [x] I have searched for existing issues search for existing issues, including closed ones.
  • [x] I confirm that I am using English to submit this report (Language Policy).
  • [x] Non-english title submitions will be closed directly ( 非英文标题的提交将会被直接关闭 ) (Language Policy).
  • [x] Please do not modify this template :) and fill in all the required fields.

RAGFlow workspace code commit ID

de24e74

RAGFlow image version

v0.21.1-slim

Other environment information

Ragflow deploy in kubernetes with https://github.com/infiniflow/ragflow/tree/de24e74b4c90ec154965c1bc7dc7a0fe79e669a1/helm

Actual behavior

Ragflow endlessly repeats the chatbot's answer.

Image

Expected behavior

Get the answer just once and regain control.

Steps to reproduce

With Ollama embeding and chat model:

1- Go to http://localhost:8080/next-chats
2- Create a chat with default options
3- Ask a question

Additional information

I have check in my Ollama server logs and question is received just once and response and sent back just once. So the "endlessly loop" is occurring after that.

What I see in kubectl logs -n dataia-test ragflow-67b8f78fff-kbdxr -f is:

2025-11-25 15:24:38,612 INFO     18 127.0.0.1 - - [25/Nov/2025 15:24:38] "POST /v1/conversation/set HTTP/1.1" 200 -
2025-11-25 15:24:38,713 INFO     18 127.0.0.1 - - [25/Nov/2025 15:24:38] "GET /v1/conversation/list?dialog_id=65265734ba2811f09ceebafa33bd771b HTTP/1.1" 200 -
2025-11-25 15:24:38,750 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,750 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,750 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,753 INFO     18 get_model_config(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, llm_type=chat, llm_name=mistral:7b-instruct-v0.3-q4_K_M@Ollama)
2025-11-25 15:24:38,755 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,755 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,755 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,757 INFO     18 get_api_key(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, mdlnm=mistral:7b-instruct-v0.3-q4_K_M@Ollama) => model_config=mistral:7b-instruct-v0.3-q4_K_M
2025-11-25 15:24:38,757 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,757 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,757 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,757 INFO     18 TenantLLMService.split_model_name_and_factory(mdlnm=mistral:7b-instruct-v0.3-q4_K_M) => mdlnm=mistral:7b-instruct-v0.3-q4_K_M, fid=Ollama
2025-11-25 15:24:38,763 INFO     18 get_model_config(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, llm_type=embedding, llm_name=bge-m3:567m-fp16@Ollama)
2025-11-25 15:24:38,765 INFO     18 split_model_name_and_factory: model_name.split('@') = ['bge-m3:567m-fp16', 'Ollama']
2025-11-25 15:24:38,765 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,765 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,766 INFO     18 get_api_key(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, mdlnm=bge-m3:567m-fp16@Ollama) => model_config=bge-m3:567m-fp16
2025-11-25 15:24:38,767 INFO     18 split_model_name_and_factory: model_name.split('@') = ['bge-m3:567m-fp16', 'Ollama']
2025-11-25 15:24:38,767 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,767 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,767 INFO     18 TenantLLMService.split_model_name_and_factory(mdlnm=bge-m3:567m-fp16) => mdlnm=bge-m3:567m-fp16, fid=Ollama
2025-11-25 15:24:38,934 INFO     18 get_model_config(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, llm_type=embedding, llm_name=bge-m3:567m-fp16@Ollama)
2025-11-25 15:24:38,937 INFO     18 split_model_name_and_factory: model_name.split('@') = ['bge-m3:567m-fp16', 'Ollama']
2025-11-25 15:24:38,937 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,937 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,938 INFO     18 get_api_key(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, mdlnm=bge-m3:567m-fp16@Ollama) => model_config=bge-m3:567m-fp16
2025-11-25 15:24:38,938 INFO     18 split_model_name_and_factory: model_name.split('@') = ['bge-m3:567m-fp16', 'Ollama']
2025-11-25 15:24:38,938 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,939 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,939 INFO     18 TenantLLMService.split_model_name_and_factory(mdlnm=bge-m3:567m-fp16) => mdlnm=bge-m3:567m-fp16, fid=Ollama
2025-11-25 15:24:38,942 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,942 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,942 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,946 INFO     18 get_model_config(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, llm_type=chat, llm_name=mistral:7b-instruct-v0.3-q4_K_M@Ollama)
2025-11-25 15:24:38,948 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,948 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,948 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,950 INFO     18 get_api_key(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, mdlnm=mistral:7b-instruct-v0.3-q4_K_M@Ollama) => model_config=mistral:7b-instruct-v0.3-q4_K_M
2025-11-25 15:24:38,950 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,950 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,951 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,951 INFO     18 TenantLLMService.split_model_name_and_factory(mdlnm=mistral:7b-instruct-v0.3-q4_K_M) => mdlnm=mistral:7b-instruct-v0.3-q4_K_M, fid=Ollama
2025-11-25 15:24:38,954 INFO     18 get_model_config(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, llm_type=chat, llm_name=mistral:7b-instruct-v0.3-q4_K_M@Ollama)
2025-11-25 15:24:38,957 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,957 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,957 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,958 INFO     18 get_api_key(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, mdlnm=mistral:7b-instruct-v0.3-q4_K_M@Ollama) => model_config=mistral:7b-instruct-v0.3-q4_K_M
2025-11-25 15:24:38,958 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,958 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,958 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,959 INFO     18 TenantLLMService.split_model_name_and_factory(mdlnm=mistral:7b-instruct-v0.3-q4_K_M) => mdlnm=mistral:7b-instruct-v0.3-q4_K_M, fid=Ollama
2025-11-25 15:24:38,965 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,965 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,965 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,969 INFO     18 get_model_config(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, llm_type=chat, llm_name=mistral:7b-instruct-v0.3-q4_K_M@Ollama)
2025-11-25 15:24:38,971 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,971 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,972 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,973 INFO     18 get_api_key(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, mdlnm=mistral:7b-instruct-v0.3-q4_K_M@Ollama) => model_config=mistral:7b-instruct-v0.3-q4_K_M
2025-11-25 15:24:38,973 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:38,973 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:38,973 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:38,973 INFO     18 TenantLLMService.split_model_name_and_factory(mdlnm=mistral:7b-instruct-v0.3-q4_K_M) => mdlnm=mistral:7b-instruct-v0.3-q4_K_M, fid=Ollama
2025-11-25 15:24:38,983 INFO     18 get_model_config(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, llm_type=chat, llm_name=mistral:7b-instruct-v0.3-q4_K_M@Ollama)
2025-11-25 15:24:38,991 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:39,002 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:39,002 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:39,009 INFO     18 get_api_key(tenant_id=a17f1fc0b96211f09e2b9a6c254a7075, mdlnm=mistral:7b-instruct-v0.3-q4_K_M@Ollama) => model_config=mistral:7b-instruct-v0.3-q4_K_M
2025-11-25 15:24:39,010 INFO     18 split_model_name_and_factory: model_name.split('@') = ['mistral:7b-instruct-v0.3-q4_K_M', 'Ollama']
2025-11-25 15:24:39,011 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:39,011 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:39,012 INFO     18 TenantLLMService.split_model_name_and_factory(mdlnm=mistral:7b-instruct-v0.3-q4_K_M) => mdlnm=mistral:7b-instruct-v0.3-q4_K_M, fid=Ollama
2025-11-25 15:24:39,027 INFO     18 [HISTORY][
  {
    "role": "system",
    "content": "## Role\nA streamlined multilingual translator.\n\n## Behavior Rules\n1. Accept batch translation requests in the following format:\n   **Input:** `[text]`\n   **Target Languages:** comma-separated list\n\n2. Maintain:\n   - Original formatting (tables, lists, spacing)\n   - Technical terminology accuracy\n   - Cultural context appropriateness\n\n3. Output translations in the following format:\n\n[Translation in language1]\n###\n[Translation in language2]\n\n---\n\n## Example\n\n**Input:**\nHello World! Let's discuss AI safety.\n===\nChinese, French, Japanese\n\n**Output:**\n你好世界!让我们讨论人工智能安全问题。\n###\nBonjour le monde ! Parlons de la sécurité de l'IA.\n###\nこんにちは世界!AIの安全性について話し合いましょう。"
  },
  {
    "role": "user",
    "content": "**Input:**\n¿Quién tiene la competencia de e las aguas españolas?\n===\nSpanish\n\n**Output:**"
  }
]
15:24:39 - LiteLLM:INFO: utils.py:3296 - 
LiteLLM completion() model= mistral:7b-instruct-v0.3-q4_K_M; provider = ollama_chat
2025-11-25 15:24:39,029 INFO     18 
LiteLLM completion() model= mistral:7b-instruct-v0.3-q4_K_M; provider = ollama_chat
15:24:54 - LiteLLM:INFO: utils.py:1262 - Wrapper: Completed Call, calling success_handler
2025-11-25 15:24:54,791 INFO     18 Wrapper: Completed Call, calling success_handler
2025-11-25 15:24:55,225 INFO     18 split_model_name_and_factory: model_name.split('@') = ['bge-m3:567m-fp16', 'Ollama']
2025-11-25 15:24:55,225 INFO     18 split_model_name_and_factory: model_factories = [{'llm': [{'llm_name': 'bge-m3:567m-fp16', 'max_tokens': 8192, 'model_type': 'embedding', 'tags': 'TEXT EMBEDDING'}], 'logo': '', 'name': 'Ollama', 'rank': '830', 'status': '1', 'tags': 'LLM,TEXT EMBEDDING'}]
2025-11-25 15:24:55,225 INFO     18 split_model_name_and_factory: model_providers = ('Ollama',)
2025-11-25 15:24:55,493 INFO     18 [HISTORY STREAMLY][
    {
        "role": "system",
        "content": "Eres un asistente inteligente. Por favor resume el contenido de la base de conocimiento para responder la pregunta. Enumera los datos en la base de conocimiento y responde con detalle. Cuando todo el contenido de la base de conocimiento sea irrelevante para la pregunta, tu respuesta debe incluir la frase \"¡La respuesta que buscas no se encuentra en la base de conocimiento!\". Las respuestas necesitan considerar el historial de chat.\n        Aquí está la base de conocimiento:\n        \n------\n\nID: 0\n├── Title: BOE-A-2023-7052.md\n└── Content:\n\n## [Artículo 2. Ámbito de aplicación.](https://www.boe.es/buscar/act.php?id=BOE-A-2023-7052#a2)\n1. Los preceptos de esta ley son de aplicación a:\n\na) Las aguas sometidas a soberanía o jurisdicción española, incluyendo el mar territorial, la zona económica exclusiva y la zona de protección pesquera del Mediterráneo, con excepción de las aguas interiores, de conformidad con lo dispuesto en la normativa de la Unión Europea y en las normas aplicables en virtud de tratados, acuerdos o convenios internacionales, así como en la normativa nacional.\n\nb) Las aguas no sometidas a soberanía o jurisdicción española, en relación con los buques de nacionalidad española y a las personas físicas o jurídicas de nacionalidad española, de conformidad con lo dispuesto en los tratados, acuerdos y convenios internacionales, en la normativa europea, y en la legislación nacional de países terceros que pueda ser de aplicación y siempre con respeto a su soberanía.\n2. En todo caso, las funciones atribuidas al Estado en materia de reparto de las posibilidades de pesca asignadas al Reino de España, control e inspección y ejercicio de la potestad sancionadora, en aplicación de lo señalado en los títulos V y X, respectivamente, así como en la restante normativa nacional, europea e internacional; serán también de aplicación con independencia de las aguas en que se desarrolle la actividad.\n\n## [Artículo 3. Definiciones.](https://www.boe.es/buscar/act.php?id=BOE-A-2023-7052#a3)\nA los efectos de esta ley, se considerarán las definiciones siguientes:\n1. Actividad pesquera: buscar recursos pesqueros, largar, calar, remolcar o halar artes de pesca, subir capturas a bordo, transportar, llevar a bordo, transformar a bordo, trasladar, transbordar, enjaular, engordar y desembarcar pescado y productos de la pesca, así como crustáceos y moluscos con artes y aparejos propios de la pesca.\n\n------\n\n\nID: 1\n├── Title: BOE-A-2023-7052.md\n└── Content:\n\n## [Disposición adicional octava. Convenios colectivos.](https://www.boe.es/buscar/act.php?id=BOE-A-2023-7052#da-8)\nLas autoridades laborales deberán promover, mediar y favorecer la consecución de convenios colectivos que garanticen condiciones laborales dignas a las personas tripulantes en la pesca de gran altura, altura y litoral.\n## [Disposición final primera. Título competencial.](https://www.boe.es/buscar/act.php?id=BOE-A-2023-7052#df)\n1. La presente ley se dicta al amparo de la competencia exclusiva del Estado en materia de pesca marítima prevista en el artículo 149.1.19.ª de la Constitución Española.\n\n2. El apartado 4 del artículo 7 se dicta conjuntamente al amparo de la competencia exclusiva del Estado en materia de pesca marítima prevista en el artículo 149.1.19.ª de la Constitución Española y al amparo del artículo 149.1.3.ª de la Constitución Española, que otorga competencia exclusiva al Estado en materia de relaciones internacionales.\n\n3. El apartado 4 del artículo 9 se dicta al amparo de la competencia sobre legislación básica del Estado en materia de ordenación del sector pesquero prevista en el artículo 149.1.19.ª de la Constitución Española.\n\n4. El título VII se dicta al amparo de la competencia exclusiva del Estado sobre el fomento y la coordinación general de la investigación científica y técnica, de acuerdo con el artículo 149.1.15.ª de la Constitución Española.\n\n5. El título VIII se dicta conjuntamente por la competencia para dictar legislación básica sobre protección del medio ambiente conforme al artículo 149.1.23.ª y la competencia exclusiva atribuida al Estado en materia de comercio exterior en el artículo 149.1.10.ª de la Constitución Española.\n\n6. La disposición final segunda se dicta al amparo del artículo 149.1.17.ª de la Constitución Española, que atribuye al Estado la competencia exclusiva en materia de régimen económico de la Seguridad Social, sin perjuicio de la ejecución de sus servicios por las comunidades autónomas.\n\n\n------\n\n\nID: 2\n├── Title: BOE-A-2006-13087.md\n└── Content:\n\n4. La Generalitat debe emitir un informe preceptivo para cualquier propuesta de trasvase de cuencas que implique la modificación de los recursos hídricos de su ámbito territorial.\n\n5. La Generalitat participa en la planificación hidrológica de los recursos hídricos y de los aprovechamientos hidráulicos que pasen o finalicen en Cataluña provenientes de territorios de fuera del ámbito estatal español, de acuerdo con los mecanismos que establece el Título V y participará en su ejecución en los términos previstos por la legislación estatal.\n\n## [Artículo 118. Asociaciones y fundaciones.](https://www.boe.es/buscar/act.php?id=BOE-A-2006-13087#a118)\n1. Corresponde a la Generalitat respetando las condiciones básicas establecidas por el Estado para garantizar la igualdad en el ejercicio del derecho y la reserva de ley orgánica, la competencia exclusiva sobre el régimen jurídico de las asociaciones que desarrollen mayoritariamente sus funciones en Cataluña. Esta competencia incluye en todo caso:\n\na) La regulación de las modalidades de asociación, de su denominación, las finalidades, los requisitos de constitución, modificación, extinción y liquidación, el contenido de los estatutos, los órganos de gobierno, los derechos y deberes de los asociados, las obligaciones de las asociaciones y las asociaciones de carácter especial.\n\nb) La determinación y el régimen de aplicación de los beneficios fiscales de las asociaciones establecidos en la normativa tributaria, así como la declaración de utilidad pública, el contenido y los requisitos para su obtención.\n\nc) El registro de asociaciones.\n2. Corresponde a la Generalitat la competencia exclusiva sobre el régimen jurídico de las fundaciones que desarrollen mayoritariamente sus funciones en Cataluña. Esta competencia incluye en todo caso:\n\na) La regulación de las modalidades de fundación, de su denominación, las finalidades y los beneficiarios de la finalidad fundacional; la capacidad para fundar; los requisitos de constitución, modificación, extinción y liquidación; los estatutos; la dotación y el régimen de la fundación en proceso de formación; el patronato y el protectorado, y el patrimonio y el régimen económico y financiero.\n\nb) La determinación y el régimen de aplicación de los beneficios fiscales de las fundaciones establecidos en la normativa tributaria.\n\nc) El registro de fundaciones.\n\n------\n\n\nID: 3\n├── Title: BOE-A-2007-4233.md\n└── Content:\n\n## [Artículo 36. Enseñanza.](https://www.boe.es/buscar/act.php?id=BOE-A-2007-4233#a36)\nDe acuerdo con lo que dispone el artículo 27 y el número 30 del apartado 1 del artículo 149 de la Constitución en materia de enseñanza, corresponde a la Comunidad Autónoma de las Illes Balears:\n1. En materia de enseñanza no universitaria, la competencia exclusiva en la creación, la organización y el régimen de los centros públicos; régimen de becas y ayudas con fondos propios, la formación y el perfeccionamiento del personal docente; servicios educativos y actividades extraescolares complementarias en relación con los centros públicos y privados sostenidos con fondos públicos, en colaboración con los órganos de participación de los padres y las madres de sus alumnos.\n\n2. Corresponde a la Comunidad Autónoma de las Illes Balears la competencia de desarrollo legislativo y de ejecución de la enseñanza en toda su extensión, niveles y grados, modalidades y especialidades.\n\n3. En materia de enseñanza no universitaria, la competencia ejecutiva sobre la expedición y la homologación de los títulos académicos y profesionales estatales.\n\n4. En materia de enseñanza universitaria, la Comunidad Autónoma de las Illes Balears tiene competencia exclusiva, sin perjuicio de la autonomía universitaria, en la programación y la coordinación del sistema universitario, en la financiación propia de las universidades y en la regulación y la gestión del sistema propio de becas y ayudas.\n\n## [Artículo 37. Ejercicio de las competencias de la Comunidad Autónoma.](https://www.boe.es/buscar/act.php?id=BOE-A-2007-4233#a37)\nEl ejercicio de todas las competencias de la Comunidad Autónoma se realizará de acuerdo con los términos que dispone la Constitución.\n## [Artículo 38. Competencias inherentes al pleno ejercicio.](https://www.boe.es/buscar/act.php?id=BOE-A-2007-4233#a38)\n\n------\n\n\nID: 4\n├── Title: BOE-A-2018-15138.md\n└── Content:\n\n## [Artículo 109. Corporaciones de Derecho público.](https://www.boe.es/buscar/act.php?id=BOE-A-2018-15138#ar-109)\n1. Corresponde a la Comunidad Autónoma de Canarias la competencia exclusiva en materia de colegios profesionales, cámaras oficiales, academias para el fomento y difusión de las artes, las ciencias y las letras, consejos reguladores, cofradías de pescadores y demás corporaciones de Derecho público que radiquen en Canarias, respetando lo dispuesto en los artículos 36, 52, 139 y 149.1. 18.ª de la Constitución. Esta competencia incluye, en todo caso:\n\na) La regulación de su constitución, agrupación y extinción, organización y funcionamiento, atribuciones, régimen económico, financiero y presupuestario, derechos y deberes, régimen electoral y régimen disciplinario.\n\nb) El control administrativo, abarcando las funciones de promoción del comercio exterior que puedan realizar las cámaras oficiales.\n2. Corresponde a la Comunidad Autónoma de Canarias la competencia de desarrollo legislativo y de ejecución para la definición de las corporaciones de Derecho público previstas en el apartado anterior y la determinación de los requisitos para su creación, así como para obtener la condición de miembro de las mismas.\n\n## [Artículo 110. Asociaciones y fundaciones.](https://www.boe.es/buscar/act.php?id=BOE-A-2018-15138#ar-110)\n1. Corresponde a la Comunidad Autónoma de Canarias la competencia exclusiva en materia de asociaciones que desarrollen, mayoritariamente, sus funciones en el territorio de Canarias, respetando lo dispuesto en los artículos 149.1.1.ª y 149.1.8.ª de la Constitución española. Esta competencia incluye, en todo caso:\n\na) La regulación de la constitución, régimen de responsabilidad, extinción y disolución, organización y funcionamiento interno, así como derechos y deberes de los asociados.\n\nb) La determinación y el régimen de aplicación de los beneficios fiscales de las asociaciones, en el ámbito de la capacidad normativa tributaria asumida por la Comunidad Autónoma de Canarias.\n\nc) La declaración de utilidad pública de las asociaciones, así como el contenido y los requisitos para su obtención.\n\nd) La regulación y la gestión del Registro de Asociaciones de Canarias.\n\n------\n\n\nID: 5\n├── Title: BOE-A-2006-13087.md\n└── Content:\n\n1. Corresponde a la Generalitat, en materia de investigación científica y técnica, la competencia exclusiva con relación a los centros y las estructuras de investigación de la Generalitat y a los proyectos financiados por ésta, que incluye en todo caso:\n\na) El establecimiento de líneas propias de investigación y el seguimiento, el control y la evaluación de los proyectos.\n\nb) La organización, régimen de funcionamiento, control, seguimiento y acreditación de los centros y estructuras radicados en Cataluña.\n\nc) La regulación y gestión de las becas y de las ayudas convocadas y financiadas por la Generalitat.\n\nd) La regulación y la formación profesional del personal investigador y de apoyo a la investigación.\n\ne) La difusión de la ciencia y la transferencia de resultados.\n2. Corresponde a la Generalitat la competencia compartida sobre la coordinación de los centros y estructuras de investigación de Cataluña.\n\n3. Los criterios de colaboración entre el Estado y la Generalitat en materia de política de investigación, desarrollo e innovación se fijarán en el marco de lo establecido en el Título V. Igualmente se establecerán los sistemas de participación de la Generalitat en la fijación de las políticas que afecten a estas materias en el ámbito de la Unión Europea y en otros organismos e instituciones internacionales.\n\n## [Artículo 159. Régimen jurídico, procedimiento, contratación, expropiación y responsabilidad en las Administraciones públicas catalanas.](https://www.boe.es/buscar/act.php?id=BOE-A-2006-13087#a159)\n1. Corresponde a la Generalitat, en materia de régimen jurídico y procedimiento de las Administraciones públicas catalanas, la competencia exclusiva en lo no afectado por el artículo 149.1.18 de la Constitución. Esta competencia incluye:\n\na) Los medios necesarios para ejercer las funciones administrativas, incluyendo el régimen de los bienes de dominio público y patrimoniales.\n\nb) Las potestades de control, inspección y sanción en todos los ámbitos materiales de competencia de la Generalitat.\n\nc) Las normas de procedimiento administrativo que se deriven de las particularidades del derecho sustantivo de Cataluña o de las especialidades de la organización de la Generalitat.\n\n------\n\n\nID: 6\n├── Title: BOE-A-2006-13087.md\n└── Content:\n\n2. La autorización de nuevas modalidades de juego y apuestas de ámbito estatal, o bien la modificación de las existentes, requiere la deliberación en la Comisión Bilateral Generalitat-Estado prevista en el Título V y el informe previo determinante de la Generalitat.\n\n3. Corresponde a la Generalitat la competencia exclusiva en materia de espectáculos y actividades recreativas, que incluye, en todo caso, la ordenación del sector, el régimen de intervención administrativa y el control de todo tipo de espectáculos en espacios y locales públicos.\n\n## [Artículo 142. Juventud.](https://www.boe.es/buscar/act.php?id=BOE-A-2006-13087#a142)\n1. Corresponde a la Generalitat la competencia exclusiva en materia de juventud, que incluye en todo caso:\n\na) El diseño, la aplicación y la evaluación de políticas, planes y programas destinados a la juventud.\n\nb) La promoción del asociacionismo juvenil, de las iniciativas de participación de la gente joven, de la movilidad internacional y del turismo juvenil.\n\nc) La regulación, la gestión, la intervención y la policía administrativa de actividades e instalaciones destinadas a la juventud.\n2. Corresponde a la Generalitat la suscripción de acuerdos con entidades internacionales y la participación en las mismas en colaboración con el Estado o de forma autónoma, si lo permite la normativa de la correspondiente entidad, y en todo caso la tramitación de documentos otorgados por entidades internacionales que afecten a personas, instalaciones o entidades con residencia en Cataluña, respetando la legislación del Estado.\n\n## [Artículo 143. Lengua propia.](https://www.boe.es/buscar/act.php?id=BOE-A-2006-13087#a143)\n1. Corresponde a la Generalitat de Cataluña la competencia exclusiva en materia de lengua propia, que incluye, en todo caso, la determinación del alcance, los usos y los efectos jurídicos de su oficialidad, así como la normalización lingüística del catalán.\n\n2. Corresponde a la Generalitat y también al Conselh Generau de Arán la competencia sobre la normalización lingüística del occitano, denominado aranés en Arán.\n\n\n------\n\n\nID: 7\n├── Title: BOE-A-2006-13087.md\n└── Content:\n\n1. Los Magistrados, Jueces y Fiscales que ocupen una plaza en Cataluña deberán acreditar un conocimiento adecuado y suficiente del catalán para hacer efectivos los derechos lingüísticos de los ciudadanos en la forma y con el alcance que determine la ley.\n\n2. Los Magistrados, Jueces y Fiscales que ocupen una plaza en Cataluña deben acreditar un conocimiento suficiente del derecho propio de Cataluña en la forma y con el alcance que determine la ley.\n\n3. En todo caso el conocimiento suficiente de la lengua y del derecho propios se valorará específica y singularmente para obtener una plaza en los correspondientes concursos de traslado.\n\n4. El personal al servicio de la Administración de Justicia y de la Fiscalía en Cataluña debe acreditar un conocimiento adecuado y suficiente de las dos lenguas oficiales que los hace aptos para ejercer las funciones propias de su cargo o puesto de trabajo.\n\n## [Artículo 103. Medios personales.](https://www.boe.es/buscar/act.php?id=BOE-A-2006-13087#a103)\n1. Corresponde a la Generalitat la competencia normativa sobre el personal no judicial al servicio de la Administración de Justicia, dentro del respeto al estatuto jurídico de ese personal establecido por la Ley Orgánica del Poder Judicial. En dichos términos, esta competencia de la Generalitat incluye la regulación de:\n\na) La organización de este personal en cuerpos y escalas.\n\nb) El proceso de selección.\n\nc) La promoción interna, la formación inicial y la formación continuada.\n\nd) La provisión de destinos y ascensos.\n\ne) Las situaciones administrativas.\n\nf) El régimen de retribuciones.\n\ng) La jornada laboral y el horario de trabajo.\n\nh) La ordenación de la actividad profesional y las funciones.\n\ni) Las licencias, los permisos, las vacaciones y las incompatibilidades.\n\nj) El registro de personal.\n\nk) El régimen disciplinario.\n2. En los mismos términos del apartado 1, corresponde a la Generalitat la competencia ejecutiva y de gestión en materia de personal no judicial al servicio de la Administración de Justicia. Esta competencia incluye:\n\n        Esa es la base de conocimiento.Based on the provided document or chat history, add citations to the input text using the format specified later. \n\n# Citation Requirements:\n\n## Technical Rules:\n- Use format: [ID:i] or [ID:i] [ID:j] for multiple sources\n- Place citations at the end of sentences, before punctuation\n- Maximum 4 citations per sentence\n- DO NOT cite content not from <context></context>\n- DO NOT modify whitespace or original text\n- STRICTLY prohibit non-standard formatting (~~, etc.)\n\n## What MUST Be Cited:\n1. **Quantitative data**: Numbers, percentages, statistics, measurements\n2. **Temporal claims**: Dates, timeframes, sequences of events  \n3. **Causal relationships**: Claims about cause and effect\n4. **Comparative statements**: Rankings, comparisons, superlatives\n5. **Technical definitions**: Specialized terms, concepts, methodologies\n6. **Direct attributions**: What someone said, did, or believes\n7. **Predictions/forecasts**: Future projections, trend analyses\n8. **Controversial claims**: Disputed facts, minority opinions\n\n## What Should NOT Be Cited:\n- Common knowledge (e.g., \"The sun rises in the east\")\n- Transitional phrases\n- General introductions\n- Your own analysis or synthesis (unless directly from source)\n\n# Comprehensive Examples:\n\n## Example 1: Data and Statistics\n<context>\nID: 45\n└── Content: The global smartphone market grew by 7.8% in Q3 2024, with Samsung holding 20.6% market share and Apple at 15.8%.\n\nID: 46  \n└── Content: 5G adoption reached 1.5 billion users worldwide by October 2024.\n</context>\n\nUSER: How is the smartphone market performing?\n\nASSISTANT: \nThe smartphone industry is showing strong recovery. The global smartphone market grew by 7.8% in Q3 2024 [ID:45]. Samsung leads with 20.6% market share, followed by Apple at 15.8% [ID:45]. This growth is partly driven by 5G technology, which reached 1.5 billion users worldwide by October 2024 [ID:46].\n\n## Example 2: Causal Relationships and Predictions\n<context>\nID: 78\n└── Content: Rising interest rates have led to a 15% decline in housing starts. Economists predict this trend will continue through 2025.\n\nID: 79\n└── Content: The Federal Reserve's aggressive monetary policy is the primary driver behind the real estate slowdown.\n</context>\n\nUSER: What's happening in the real estate market?\n\nASSISTANT:\nThe real estate market is experiencing significant challenges. Rising interest rates have led to a 15% decline in housing starts [ID:78]. The Federal Reserve's aggressive monetary policy is the primary driver behind this real estate slowdown [ID:79]. Economists predict this trend will continue through 2025 [ID:78]. These factors suggest a prolonged period of market adjustment ahead.\n\n## Example 3: Technical Concepts and Comparisons\n<context>\nID: 101\n└── Content: Quantum computing uses quantum bits (qubits) that can exist in superposition, unlike classical bits which are either 0 or 1.\n\nID: 102\n└── Content: Current quantum computers can solve certain problems 158 million times faster than classical supercomputers.\n</context>\n\nUSER: Explain quantum computing advantages.\n\nASSISTANT:\nQuantum computing represents a fundamental shift in computational capability. Unlike classical computers, quantum computing uses quantum bits (qubits) that can exist in superposition, rather than being limited to just 0 or 1 [ID:101]. This unique property enables extraordinary performance gains. Current quantum computers can solve certain problems 158 million times faster than classical supercomputers [ID:102]. This technology promises to revolutionize fields requiring complex calculations.\n\n## Example 4: Mixed Citation Needs\n<context>\nID: 201\n└── Content: CEO Jane Smith announced: \"We're pivoting to AI-first strategy, expecting 40% revenue growth by 2026.\"\n\nID: 202\n└── Content: Industry analysts remain skeptical, with Morgan Stanley rating the stock as \"underperform.\"\n\nID: 203\n└── Content: The company's AI division currently represents only 5% of total revenue.\n</context>\n\nUSER: What's the company's new strategy?\n\nASSISTANT:\nThe company is undergoing a major strategic transformation. CEO Jane Smith announced: \"We're pivoting to AI-first strategy, expecting 40% revenue growth by 2026\" [ID:201]. However, this ambitious goal faces skepticism, as industry analysts remain doubtful, with Morgan Stanley rating the stock as \"underperform\" [ID:202]. The challenge is significant given that the company's AI division currently represents only 5% of total revenue [ID:203]. Success will depend on execution of this bold vision.\n\n## Example 5: When NOT to Cite\n<context>\nID: 301\n└── Content: Paris is the capital of France. The Eiffel Tower was completed in 1889.\n</context>\n\nUSER: Tell me about Paris.\n\nASSISTANT:\nParis is the capital of France. It's known for its rich history, culture, and architecture. The Eiffel Tower was completed in 1889 [ID:301]. The city attracts millions of tourists annually. Paris remains one of the world's most visited destinations.\n(Note: Only the specific date needs citation, not common knowledge about Paris)\n\n--- Examples END ---\n\nREMEMBER: \n- Cite FACTS, not opinions or transitions\n- Each citation supports the ENTIRE sentence\n- When in doubt, ask: \"Would a fact-checker need to verify this?\"\n- Place citations at sentence end, before punctuation\n- Format likes this is FORBIDDEN: [ID:0, ID:5, ID:...]. It MUST be seperated like, [ID:0][ID:5]..."
    },
    {
        "role": "user",
        "content": "¿Quién tiene la competencia de e las aguas españolas?"
    }
]
15:24:55 - LiteLLM:INFO: utils.py:3296 - 
LiteLLM completion() model= mistral:7b-instruct-v0.3-q4_K_M; provider = ollama_chat
2025-11-25 15:24:55,493 INFO     18 
LiteLLM completion() model= mistral:7b-instruct-v0.3-q4_K_M; provider = ollama_chat
2025-11-25 15:24:58,108 INFO     18 127.0.0.1 - - [25/Nov/2025 15:24:58] "POST /v1/conversation/completion HTTP/1.1" 200 -
2025-11-25 15:25:06,726 INFO     19 task_executor_ragflow-67b8f78fff-kbdxr_0 reported heartbeat: {"name": "task_executor_ragflow-67b8f78fff-kbdxr_0", "now": "2025-11-25T15:25:06.724+01:00", "boot_at": "2025-11-19T16:08:38.807+01:00", "pending": 0, "lag": 0, "done": 88, "failed": 47, "current": {}}

s-nt-s avatar Nov 25 '25 14:11 s-nt-s

This issue is most likely caused by a combination of backend and frontend streaming logic. The backend yields both incremental and final answers with the same message ID, and the frontend does not deduplicate or properly terminate the stream, so it keeps displaying the same answer repeatedly. This can happen if the frontend resends outdated or incomplete message history, or if the backend generator is not treated as incremental, causing the same answer to be replayed in a loop (source).

To mitigate this, make sure the frontend always sends the complete, up-to-date message history with each request, and try disabling streaming mode as a workaround (discussion). Also, check for any customizations to the frontend streaming hooks that might prevent proper stream completion or answer deduplication (frontend code).

If you have the ability to patch, consider deduplicating assistant messages by message ID or content in the frontend, and ensure the backend does not yield the same answer multiple times for the same message. Upgrading to the latest RAGFlow version is also recommended, as recent releases have addressed related session and streaming bugs (example fix). If you need help with specific code or config changes, let me know your setup details.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Chat with Dosu Open in Cursor Join Discord Share on X

dosubot[bot] avatar Nov 25 '25 14:11 dosubot[bot]

try disabling streaming mode as a workaround

How? I am using ragflow with his default configuration

check for any customizations

There isn't any customization, as I said: I am using ragflow with his default configuration

consider deduplicating assistant messages by message ID or content in the frontend

The fronted is ragflow. I am not using any custom frontend.

ensure the backend does not yield the same answer multiple

I have check Ollama server logs and answer is send just once

Upgrading to the latest RAGFlow version is also recommended

As I using https://github.com/infiniflow/ragflow/blob/main/helm/values.yaml I believe I am using latest version available for kubernetes.

s-nt-s avatar Nov 25 '25 14:11 s-nt-s

Streaming mode in RAGFlow isn't controlled by Helm values.yaml or environment variables—it’s set per API request or via frontend options. To disable streaming mode:

  • For API or SDK calls, set "stream": false in your request JSON. For example, in Python SDK: session.ask(question, stream=False) will return the full answer in one response instead of streaming chunks (source, source).
  • If you use the chat widget embed, there’s an "Enable Streaming Responses" toggle in the UI. When disabled, the iframe URL includes &streaming=false (source).

There’s no global switch in the default deployment—streaming is always controlled by the client request. If streaming bugs persist, consider upgrading your RAGFlow image to the latest or nightly tag in Helm values.yaml (source).

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other

Chat with Dosu Open in Cursor Join Discord Share on X

dosubot[bot] avatar Nov 25 '25 14:11 dosubot[bot]

What will be generated is not controled by RAGFlow. So, I guess you may need to switch to another LLM.

KevinHuSh avatar Nov 26 '25 04:11 KevinHuSh

What will be generated is not controled by RAGFlow. So, I guess you may need to switch to another LLM.

I have checked what ollama server send back and it is just one short message. It's sure that the llm is not the problem.

s-nt-s avatar Nov 26 '25 07:11 s-nt-s

@s-nt-s I had the same issue when using ollama. To fix it, you need to disable presence_penalty and frequency penalty in the Chat settings. This worked for me. I think ollama can't handle these parameters correctly.

Jonah879 avatar Nov 30 '25 11:11 Jonah879

@s-nt-s I had the same issue when using ollama. To fix it, you need to disable presence_penalty and frequency penalty in the Chat settings. This worked for me. I think ollama can't handle these parameters correctly.

Thanks @Jonah879, this worked also for me.

s-nt-s avatar Dec 02 '25 14:12 s-nt-s