Delete neural_network/chatbot/llm_service.py

This commit is contained in:
Pritam Das 2024-10-20 11:42:09 +05:30 committed by GitHub
parent fb102e6ef2
commit 6e7a428e81
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,78 +0,0 @@
import os
from together import Together
from groq import Groq
from dotenv import load_dotenv
from typing import List, Dict
load_dotenv()
class LLMService:
"""
A class to interact with different LLM (Large Language Model) API services, such as Together and Groq.
Attributes:
-----------
api_service : str
The name of the API service to use ("Together" or "Groq").
"""
def __init__(self, api_service: str) -> None:
"""
Initialize the LLMService with a specific API service.
Parameters:
-----------
api_service : str
The name of the LLM API service, either "Together" or "Groq".
"""
self.api_service = api_service
def generate_response(self, conversation_history: List[Dict[str, str]]) -> str:
"""
Generate a response from the specified LLM API based on the conversation history.
Parameters:
-----------
conversation_history : List[Dict[str, str]]
The list of conversation messages, where each message is a dictionary with 'role' and 'content' keys.
Returns:
--------
str
The generated response content from the assistant.
Raises:
-------
ValueError
If the specified API service is neither "Together" nor "Groq".
"""
if self.api_service == "Together":
client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))
response = client.chat.completions.create(
model="meta-llama/Llama-3.2-3B-Instruct-Turbo",
messages=conversation_history,
max_tokens=512,
temperature=0.3,
top_p=0.7,
top_k=50,
repetition_penalty=1,
stop=["<|eot_id|>", "<|eom_id|>"],
stream=False,
)
elif self.api_service == "Groq":
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
response = client.chat.completions.create(
model="llama3-8b-8192",
messages=conversation_history,
max_tokens=1024,
temperature=0.3,
top_p=0.7,
stop=["<|eot_id|>", "<|eom_id|>"],
stream=False,
)
else:
raise ValueError(f"Unsupported API service: {self.api_service}")
# Extracting the content of the generated response
return response.choices[0].message.content