Skip to content

Commit 6ef30dd

Browse files
authored
Merge pull request #3 from ChatFAQ/develop
sync with ChatFAQ
2 parents ebda647 + acded2c commit 6ef30dd

File tree

8 files changed

+225
-74
lines changed

8 files changed

+225
-74
lines changed

admin/components/labeling/KnowledgeItemReview.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,12 @@ async function initKIReview() {
7676
}
7777
for (const ki_ref of props.references.knowledge_items || []) {
7878
const ki = await itemsStore.retrieveItems("/back/api/language-model/knowledge-items/", {id: ki_ref.knowledge_item_id, limit: 0, offset: 0, ordering: undefined}, true)
79-
if (ki)
79+
if (ki) {
8080
reviewedKIs.value.kis.push(ki)
81+
} else if (ki_ref.title && ki_ref.content) {
82+
// If KI not found in backend, use the reference if it has title and content
83+
reviewedKIs.value.kis.push(ki_ref);
84+
}
8185
}
8286
review.value = await itemsStore.retrieveItems("/back/api/broker/admin-review/", {message: props.message.id, limit: 0, offset: 0, ordering: undefined}, true) || {}
8387
ki_choices.value = (await itemsStore.retrieveItems("/back/api/language-model/knowledge-items/", {knowledge_base: props.references.knowledge_base_id, knowledge_base__id: props.references.knowledge_base_id, limit: 0, offset: 0, ordering: undefined})).results

chat_rag/chat_rag/llms/format_tools.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def gemini_schema(schema: Dict) -> Dict[str, Any]:
9292
schema = {
9393
"name": schema["name"],
9494
"description": schema["description"],
95-
"parameters": uppercase_types_recursively(schema["parameters"]),
95+
"parameters": transform_tool_spec(uppercase_types_recursively(schema["parameters"]), keys_to_remove=["additionalProperties", "default", "$schema"]),
9696
}
9797
return schema
9898

@@ -113,6 +113,22 @@ def uppercase_types_recursively(schema: Dict[str, Any]) -> Dict[str, Any]:
113113
schema[i] = uppercase_types_recursively(item)
114114
return schema
115115

116+
def transform_tool_spec(data, keys_to_remove):
117+
"""
118+
Recursively removes 'additionalProperties', 'default', and '$schema' keys
119+
from a dictionary or list representing tool specifications.
120+
"""
121+
if isinstance(data, dict):
122+
new_dict = {}
123+
for key, value in data.items():
124+
if key not in keys_to_remove:
125+
new_dict[key] = transform_tool_spec(value, keys_to_remove)
126+
return new_dict
127+
elif isinstance(data, list):
128+
return [transform_tool_spec(item, keys_to_remove) for item in data]
129+
else:
130+
return data
131+
116132

117133
def _check_tool_choice(tools: List[Dict], tool_choice: str) -> str:
118134
"""
@@ -154,6 +170,7 @@ def format_tools(
154170
tools_formatted = []
155171
if mode in {Mode.OPENAI_TOOLS, Mode.MISTRAL_TOOLS}:
156172
for tool in tools:
173+
tool = transform_tool_spec(tool, keys_to_remove=["default"])
157174
# As it is already in the openai format, we can just append it
158175
tools_formatted.append(tool)
159176

chat_rag/chat_rag/llms/mistral_client.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
from mistralai.async_client import MistralAsyncClient
55
from mistralai.client import MistralClient
6-
from mistralai.models.chat_completion import ChatMessage
76

87
from .base_llm import LLM
98
from .format_tools import Mode, format_tools
@@ -21,12 +20,12 @@ def __init__(
2120
def format_prompt(
2221
self,
2322
messages: List[Dict[str, str]],
24-
) -> List[ChatMessage]:
23+
) -> List[Dict[str, str]]:
2524
"""
2625
Formats the prompt to be used by the model into the correct Mistral format.
2726
"""
2827
final_messages = [
29-
ChatMessage(role=message["role"], content=message["content"])
28+
{"role": message["role"], "content": message["content"]}
3029
for message in messages
3130
]
3231

chat_rag/chat_rag/llms/openai_client.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ def stream(
166166
seed=seed,
167167
n=1,
168168
stream=True,
169-
reasoning_effort=thinking,
169+
reasoning_effort=thinking if thinking else NOT_GIVEN,
170170
)
171171
for chunk in response:
172172
if chunk.choices[0].finish_reason == "stop":
@@ -203,7 +203,7 @@ async def astream(
203203
seed=seed,
204204
n=1,
205205
stream=True,
206-
reasoning_effort=thinking,
206+
reasoning_effort=thinking if thinking else NOT_GIVEN,
207207
)
208208
async for chunk in response:
209209
if chunk.choices[0].finish_reason == "stop":
@@ -244,7 +244,7 @@ def generate(
244244
temperature=temperature,
245245
max_completion_tokens=max_tokens,
246246
seed=seed,
247-
reasoning_effort=thinking,
247+
reasoning_effort=thinking if thinking else NOT_GIVEN,
248248
n=1,
249249
tools=tools,
250250
tool_choice=tool_choice,
@@ -285,7 +285,7 @@ async def agenerate(
285285
temperature=temperature,
286286
max_completion_tokens=max_tokens,
287287
seed=seed,
288-
reasoning_effort=thinking,
288+
reasoning_effort=thinking if thinking else NOT_GIVEN,
289289
n=1,
290290
tools=tools,
291291
tool_choice=tool_choice,

chat_rag/poetry.lock

Lines changed: 48 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

chat_rag/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ aiohttp = "^3.8.5"
1919
cryptography = "^41.0.4"
2020
openai = "1.66.2"
2121
anthropic = "0.49.0"
22-
mistralai = "0.4.0"
22+
mistralai = "1.6.0"
2323
docstring-parser = "^0.16"
2424
torch = {version = "2.3.0", optional = true}
2525
transformers = {version = "^4.41.2", optional = true}
@@ -34,7 +34,7 @@ ragatouille = {version = "^0.0.8.post2", optional = true}
3434
hdbscan = {version = "^0.8.36", optional = true}
3535
umap-learn = {version = "^0.5.6", optional = true}
3636
bm25s = {version = "^0.1.7", optional = true}
37-
google-genai = "1.2.0"
37+
google-genai = "1.9.0"
3838
pillow = "^11.1.0"
3939
together = "^1.4.1"
4040

0 commit comments

Comments
 (0)