Add AWS Bedrock support (#1482)

This commit is contained in:
Dev Khant
2024-07-18 03:08:10 +05:30
committed by GitHub
parent 4e5d34103f
commit 1e7618dfa4
12 changed files with 454 additions and 19 deletions

View File

@@ -1,3 +1,4 @@
import json
from typing import Dict, List, Optional
from together import Together
@@ -9,6 +10,34 @@ class TogetherLLM(LLMBase):
def __init__(self, model="mistralai/Mixtral-8x7B-Instruct-v0.1"):
self.client = Together()
self.model = model
def _parse_response(self, response, tools):
"""
Process the response based on whether tools are used or not.
Args:
response: The raw response from API.
tools: The list of tools provided in the request.
Returns:
str or dict: The processed response.
"""
if tools:
processed_response = {
"content": response.choices[0].message.content,
"tool_calls": []
}
if response.choices[0].message.tool_calls:
for tool_call in response.choices[0].message.tool_calls:
processed_response["tool_calls"].append({
"name": tool_call.function.name,
"arguments": json.loads(tool_call.function.arguments)
})
return processed_response
else:
return response.choices[0].message.content
def generate_response(
self,
@@ -37,4 +66,4 @@ class TogetherLLM(LLMBase):
params["tool_choice"] = tool_choice
response = self.client.chat.completions.create(**params)
return response
return self._parse_response(response, tools)