Provider Added
Browse files- chat.py +36 -1
- requirements.txt +3 -2
chat.py
CHANGED
|
@@ -5,6 +5,8 @@ from langchain_groq import ChatGroq
|
|
| 5 |
from langchain.chains import ConversationChain
|
| 6 |
from langchain_google_genai import ChatGoogleGenerativeAI
|
| 7 |
from langchain_core.output_parsers import JsonOutputParser
|
|
|
|
|
|
|
| 8 |
|
| 9 |
from langchain_cohere import ChatCohere
|
| 10 |
def langchainConversation(conversation):
|
|
@@ -13,6 +15,13 @@ def langchainConversation(conversation):
|
|
| 13 |
prompts.append((message['role'],message['context']))
|
| 14 |
chat_template = ChatPromptTemplate.from_messages(prompts)
|
| 15 |
return chat_template.format_messages()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
def converse(conversation,provider,model,key,other:dict={}):
|
| 17 |
if(provider=='groq'):
|
| 18 |
chat = ChatGroq(temperature=0, groq_api_key=key, model_name=model)
|
|
@@ -24,6 +33,32 @@ def converse(conversation,provider,model,key,other:dict={}):
|
|
| 24 |
url = f'https://{model}.lepton.run/api/v1/'
|
| 25 |
print(url)
|
| 26 |
chat = ChatOpenAI(openai_api_base = url,openai_api_key=key)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
else:
|
| 28 |
-
return json.
|
| 29 |
return json.dumps(json.loads(chat.invoke(langchainConversation(conversation)).json()),indent=4)
|
|
|
|
| 5 |
from langchain.chains import ConversationChain
|
| 6 |
from langchain_google_genai import ChatGoogleGenerativeAI
|
| 7 |
from langchain_core.output_parsers import JsonOutputParser
|
| 8 |
+
from langchain_community.llms.cloudflare_workersai import CloudflareWorkersAI
|
| 9 |
+
import requests
|
| 10 |
|
| 11 |
from langchain_cohere import ChatCohere
|
| 12 |
def langchainConversation(conversation):
|
|
|
|
| 15 |
prompts.append((message['role'],message['context']))
|
| 16 |
chat_template = ChatPromptTemplate.from_messages(prompts)
|
| 17 |
return chat_template.format_messages()
|
| 18 |
+
def segmind_input_parser(input):
|
| 19 |
+
toreturn = []
|
| 20 |
+
for thisdict in input:
|
| 21 |
+
toreturn.append({'role':thisdict['role'],'content':thisdict['context']})
|
| 22 |
+
return toreturn
|
| 23 |
+
def segmind_output_parser(input):
|
| 24 |
+
return json.dumps({"content": input['choices'][0]['message']['content'], "additional_kwargs": {}, "response_metadata": {}, "type": "ai", "name": None, "id": input['id'], "example": False, "tool_calls": [], "invalid_tool_calls": [], "usage_metadata": {"input_tokens": input['usage']['prompt_tokens'], "output_tokens": input['usage']['completion_tokens'], "total_tokens": input['usage']['total_tokens']}},indent=4)
|
| 25 |
def converse(conversation,provider,model,key,other:dict={}):
|
| 26 |
if(provider=='groq'):
|
| 27 |
chat = ChatGroq(temperature=0, groq_api_key=key, model_name=model)
|
|
|
|
| 33 |
url = f'https://{model}.lepton.run/api/v1/'
|
| 34 |
print(url)
|
| 35 |
chat = ChatOpenAI(openai_api_base = url,openai_api_key=key)
|
| 36 |
+
elif(provider == 'cloudflare'):
|
| 37 |
+
try:
|
| 38 |
+
account_id = key.split('~')[0]
|
| 39 |
+
api_token = key.split('~')[1]
|
| 40 |
+
except:
|
| 41 |
+
raise Exception('Invalid Accound Id or api token')
|
| 42 |
+
chat = CloudflareWorkersAI(account_id=account_id,api_token=api_token,model=model)
|
| 43 |
+
return json.dumps({'content':chat.invoke(langchainConversation(conversation))})
|
| 44 |
+
elif(provider == 'openrouter'):
|
| 45 |
+
chat = ChatOpenAI(
|
| 46 |
+
base_url="https://openrouter.ai/api/v1",
|
| 47 |
+
api_key=key,
|
| 48 |
+
model=model
|
| 49 |
+
)
|
| 50 |
+
elif(provider == 'segmin'):
|
| 51 |
+
url = f"https://api.segmind.com/v1/{model}"
|
| 52 |
+
|
| 53 |
+
# Request payload
|
| 54 |
+
data = {
|
| 55 |
+
"messages": segmind_input_parser(conversation)
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
response = requests.post(url, json=data, headers={'x-api-key': key})
|
| 59 |
+
output = json.loads(response.text)
|
| 60 |
+
print(json.dumps(output,indent=4))
|
| 61 |
+
return segmind_output_parser(output)
|
| 62 |
else:
|
| 63 |
+
return json.dumps({'content':'unspported Provider'})
|
| 64 |
return json.dumps(json.loads(chat.invoke(langchainConversation(conversation)).json()),indent=4)
|
requirements.txt
CHANGED
|
@@ -3,8 +3,9 @@ langchain_groq
|
|
| 3 |
langchain-google-genai
|
| 4 |
pillow
|
| 5 |
langchain-community
|
| 6 |
-
jq
|
| 7 |
flask
|
| 8 |
mdtex2html
|
| 9 |
langchain_cohere
|
| 10 |
-
langchain_openai
|
|
|
|
|
|
|
|
|
| 3 |
langchain-google-genai
|
| 4 |
pillow
|
| 5 |
langchain-community
|
|
|
|
| 6 |
flask
|
| 7 |
mdtex2html
|
| 8 |
langchain_cohere
|
| 9 |
+
langchain_openai
|
| 10 |
+
requests
|
| 11 |
+
jq
|