MOH749 commited on
Commit
a7018f5
1 Parent(s): e5325a9

Update ABL-Agents.py

Browse files
Files changed (1) hide show
  1. ABL-Agents.py +86 -86
ABL-Agents.py CHANGED
@@ -1,86 +1,86 @@
1
- import os
2
- import requests
3
- from dotenv import load_dotenv
4
- from langchain.agents import AgentType, initialize_agent, load_tools
5
- from langchain_openai import OpenAI
6
- from transformers import AlbertTokenizer, AlbertForSequenceClassification
7
-
8
-
9
- load_dotenv()
10
- openai_api_key = os.getenv('OPENAI_API_KEY')
11
-
12
- from serpapi import GoogleSearch
13
-
14
- params = {
15
-
16
- "engine": "google",
17
- "q": "ESPN",
18
- "api_key": "1e2cf72abd974364e933d854720ec3704bb86196ee9a25267e53947192afada6"
19
- }
20
-
21
- search = GoogleSearch(params)
22
- results = search.get_dict()
23
- organic_results = results["organic_results"]
24
-
25
- llm = OpenAI(api_key=openai_api_key,temperature=0)
26
- tools = load_tools(["serpapi", "llm-math"], llm=llm)
27
-
28
- class fact_checking_pipeline:
29
- tokenizer= AlbertTokenizer.from_pretrained('Dzeniks/alberta_fact_checking')
30
- model = AlbertForSequenceClassification.from_pretrained('Dzeniks/alberta_fact_checking')
31
-
32
-
33
- #Configure Langchain Agent
34
- agent_chain = initialize_agent(
35
- tools,
36
- llm,
37
- agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
38
- verbose=True,
39
- )
40
-
41
- class RefereeAgent:
42
- def __init__(self):
43
- self.serpapi_api_key = "1e2cf72abd974364e933d854720ec3704bb86196ee9a25267e53947192afada6"
44
- self.fact_checking_pipeline = AlbertForSequenceClassification.from_pretrained('Dzeniks/alberta_fact_checking')
45
-
46
- def search_serpapi(self, query):
47
- search_url = "https://serpapi.com/search"
48
- params = {
49
- "q": query,
50
- "api_key": self.serpapi_api_key,
51
- }
52
- response = requests.get(search_url, params=params)
53
- return response.json()
54
-
55
- def extract_relevant_info(self, serpapi_results):
56
- relevant_info = []
57
- for result in serpapi_results.get('organic_results', []):
58
- title = result.get('title')
59
- snippet = result.get('snippet')
60
- link = result.get('link')
61
- relevant_info.append({'title': title, 'snippet': snippet, 'link': link})
62
- return relevant_info
63
-
64
- def fact_check(self, statement):
65
- serpapi_results = self.search_serpapi(statement)
66
- relevant_info = self.extract_relevant_info(serpapi_results)
67
-
68
- if not relevant_info:
69
- return "No relevant data found."
70
-
71
- context = " ".join([info['snippet'] for info in relevant_info])
72
- result = self.fact_checking_pipeline(f"{statement} [SEP] {context}")
73
-
74
- label = result[0]['label']
75
- score = result[0]['score']
76
-
77
- if label == "ENTAILMENT":
78
- return f"The statement is likely true. Confidence score: {score}"
79
- else:
80
- return f"The statement is likely false. Confidence score: {score}"
81
-
82
- # Example usage
83
- referee = RefereeAgent()
84
- statement = "LeBron James is the most accomplished NBA player of all time, he has won 4 NBA championships."
85
- referee_result = referee.fact_check(statement)
86
- print(referee_result)
 
1
+ import os
2
+ from langchain_huggingface import HuggingFacePipeline
3
+ from langchain_huggingface.llms import HuggingFacePipeline
4
+ from langchain.agents import AgentType, initialize_agent, load_tools
5
+ from transformers import pipeline
6
+
7
+
8
+ load_dotenv()
9
+ SERPAPI_API_KEY = os.getenv('SERPAPI_API_KEY')
10
+
11
+ from serpapi import GoogleSearch
12
+
13
+ params = {
14
+
15
+ "engine": "google",
16
+ "q": "ESPN",
17
+ "api_key": "1e2cf72abd974364e933d854720ec3704bb86196ee9a25267e53947192afada6"
18
+ }
19
+
20
+ search = GoogleSearch(params)
21
+ results = search.get_dict()
22
+ organic_results = results["organic_results"]
23
+
24
+ llm = HuggingFacePipeline(pipeline=pipeline("text2text-generation",
25
+ model="google/flan-t5-xl",
26
+ model_kwargs={"temperature":0.5},
27
+ huggingfacehub_api_token='<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>'
28
+
29
+ ))
30
+
31
+ tools = load_tools(["serpapi", "llm-math"], llm=llm, serpapi_api_key=SERPAPI_API_KEY)
32
+
33
+ class fact_checking_pipeline:
34
+ fact_checking_pipeline = pipeline("text-classification",
35
+ model="typeform/distilbert-base-uncased-mnli")
36
+
37
+
38
+ #Configure Langchain Agent
39
+ agent_chain = initialize_agent(
40
+ tools,
41
+ llm,
42
+ agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
43
+ verbose=True,
44
+ )
45
+
46
+ class RefereeAgent:
47
+ def __init__(self):
48
+ self.serpapi_api_key = "1e2cf72abd974364e933d854720ec3704bb86196ee9a25267e53947192afada6"
49
+ self.fact_checking_pipeline = pipeline("text-classification",
50
+ model="typeform/distilbert-base-uncased-mnli")
51
+
52
+ def search_serpapi(self, query):
53
+ search_url = "https://serpapi.com/search"
54
+ params = {
55
+ "q": query,
56
+ "api_key": self.serpapi_api_key,
57
+ }
58
+ response = requests.get(search_url, params=params)
59
+ return response.json()
60
+
61
+ def extract_relevant_info(self, serpapi_results):
62
+ relevant_info = []
63
+ for result in serpapi_results.get('organic_results', []):
64
+ title = result.get('title')
65
+ snippet = result.get('snippet')
66
+ link = result.get('link')
67
+ relevant_info.append({'title': title, 'snippet': snippet, 'link': link})
68
+ return relevant_info
69
+
70
+ def fact_check(self, statement):
71
+ serpapi_results = self.search_serpapi(statement)
72
+ relevant_info = self.extract_relevant_info(serpapi_results)
73
+
74
+ if not relevant_info:
75
+ return "No relevant data found."
76
+
77
+ context = " ".join([info['snippet'] for info in relevant_info])
78
+ result = self.fact_checking_pipeline(f"{statement} [SEP] {context}")
79
+
80
+ label = result[0]['label']
81
+ score = result[0]['score']
82
+
83
+ if label == "ENTAILMENT":
84
+ return f"The statement is likely true. Confidence score: {score}"
85
+ else:
86
+ return f"The statement is likely false. Confidence score: {score}"