feat: Reduce debate rounds to 4 and enforce 100-word limit - Add word limit enforcement and shorter debates
This commit is contained in:
@@ -36,6 +36,28 @@ class Participant:
|
||||
{"role": "system", "content": self.role_description},
|
||||
]
|
||||
|
||||
def truncate_to_word_limit(self, text, word_limit=100):
|
||||
"""Truncate text to specified word limit, ensuring to complete the last sentence."""
|
||||
words = text.split()
|
||||
if len(words) <= word_limit:
|
||||
return text
|
||||
|
||||
# Get the first 100 words
|
||||
truncated = words[:word_limit]
|
||||
truncated_text = " ".join(truncated)
|
||||
|
||||
# Find the last sentence end (., !, or ?)
|
||||
last_sentence_end = max(
|
||||
truncated_text.rfind("."),
|
||||
truncated_text.rfind("!"),
|
||||
truncated_text.rfind("?")
|
||||
)
|
||||
|
||||
# If we found a sentence end, cut there, otherwise use the full 100 words
|
||||
if last_sentence_end != -1:
|
||||
return truncated_text[:last_sentence_end + 1]
|
||||
return truncated_text
|
||||
|
||||
def answer(self, question):
|
||||
self.messages.append({"role": "user", "content": question})
|
||||
|
||||
@@ -44,6 +66,9 @@ class Participant:
|
||||
)
|
||||
|
||||
answer = response.choices[0].message.content
|
||||
# Enforce 100-word limit while maintaining complete sentences
|
||||
answer = self.truncate_to_word_limit(answer)
|
||||
|
||||
self.messages.append({"role": "assistant", "content": answer})
|
||||
|
||||
self.write_to_file(self.__class__.__name__, self.messages)
|
||||
|
||||
Reference in New Issue
Block a user