-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgemini.py
More file actions
63 lines (58 loc) · 2.45 KB
/
gemini.py
File metadata and controls
63 lines (58 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import os
import pathlib
import textwrap
import google.generativeai as genai
from dotenv import load_dotenv
import os
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
import google.generativeai as genai
class Gemini:
def __init__(self):
import os
load_dotenv()
self.GOOGLE_API_KEY = os.getenv('GOOGLE_API_KEY')
print(self.GOOGLE_API_KEY)
self.myllm = ChatGoogleGenerativeAI(model='gemini-pro')
self.my_prompt = PromptTemplate.from_template(
'you are Einstein an advanced Math AI Solver. Which is trained by AIT .Your task is to provide users with clear and concise explanations and answers to their math questions. And you need to Solve {prompt}')
self.chain = LLMChain(
llm=self.myllm,
prompt=self.my_prompt,
verbose=True
)
def setup(self):
try:
if self.GOOGLE_API_KEY is None:
raise Exception("GEMINI_API_KEY is not set")
genai.configure(api_key=self.GOOGLE_API_KEY)
except Exception as exception:
raise Exception("An error occurred during setup:", exception)
def generate_from_ImgandTxt(self,prompt, img):
try:
model = genai.GenerativeModel(model_name='gemini-pro-vision')
response = model.generate_content([prompt, img], stream=True)
response.resolve()
return response.text
except Exception as exception:
raise Exception("An error occurred during the process:", exception)
def generate_from_txt(self, prompt):
try:
model = genai.GenerativeModel(model_name='gemini-pro')
response = model.generate_content(prompt, stream=True)
response.resolve()
return response.text
except Exception as exception:
raise Exception("An error occurred during the process:", exception)
def generate_from_img(self, img):
try:
model = genai.GenerativeModel(model_name='gemini-pro-vision')
response = model.generate_content(img, stream=True)
response.resolve()
return response.text
except Exception as exception:
raise Exception("An error occurred during the process:", exception)
def langchainGemini(self,prompt):
response = self.chain.invoke(input=prompt)
return response['text']