mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
* initial * add LLM features * update LLM logic * update llm functions: change control flow * add generation config * update return types * update processors and tests * update rtc_offer * revert new title processor change * fix unit tests * add comments and fix HTTP 500 * adjust prompt * test with reflector app * revert new event for final title * update * move onus onto processors * move onus onto processors * stash * add provision for gen config * dynamically pack the LLM input using context length * tune final summary params * update consolidated class structures * update consolidated class structures * update precommit * add broadcast processors * working baseline * Organize LLMParams * minor fixes * minor fixes * minor fixes * fix unit tests * fix unit tests * fix unit tests * update tests * update tests * edit pipeline response events * update summary return types * configure tests * alembic db migration * change LLM response flow * edit main llm functions * edit main llm functions * change llm name and gen cf * Update transcript_topic_detector.py * PR review comments * checkpoint before db event migration * update DB migration of past events * update DB migration of past events * edit LLM classes * Delete unwanted file * remove List typing * remove List typing * update oobabooga API call * topic enhancements * update UI event handling * move ensure_casing to llm base * update tests * update tests
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
import httpx
|
|
from transformers import GenerationConfig
|
|
|
|
from reflector.llm.base import LLM
|
|
from reflector.logger import logger
|
|
from reflector.settings import settings
|
|
|
|
|
|
class OpenAILLM(LLM):
|
|
def __init__(self, model_name: str | None = None, **kwargs):
|
|
super().__init__(**kwargs)
|
|
self.openai_key = settings.LLM_OPENAI_KEY
|
|
self.openai_url = settings.LLM_URL
|
|
self.openai_model = settings.LLM_OPENAI_MODEL
|
|
self.openai_temperature = settings.LLM_OPENAI_TEMPERATURE
|
|
self.timeout = settings.LLM_TIMEOUT
|
|
self.max_tokens = settings.LLM_MAX_TOKENS
|
|
logger.info(f"LLM use openai backend at {self.openai_url}")
|
|
|
|
async def _generate(
|
|
self,
|
|
prompt: str,
|
|
gen_schema: dict | None,
|
|
gen_cfg: GenerationConfig | None,
|
|
**kwargs,
|
|
) -> str:
|
|
headers = {
|
|
"Content-Type": "application/json",
|
|
"Authorization": f"Bearer {self.openai_key}",
|
|
}
|
|
|
|
async with httpx.AsyncClient(timeout=self.timeout) as client:
|
|
response = await client.post(
|
|
self.openai_url,
|
|
headers=headers,
|
|
json={
|
|
"model": self.openai_model,
|
|
"prompt": prompt,
|
|
"max_tokens": self.max_tokens,
|
|
"temperature": self.openai_temperature,
|
|
},
|
|
)
|
|
response.raise_for_status()
|
|
result = response.json()
|
|
return result["choices"][0]["text"]
|
|
|
|
|
|
LLM.register("openai", OpenAILLM)
|