Parameters, Parsing, renaming YAMLs and Neo4j YAMLS (#15)

* Added some params
* Parameter updates
* Fixed Neo4j issue
This commit is contained in:
Jack Colquitt 2024-08-21 16:03:56 -07:00 committed by GitHub
parent 7d00a53711
commit c4bfd9fc8c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 2258 additions and 200 deletions

View file

@ -19,6 +19,8 @@ module = ".".join(__name__.split(".")[1:-1])
default_input_queue = text_completion_request_queue
default_output_queue = text_completion_response_queue
default_subscriber = module
default_temperature = 0.0
default_max_output = 4192
class Processor(ConsumerProducer):
@ -29,6 +31,8 @@ class Processor(ConsumerProducer):
subscriber = params.get("subscriber", default_subscriber)
endpoint = params.get("endpoint")
token = params.get("token")
temperature = params.get("temperature", default_temperature)
max_output = params.get("max_output", default_max_output)
super(Processor, self).__init__(
**params | {
@ -37,11 +41,15 @@ class Processor(ConsumerProducer):
"subscriber": subscriber,
"input_schema": TextCompletionRequest,
"output_schema": TextCompletionResponse,
"temperature": temperature,
"max_output": max_output,
}
)
self.endpoint = endpoint
self.token = token
self.temperature = temperature
self.max_output = max_output
def build_prompt(self, system, content):
@ -54,8 +62,8 @@ class Processor(ConsumerProducer):
"role": "user", "content": content
}
],
"max_tokens": 4192,
"temperature": 0.2,
"max_tokens": self.max_output,
"temperature": self.temperature,
"top_p": 1
}
@ -105,7 +113,11 @@ class Processor(ConsumerProducer):
response = self.call_llm(prompt)
print("Send response...", flush=True)
r = TextCompletionResponse(response=response)
resp = response.replace("```json", "")
resp = response.replace("```", "")
r = TextCompletionResponse(response=resp)
self.producer.send(r, properties={"id": id})
print("Done.", flush=True)
@ -128,6 +140,20 @@ class Processor(ConsumerProducer):
help=f'LLM model token'
)
parser.add_argument(
'-t', '--temperature',
type=float,
default=default_temperature,
help=f'LLM temperature parameter (default: {default_temperature})'
)
parser.add_argument(
'-x', '--max-output',
type=int,
default=default_max_output,
help=f'LLM max output tokens (default: {default_max_output})'
)
def run():
Processor.start(module, __doc__)

View file

@ -6,7 +6,6 @@ Input is prompt, output is response. Mistral is default.
import boto3
import json
import re
from .... schema import TextCompletionRequest, TextCompletionResponse
from .... schema import text_completion_request_queue
@ -22,6 +21,9 @@ default_output_queue = text_completion_response_queue
default_subscriber = module
default_model = 'mistral.mistral-large-2407-v1:0'
default_region = 'us-west-2'
default_temperature = 0.0
default_max_output = 2048
class Processor(ConsumerProducer):
@ -34,6 +36,8 @@ class Processor(ConsumerProducer):
aws_id = params.get("aws_id_key")
aws_secret = params.get("aws_secret")
aws_region = params.get("aws_region", default_region)
temperature = params.get("temperature", default_temperature)
max_output = params.get("max_output", default_max_output)
super(Processor, self).__init__(
**params | {
@ -43,10 +47,14 @@ class Processor(ConsumerProducer):
"input_schema": TextCompletionRequest,
"output_schema": TextCompletionResponse,
"model": model,
"temperature": temperature,
"max_output": max_output,
}
)
self.model = model
self.temperature = temperature
self.max_output = max_output
self.session = boto3.Session(
aws_access_key_id=aws_id,
@ -74,8 +82,8 @@ class Processor(ConsumerProducer):
if self.model.startswith("mistral"):
promptbody = json.dumps({
"prompt": prompt,
"max_tokens": 8192,
"temperature": 0.0,
"max_tokens": self.max_output,
"temperature": self.temperature,
"top_p": 0.99,
"top_k": 40
})
@ -84,8 +92,8 @@ class Processor(ConsumerProducer):
elif self.model.startswith("meta"):
promptbody = json.dumps({
"prompt": prompt,
"max_gen_len": 2048,
"temperature": 0.0,
"max_gen_len": self.max_output,
"temperature": self.temperature,
"top_p": 0.95,
})
@ -93,8 +101,8 @@ class Processor(ConsumerProducer):
elif self.model.startswith("anthropic"):
promptbody = json.dumps({
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 8192,
"temperature": 0,
"max_tokens": self.max_output,
"temperature": self.temperature,
"top_p": 0.999,
"messages": [
{
@ -113,8 +121,8 @@ class Processor(ConsumerProducer):
else:
promptbody = json.dumps({
"prompt": prompt,
"max_tokens": 8192,
"temperature": 0.0,
"max_tokens": self.max_output,
"temperature": self.temperature,
"top_p": 0.99,
"top_k": 40
})
@ -147,22 +155,12 @@ class Processor(ConsumerProducer):
outputtext = response_body['outputs'][0]['text']
print(outputtext, flush=True)
# Parse output for ```json``` delimiters
pattern = r'```json\s*([\s\S]*?)\s*```'
match = re.search(pattern, outputtext)
if match:
# If delimiters are found, extract the JSON content
json_content = match.group(1)
json_resp = json_content.strip()
else:
# If no delimiters are found, return the original text
json_resp = outputtext.strip()
resp = outputtext.replace("```json", "")
resp = outputtext.replace("```", "")
print("Send response...", flush=True)
r = TextCompletionResponse(response=json_resp)
r = TextCompletionResponse(response=resp)
self.send(r, properties={"id": id})
print("Done.", flush=True)
@ -196,6 +194,20 @@ class Processor(ConsumerProducer):
help=f'AWS Region (default: us-west-2)'
)
parser.add_argument(
'-t', '--temperature',
type=float,
default=default_temperature,
help=f'LLM temperature parameter (default: {default_temperature})'
)
parser.add_argument(
'-x', '--max-output',
type=int,
default=default_max_output,
help=f'LLM max output tokens (default: {default_max_output})'
)
def run():
Processor.start(module, __doc__)

View file

@ -18,6 +18,8 @@ default_input_queue = text_completion_request_queue
default_output_queue = text_completion_response_queue
default_subscriber = module
default_model = 'claude-3-5-sonnet-20240620'
default_temperature = 0.0
default_max_output = 8192
class Processor(ConsumerProducer):
@ -28,6 +30,8 @@ class Processor(ConsumerProducer):
subscriber = params.get("subscriber", default_subscriber)
model = params.get("model", default_model)
api_key = params.get("api_key")
temperature = params.get("temperature", default_temperature)
max_output = params.get("max_output", default_max_output)
super(Processor, self).__init__(
**params | {
@ -37,12 +41,15 @@ class Processor(ConsumerProducer):
"input_schema": TextCompletionRequest,
"output_schema": TextCompletionResponse,
"model": model,
"temperature": temperature,
"max_output": max_output,
}
)
self.model = model
self.claude = anthropic.Anthropic(api_key=api_key)
self.temperature = temperature
self.max_output = max_output
print("Initialised", flush=True)
@ -61,8 +68,8 @@ class Processor(ConsumerProducer):
# FIXME: Rate limits?
response = message = self.claude.messages.create(
model=self.model,
max_tokens=1000,
temperature=0.1,
max_tokens=self.max_output,
temperature=self.temperature,
system = "You are a helpful chatbot.",
messages=[
{
@ -105,6 +112,20 @@ class Processor(ConsumerProducer):
help=f'Claude API key'
)
parser.add_argument(
'-t', '--temperature',
type=float,
default=default_temperature,
help=f'LLM temperature parameter (default: {default_temperature})'
)
parser.add_argument(
'-x', '--max-output',
type=int,
default=default_max_output,
help=f'LLM max output tokens (default: {default_max_output})'
)
def run():
Processor.start(module, __doc__)

View file

@ -5,7 +5,6 @@ Input is prompt, output is response.
"""
import cohere
import re
from .... schema import TextCompletionRequest, TextCompletionResponse
from .... schema import text_completion_request_queue
@ -19,6 +18,7 @@ default_input_queue = text_completion_request_queue
default_output_queue = text_completion_response_queue
default_subscriber = module
default_model = 'c4ai-aya-23-8b'
default_temperature = 0.0
class Processor(ConsumerProducer):
@ -29,6 +29,7 @@ class Processor(ConsumerProducer):
subscriber = params.get("subscriber", default_subscriber)
model = params.get("model", default_model)
api_key = params.get("api_key")
temperature = params.get("temperature", default_temperature)
super(Processor, self).__init__(
**params | {
@ -38,11 +39,12 @@ class Processor(ConsumerProducer):
"input_schema": TextCompletionRequest,
"output_schema": TextCompletionResponse,
"model": model,
"temperature": temperature,
}
)
self.model = model
self.temperature = temperature
self.cohere = cohere.Client(api_key=api_key)
print("Initialised", flush=True)
@ -64,7 +66,7 @@ class Processor(ConsumerProducer):
model=self.model,
message=prompt,
preamble = "You are a helpful AI-assistant.",
temperature=0.0,
temperature=self.temperature,
chat_history=[],
prompt_truncation='auto',
connectors=[]
@ -73,21 +75,11 @@ class Processor(ConsumerProducer):
resp = output.text
print(resp, flush=True)
# Parse output for ```json``` delimiters
pattern = r'```json\s*([\s\S]*?)\s*```'
match = re.search(pattern, resp)
if match:
# If delimiters are found, extract the JSON content
json_content = match.group(1)
json_resp = json_content.strip()
else:
# If no delimiters are found, return the original text
json_resp = resp.strip()
resp = resp.replace("```json", "")
resp = resp.replace("```", "")
print("Send response...", flush=True)
r = TextCompletionResponse(response=json_resp)
r = TextCompletionResponse(response=resp)
self.send(r, properties={"id": id})
print("Done.", flush=True)
@ -111,6 +103,13 @@ class Processor(ConsumerProducer):
help=f'Cohere API key'
)
parser.add_argument(
'-t', '--temperature',
type=float,
default=default_temperature,
help=f'LLM temperature parameter (default: {default_temperature})'
)
def run():
Processor.start(module, __doc__)

View file

@ -71,7 +71,10 @@ class Processor(ConsumerProducer):
print("Send response...", flush=True)
r = TextCompletionResponse(response=response)
resp = response.replace("```json", "")
resp = response.replace("```", "")
r = TextCompletionResponse(response=resp)
self.send(r, properties={"id": id})

View file

@ -18,6 +18,8 @@ default_input_queue = text_completion_request_queue
default_output_queue = text_completion_response_queue
default_subscriber = module
default_model = 'gpt-3.5-turbo'
default_temperature = 0.0
default_max_output = 4096
class Processor(ConsumerProducer):
@ -28,6 +30,8 @@ class Processor(ConsumerProducer):
subscriber = params.get("subscriber", default_subscriber)
model = params.get("model", default_model)
api_key = params.get("api_key")
temperature = params.get("temperature", default_temperature)
max_output = params.get("max_output", default_max_output)
super(Processor, self).__init__(
**params | {
@ -37,11 +41,14 @@ class Processor(ConsumerProducer):
"input_schema": TextCompletionRequest,
"output_schema": TextCompletionResponse,
"model": model,
"temperature": temperature,
"max_output": max_output,
}
)
self.model = model
self.temperature = temperature
self.max_output = max_output
self.openai = OpenAI(api_key=api_key)
print("Initialised", flush=True)
@ -72,8 +79,8 @@ class Processor(ConsumerProducer):
]
}
],
temperature=0,
max_tokens=4096,
temperature=self.temperature,
max_tokens=self.max_output,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
@ -109,6 +116,20 @@ class Processor(ConsumerProducer):
help=f'OpenAI API key'
)
parser.add_argument(
'-t', '--temperature',
type=float,
default=default_temperature,
help=f'LLM temperature parameter (default: {default_temperature})'
)
parser.add_argument(
'-x', '--max-output',
type=int,
default=default_max_output,
help=f'LLM max output tokens (default: {default_max_output})'
)
def run():
Processor.start(module, __doc__)

View file

@ -33,6 +33,10 @@ module = ".".join(__name__.split(".")[1:-1])
default_input_queue = text_completion_request_queue
default_output_queue = text_completion_response_queue
default_subscriber = module
default_model = 'gemini-1.0-pro-001'
default_region = 'us-central1'
default_temperature = 0.0
default_max_output = 8192
class Processor(ConsumerProducer):
@ -41,9 +45,11 @@ class Processor(ConsumerProducer):
input_queue = params.get("input_queue", default_input_queue)
output_queue = params.get("output_queue", default_output_queue)
subscriber = params.get("subscriber", default_subscriber)
region = params.get("region", "us-west1")
model = params.get("model", "gemini-1.0-pro-001")
region = params.get("region", default_region)
model = params.get("model", default_model)
private_key = params.get("private_key")
temperature = params.get("temperature", default_temperature)
max_output = params.get("max_output", default_max_output)
super(Processor, self).__init__(
**params | {
@ -56,19 +62,19 @@ class Processor(ConsumerProducer):
)
self.parameters = {
"temperature": 0.2,
"temperature": temperature,
"top_p": 1.0,
"top_k": 32,
"candidate_count": 1,
"max_output_tokens": 8192,
"max_output_tokens": max_output,
}
self.generation_config = GenerationConfig(
temperature=0.2,
temperature=temperature,
top_p=1.0,
top_k=10,
candidate_count=1,
max_output_tokens=8191,
max_output_tokens=max_output,
)
# Block none doesn't seem to work
@ -155,8 +161,8 @@ class Processor(ConsumerProducer):
parser.add_argument(
'-m', '--model',
default="gemini-1.0-pro-001",
help=f'LLM model (default: gemini-1.0-pro-001)'
default=default_model,
help=f'LLM model (default: {default_model})'
)
# Also: text-bison-32k
@ -167,8 +173,22 @@ class Processor(ConsumerProducer):
parser.add_argument(
'-r', '--region',
default='us-west1',
help=f'Google Cloud region (default: us-west1)',
default=default_region,
help=f'Google Cloud region (default: {default_region})',
)
parser.add_argument(
'-t', '--temperature',
type=float,
default=default_temperature,
help=f'LLM temperature parameter (default: {default_temperature})'
)
parser.add_argument(
'-x', '--max-output',
type=int,
default=default_max_output,
help=f'LLM max output tokens (default: {default_max_output})'
)
def run():