Skip to content
This repository has been archived by the owner on Oct 26, 2023. It is now read-only.

Commit

Permalink
Improved threading to send requests to ethereum contract
Browse files Browse the repository at this point in the history
  • Loading branch information
rtrevinnoc committed Feb 25, 2021
1 parent b74a342 commit 6cf7173
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 25 deletions.
20 changes: 12 additions & 8 deletions Monad.py
Original file line number Diff line number Diff line change
Expand Up @@ -486,15 +486,19 @@ def inferLanguage(string: str) -> str:
except:
return "unk"


def mintTokens(queryVec: np.array, answerVec: np.array) -> int:
if WEB3API.isConnected():
queryVec = (queryVec * 100).astype(int).tolist()
answerVec = (answerVec * 100).astype(int).tolist()
response = contract.functions.mint(queryVec, answerVec).call()
print("Tokens minted:", response)
return response
else:
raise "Cannot connect to Ethereum network."
try:
if WEB3API.isConnected():
queryVec = (queryVec * 100).astype(int).tolist()
answerVec = (answerVec * 100).astype(int).tolist()
response = contract.functions.mint(queryVec, answerVec).call()
print("Tokens minted:", response)
return response
else:
print("Cannot connect to Ethereum network.")
except:
print("The contract rejected the answer and did not award tokens.")


class Monad():
Expand Down
43 changes: 26 additions & 17 deletions future.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,11 +318,12 @@ def loadMoreUrls(q_vec: np.ndarray, queryLanguage: str, numberOfURLs: int,
"language": url["language"],
} for url in search["results"]]

try:
minter_thread = threading.Thread(target=mintTokens, args=(q_vec, np.frombuffer(search["results"][0]["vec"], dtype=np.float32)))
minter_thread.start()
except:
print("The contract rejected the answer and did not award tokens.")
minter_thread = threading.Thread(target=mintTokens,
args=(q_vec,
np.frombuffer(
search["results"][0]["vec"],
dtype=np.float32)))
minter_thread.start()

urlsInPreferedLanguage, urlsInOtherLanguages = [], []
for url in urls:
Expand Down Expand Up @@ -359,11 +360,11 @@ def loadMoreImages(term: np.ndarray, number, page: int) -> dict:
image = bson.loads(
imageDBTransaction.get(str(image).encode("utf-8")))
if idx == 1:
try:
minter_thread = threading.Thread(target=mintTokens, args=(term, np.frombuffer(image["vec"], dtype=np.float32)))
minter_thread.start()
except:
print("The contract rejected the answer and did not award tokens.")
minter_thread = threading.Thread(
target=mintTokens,
args=(term,
np.frombuffer(image["vec"], dtype=np.float32)))
minter_thread.start()
resultImages.append({
"url": image["url"],
"parentUrl": image["parentUrl"]
Expand Down Expand Up @@ -406,14 +407,23 @@ def answer(query: str, page: int) -> jsonify:
query = query.lower().strip()
if queryLanguage != "en":
try:
query = requests.get("https://www.apertium.org/apy/translate", params={'q': query, 'markUnknown': 'no', 'langpair': languagecodes.iso_639_alpha3(queryLanguage) + '|eng'}).json()['responseData']['translatedText']
query = requests.get(
"https://www.apertium.org/apy/translate",
params={
'q':
query,
'markUnknown':
'no',
'langpair':
languagecodes.iso_639_alpha3(queryLanguage) + '|eng'
}).json()['responseData']['translatedText']
except:
return {
"answer": "Could not translate input.",
"small_summary": "Could not translate input.",
"corrected": query,
"urls": []
}
"answer": "Could not translate input.",
"small_summary": "Could not translate input.",
"corrected": query,
"urls": []
}
try:
q_vec = getSentenceMeanVector(query)
except:
Expand Down Expand Up @@ -490,7 +500,6 @@ def answerImages(query: str, page: int) -> jsonify:
except:
minimumScore = 1


listOfDataFromPeers = asyncio.run(
getImagesFromPeers(query, q_vec, queryLanguage, numberOfURLs, page,
minimumScore))
Expand Down

0 comments on commit 6cf7173

Please sign in to comment.