Skip to content

Commit

Permalink
f
Browse files Browse the repository at this point in the history
  • Loading branch information
samholt committed Apr 16, 2024
1 parent 9f4ebb9 commit 40c92fc
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 8 deletions.
22 changes: 22 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: BlackJack Game",
"type": "debugpy",
"request": "launch",
"program": "examples/generate_codebase_simple_blackjack.py",
"console": "integratedTerminal"
},
{
"name": "Python Debugger: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
1 change: 0 additions & 1 deletion examples/experiments/config/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,4 @@ setup:
api_retry_with_exponential_backoff__exponential_base: 2
api_retry_with_exponential_backoff__jitter: true
api_retry_with_exponential_backoff__max_retries: 10
api_request_timeout: 60000
api_stream: False
1 change: 0 additions & 1 deletion l2mac/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ class LLMSettingsConfig(BaseModel):
api_retry_with_exponential_backoff__exponential_base: float = 2
api_retry_with_exponential_backoff__jitter: bool = True
api_retry_with_exponential_backoff__max_retries: float = 10
api_request_timeout: float = 60000
api_stream: bool = False

class SetupConfig(BaseModel):
Expand Down
19 changes: 13 additions & 6 deletions l2mac/llm_providers/general.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from copy import deepcopy
import re
from openai import OpenAI, AsyncOpenAI
import openai
import asyncio
from time import sleep, perf_counter
Expand Down Expand Up @@ -49,8 +50,8 @@ def get_llm_config(config, logger, name, rate_limiter):
'frequency_penalty': config.llm_settings.frequency_penalty,
'presence_penalty': config.llm_settings.presence_penalty,
'stop': config.llm_settings.stop,
'request_timeout': config.llm_settings.api_request_timeout,
'stream': config.llm_settings.api_stream,
'api_key': config.llm.api_key,
'_open_ai_rate_limit_requests_per_minute': config.llm_settings.rate_limit_requests_per_minute,
'_logger': logger,
'_name': name,
Expand Down Expand Up @@ -78,6 +79,8 @@ def chat_completion_rl(**kwargs):
name = kwargs.get('_name', None)
if kwargs.get('config', None) and kwargs.get('config', None).llm.api_type == "azure":
use_azure_api = True
else:
use_azure_api = False

errors: tuple = (openai.RateLimitError,openai.APIError,openai.APITimeoutError,openai.APIConnectionError)

Expand Down Expand Up @@ -133,7 +136,7 @@ def chat_completion_rl(**kwargs):
# Raise exceptions for any errors not specified
except Exception as e:
raise e


async def async_chat_completion_rl_inner(**kwargs):
logger = kwargs.get('_logger', None)
Expand All @@ -155,8 +158,10 @@ async def async_chat_completion_rl_inner(**kwargs):
# delay_in_seconds = 60.0 / requests_per_minute
# time.sleep(delay_in_seconds)

aclient = AsyncOpenAI(api_key=kwargs['api_key'])
kwargs.pop('_open_ai_rate_limit_requests_per_minute', None)
kwargs.pop('_logger', None)
kwargs.pop('api_key', None)
kwargs.pop('_name', None)
kwargs.pop('_rate_limiter', None)
kwargs.pop('_rate_limiter', None)
Expand All @@ -167,9 +172,9 @@ async def async_chat_completion_rl_inner(**kwargs):

if rate_limiter:
rate_limiter.consume(**kwargs)
responses = await openai.ChatCompletion.acreate(**kwargs)
responses = await aclient.chat.completions.create(**kwargs)
else:
responses = await openai.ChatCompletion.acreate(**kwargs)
responses = await aclient.chat.completions.create(**kwargs)
response = {}
chunks = []
async for chunk in responses:
Expand Down Expand Up @@ -217,9 +222,11 @@ def chat_completion_rl_inner(**kwargs):
# delay_in_seconds = 60.0 / requests_per_minute
# time.sleep(delay_in_seconds)

client = OpenAI(api_key=kwargs['api_key'])
kwargs.pop('_open_ai_rate_limit_requests_per_minute', None)
kwargs.pop('_logger', None)
kwargs.pop('_name', None)
kwargs.pop('api_key', None)
kwargs.pop('_rate_limiter', None)
kwargs.pop('_rate_limiter', None)
kwargs.pop('stream', None)
Expand All @@ -230,9 +237,9 @@ def chat_completion_rl_inner(**kwargs):

if rate_limiter:
rate_limiter.consume(**kwargs)
response = openai.ChatCompletion.create(**kwargs)
response = client.chat.completions.create(**kwargs)
else:
response = openai.ChatCompletion.create(**kwargs)
response = client.chat.completions.create(**kwargs)
# if logger:
# logger.info(f"[{name}][OpenAI API Returned] Elapsed request time: {perf_counter() - t0}s | response: {response}")
return response

0 comments on commit 40c92fc

Please sign in to comment.