mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-09 04:50:37 +00:00
community: fix compatibility issue in kinetica chat model integration for Pydantic 2 (#28252)
Fixed a compatibility issue in the `load_messages_from_context()` function for the Kinetica chat model integration. The issue was caused by stricter validation introduced in Pydantic 2.
This commit is contained in:
parent
96c67230aa
commit
f5f53d1101
@ -78,7 +78,7 @@ class _KdtSuggestContext(BaseModel):
|
|||||||
class _KdtSuggestPayload(BaseModel):
|
class _KdtSuggestPayload(BaseModel):
|
||||||
"""pydantic API request type"""
|
"""pydantic API request type"""
|
||||||
|
|
||||||
question: Optional[str]
|
question: Optional[str] = None
|
||||||
context: List[_KdtSuggestContext]
|
context: List[_KdtSuggestContext]
|
||||||
|
|
||||||
def get_system_str(self) -> str:
|
def get_system_str(self) -> str:
|
||||||
@ -410,17 +410,20 @@ class ChatKinetica(BaseChatModel):
|
|||||||
|
|
||||||
# query kinetica for the prompt
|
# query kinetica for the prompt
|
||||||
sql = f"GENERATE PROMPT WITH OPTIONS (CONTEXT_NAMES = '{context_name}')"
|
sql = f"GENERATE PROMPT WITH OPTIONS (CONTEXT_NAMES = '{context_name}')"
|
||||||
|
|
||||||
result = self._execute_sql(sql)
|
result = self._execute_sql(sql)
|
||||||
prompt = result["Prompt"]
|
prompt = result["Prompt"]
|
||||||
prompt_json = json.loads(prompt)
|
prompt_json = json.loads(prompt)
|
||||||
|
|
||||||
# convert the prompt to messages
|
# convert the prompt to messages
|
||||||
# request = SuggestRequest.model_validate(prompt_json) # pydantic v2
|
# request = SuggestRequest.model_validate(prompt_json) # pydantic v2
|
||||||
|
|
||||||
request = _KdtoSuggestRequest.model_validate(prompt_json)
|
request = _KdtoSuggestRequest.model_validate(prompt_json)
|
||||||
payload = request.payload
|
payload = request.payload
|
||||||
|
|
||||||
dict_messages = []
|
dict_messages = []
|
||||||
dict_messages.append(dict(role="system", content=payload.get_system_str()))
|
dict_messages.append(dict(role="system", content=payload.get_system_str()))
|
||||||
|
|
||||||
dict_messages.extend(payload.get_messages())
|
dict_messages.extend(payload.get_messages())
|
||||||
messages = [self._convert_message_from_dict(m) for m in dict_messages]
|
messages = [self._convert_message_from_dict(m) for m in dict_messages]
|
||||||
return messages
|
return messages
|
||||||
|
Loading…
Reference in New Issue
Block a user