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
|