diff --git a/api/apps/conversation_app.py b/api/apps/conversation_app.py index 40996aa1c1a4e34dc8dd80f3582be0166aef05a5..49374b09168f4673a65705017f12ba2d09361130 100644 --- a/api/apps/conversation_app.py +++ b/api/apps/conversation_app.py @@ -248,8 +248,10 @@ def chat(dialog, messages, **kwargs): tkweight=1 - dialog.vector_similarity_weight, vtweight=dialog.vector_similarity_weight) idx = set([kbinfos["chunks"][int(i)]["doc_id"] for i in idx]) - kbinfos["doc_aggs"] = [ + recall_docs = [ d for d in kbinfos["doc_aggs"] if d["doc_id"] in idx] + if not recall_docs: recall_docs = kbinfos["doc_aggs"] + kbinfos["doc_aggs"] = recall_docs for c in kbinfos["chunks"]: if c.get("vector"): del c["vector"] diff --git a/api/apps/llm_app.py b/api/apps/llm_app.py index e8d42a3ed8a849c7fcbaf195e8cb4fdc1ee7d8a9..a0eb80af8fe24b50b53bc1b7d3efb020d4ba970c 100644 --- a/api/apps/llm_app.py +++ b/api/apps/llm_app.py @@ -45,7 +45,7 @@ def set_api_key(): for llm in LLMService.query(fid=factory): if llm.model_type == LLMType.EMBEDDING.value: mdl = EmbeddingModel[factory]( - req["api_key"], llm.llm_name, req.get("base_url")) + req["api_key"], llm.llm_name, base_url=req.get("base_url")) try: arr, tc = mdl.encode(["Test if the api key is available"]) if len(arr[0]) == 0 or tc == 0: @@ -54,7 +54,7 @@ def set_api_key(): msg += f"\nFail to access embedding model({llm.llm_name}) using this api key." + str(e) elif not chat_passed and llm.model_type == LLMType.CHAT.value: mdl = ChatModel[factory]( - req["api_key"], llm.llm_name, req.get("base_url")) + req["api_key"], llm.llm_name, base_url=req.get("base_url")) try: m, tc = mdl.chat(None, [{"role": "user", "content": "Hello! How are you doing!"}], { "temperature": 0.9}) diff --git a/api/db/services/__init__.py b/api/db/services/__init__.py index 8286cc0e6e7563921757f286336982a23fdaa40b..e324030aa9523888763c1e9394d7caefc582681f 100644 --- a/api/db/services/__init__.py +++ b/api/db/services/__init__.py @@ -24,7 +24,7 @@ def duplicate_name(query_func, **kwargs): if not objs: return fnm ext = pathlib.Path(fnm).suffix #.jpg nm = re.sub(r"%s$"%ext, "", fnm) - r = re.search(r"\([0-9]+\)$", nm) + r = re.search(r"\(([0-9]+)\)$", nm) c = 0 if r: c = int(r.group(1)) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 0000000000000000000000000000000000000000..40ae03a692f267cbc1a8868ee5be3546bfc39aa1 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,52 @@ +--- +sidebar_position: 0 +slug: /contribution_guidelines +--- + +# Contribution Guidelines + +Thanks for wanting to contribute to RAGFlow. This document offers guidlines and major considerations for submitting your contributions. + +- To report a bug, file a [GitHub issue](https://github.com/infiniflow/ragflow/issues/new/choose) with us. +- For further questions, you can explore existing discussions or initiate a new one in [Discussions](https://github.com/orgs/infiniflow/discussions). + + +## What you can contribute + +The list below mentions some contributions you can make, but it is not a complete list. + +- Proposing or implementing new features +- Fixing a bug +- Adding test cases or demos +- Posting a blog or tutorial +- Updates to existing documents, codes, or annotations. +- Suggesting more user-friendly error codes + +## File a pull request (PR) + +### General workflow + +1. Fork our GitHub repository. +2. Clone your fork to your local machine: +`git clone git@github.com:<yourname>/ragflow.git` +3. Create a local branch: +`git checkout -b my-branch` +4. Provide sufficient information in your commit message +`git commit -m 'Provide sufficient info in your commit message'` +5. Commit changes to your local branch, and push to GitHub: (include necessary commit message) +`git push origin my-branch.` +6. Submit a pull request for review. + +### Before filing a PR + +- Consider splitting a large PR into multiple smaller, standalone PRs to keep a traceable development history. +- Ensure that your PR addresses just one issue, or keep any unrelated changes small. +- Add test cases when contributing new features. They demonstrate that your code functions correctly and protect against potential issues from future changes. +### Describing your PR + +- Ensure that your PR title is concise and clear, providing all the required information. +- Refer to a corresponding GitHub issue in your PR description if applicable. +- Include sufficient design details for *breaking changes* or *API changes* in your description. + +### Reviewing & merging a PR +- Ensure that your PR passes all Continuous Integration (CI) tests before merging it. \ No newline at end of file