mirror of
https://github.com/senju1337/senju.git
synced 2025-12-24 07:39:29 +00:00
feat: Add valdidation for the Haiku format
Refs: OPS-12
This commit is contained in:
parent
62e964b800
commit
7c304eaa3c
1 changed files with 27 additions and 1 deletions
|
|
@ -21,6 +21,7 @@ HAIKU DEFINITION:
|
||||||
|
|
||||||
OUTPUT RULES:
|
OUTPUT RULES:
|
||||||
Put every line of the poem on a new line
|
Put every line of the poem on a new line
|
||||||
|
Do not referene any of the instructions in the poem
|
||||||
|
|
||||||
2. Do NOT include:
|
2. Do NOT include:
|
||||||
- Any explanations
|
- Any explanations
|
||||||
|
|
@ -28,7 +29,7 @@ Put every line of the poem on a new line
|
||||||
- Any additional text before or after the JSON
|
- Any additional text before or after the JSON
|
||||||
- Any line breaks within the JSON structure
|
- Any line breaks within the JSON structure
|
||||||
- Any special characters
|
- Any special characters
|
||||||
|
count occurrences of char in string
|
||||||
IMPORTANT: The output will be consumed by a web application that requires
|
IMPORTANT: The output will be consumed by a web application that requires
|
||||||
EXACT FORMAT compliance. Any deviation will cause the application to break.
|
EXACT FORMAT compliance. Any deviation will cause the application to break.
|
||||||
|
|
||||||
|
|
@ -54,12 +55,37 @@ class Haiku:
|
||||||
"stream": False
|
"stream": False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
syllable_letters: list = ['a', 'e', 'i', 'o', 'u', 'y']
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
r = requests.post(url=AI_BASE_URL + AI_GEN_ENDPOINT,
|
r = requests.post(url=AI_BASE_URL + AI_GEN_ENDPOINT,
|
||||||
json=ai_gen_request)
|
json=ai_gen_request)
|
||||||
ai_response = str(r.json()["response"])
|
ai_response = str(r.json()["response"])
|
||||||
|
|
||||||
|
if ai_response.count("\"") != 0:
|
||||||
|
continue
|
||||||
|
|
||||||
lines = ai_response.split("\n")
|
lines = ai_response.split("\n")
|
||||||
|
if len(lines) != 3:
|
||||||
|
continue
|
||||||
|
|
||||||
|
syllable_count = 0
|
||||||
|
prev_was_vowel = False
|
||||||
|
for line in lines:
|
||||||
|
for letter in line:
|
||||||
|
is_vowel = letter in syllable_letters
|
||||||
|
if is_vowel and not prev_was_vowel:
|
||||||
|
syllable_count += 1
|
||||||
|
prev_was_vowel = is_vowel
|
||||||
|
|
||||||
|
if line.endswith('e'):
|
||||||
|
syllable_count -= 1
|
||||||
|
if syllable_count == 0:
|
||||||
|
syllable_count = 1
|
||||||
|
|
||||||
|
if syllable_count != 17:
|
||||||
|
continue
|
||||||
|
|
||||||
haiku = Haiku(
|
haiku = Haiku(
|
||||||
[
|
[
|
||||||
lines[0],
|
lines[0],
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue