ha1772007 commited on
Commit
b353c0d
·
1 Parent(s): 4e510e1

Provider Added

Browse files
Files changed (2) hide show
  1. chat.py +36 -1
  2. 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.dumos({'content':'unspported Provider'})
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