Skip to content

Commit

Permalink
feat: upgrade import name & fix
Browse files Browse the repository at this point in the history
To fit ragas & langchain version bump
  • Loading branch information
Lanture1064 committed Mar 1, 2024
1 parent 3756c41 commit 4652b14
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 38 deletions.
23 changes: 10 additions & 13 deletions libs/core/kubeagi_core/evaluation/ragas_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@
import os
import pandas as pd
from datasets import Dataset
from langchain.chat_models import ChatOpenAI
from langchain.embeddings import OpenAIEmbeddings as BaseOpenAIEmbeddings
from langchain_openai import ChatOpenAI
from langchain_openai import OpenAIEmbeddings as BaseOpenAIEmbeddings

from ragas import evaluate
from ragas.embeddings import RagasEmbeddings
from ragas.llms import LangchainLLM, RagasLLM
from ragas.embeddings import BaseRagasEmbeddings
from ragas.llms import BaseRagasLLM
from ragas.metrics import (
AnswerCorrectness,
AnswerRelevancy,
Expand All @@ -34,9 +34,8 @@
)
from ragas.evaluation import Result
from ragas.metrics.base import Metric
from ragas.utils import NO_KEY
from ragas.exceptions import OpenAIKeyNotFound

NO_KEY = "NO_KEY"

class RagasEval:
"""
Expand All @@ -58,8 +57,8 @@ class RagasEval:
llm_model: str = "gpt-3.5-turbo"
embedding_model: str = "text-embedding-ada-002"

llm: RagasLLM
embeddings: RagasEmbeddings
llm: BaseRagasLLM
embeddings: BaseRagasEmbeddings

def __init__(
self,
Expand Down Expand Up @@ -87,12 +86,10 @@ def __init__(
)

# Initialize judge llm
self.llm = LangchainLLM(
llm=ChatOpenAI(
self.llm = ChatOpenAI(
model_name=self.llm_model,
openai_api_key=self.api_key,
openai_api_base=self.api_base,
)
)

# Initialize judge embedding
Expand Down Expand Up @@ -203,7 +200,7 @@ def _metrics(


# OpenAIEmbeddings inherits from
class OpenAIEmbeddings(BaseOpenAIEmbeddings, RagasEmbeddings):
class OpenAIEmbeddings(BaseOpenAIEmbeddings, BaseRagasEmbeddings):
api_key: str = NO_KEY

def __init__(
Expand All @@ -226,4 +223,4 @@ def validate_api_key(self):
if os_env_key != NO_KEY:
self.api_key = os_env_key
else:
raise OpenAIKeyNotFound
raise ValueError("openai api key must be provided")
8 changes: 4 additions & 4 deletions libs/ragas_once/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
requires = [
"setuptools>=61.0",
"setuptools-scm",
"ragas==0.0.22",
"langchain==0.0.354"
"ragas",
"langchain"
]
build-backend = "setuptools.build_meta"

Expand All @@ -22,8 +22,8 @@ classifiers = [
"Operating System :: OS Independent",
]
dependencies = [
"langchain==0.0.354",
"ragas==0.0.22",
"langchain",
"ragas",
]

[project.scripts]
Expand Down
11 changes: 5 additions & 6 deletions libs/ragas_once/src/ragas_once/embeddings/openai.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,12 @@

import os

from langchain.embeddings import OpenAIEmbeddings as BaseOpenAIEmbeddings
from ragas.embeddings import RagasEmbeddings
from ragas.exceptions import OpenAIKeyNotFound
from ragas.utils import NO_KEY
from langchain_openai.embeddings import OpenAIEmbeddings as BaseOpenAIEmbeddings
from ragas.embeddings import BaseRagasEmbeddings

NO_KEY = "NO_KEY"

class OpenAIEmbeddings(BaseOpenAIEmbeddings, RagasEmbeddings):
class OpenAIEmbeddings(BaseOpenAIEmbeddings, BaseRagasEmbeddings):
api_key: str = NO_KEY

def __init__(
Expand All @@ -43,4 +42,4 @@ def validate_api_key(self):
if os_env_key != NO_KEY:
self.api_key = os_env_key
else:
raise OpenAIKeyNotFound
raise ValueError("openai api key must be provided")
29 changes: 14 additions & 15 deletions libs/ragas_once/src/ragas_once/eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@

import pandas as pd
from datasets import Dataset
from langchain.chat_models import ChatOpenAI
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from ragas import evaluate
from ragas.embeddings import RagasEmbeddings
from ragas.llms import LangchainLLM, RagasLLM
from ragas.llms import BaseRagasLLM
from ragas.embeddings import BaseRagasEmbeddings
from ragas.metrics import (AnswerCorrectness, AnswerRelevancy,
AnswerSimilarity, ContextPrecision, ContextRecall,
ContextRelevancy, Faithfulness)
from ragas.metrics.base import Metric
from ragas.utils import NO_KEY
from ragas_once.embeddings.openai import OpenAIEmbeddings

NO_KEY = "NO_KEY"

class RagasEval:
"""
Expand All @@ -46,8 +46,8 @@ class RagasEval:
llm_model: str = "gpt-3.5-turbo"
embedding_model: str = "text-embedding-ada-002"

llm: RagasLLM
embeddings: RagasEmbeddings
llm: BaseRagasLLM
embeddings: BaseRagasEmbeddings

def __init__(
self,
Expand All @@ -65,21 +65,20 @@ def __init__(
)

# Initialize judge llm
self.llm = LangchainLLM(
llm=ChatOpenAI(
model_name=self.llm_model,
openai_api_key=self.api_key,
openai_api_base=self.api_base,
self.llm = ChatOpenAI(
model=self.llm_model,
api_key=self.api_key,
base_url=self.api_base,
)
)

# Initialize judge embedding
self.embeddings = OpenAIEmbeddings(
api_key=self.api_key,
api_base=self.api_base,
model_name=self.embedding_model,
api_key=self.api_key,
base_url=self.api_base,
model=self.embedding_model,
)


def prepare_dataset(self, dataset: str = NO_KEY) -> Dataset:
"""
Prepares the dataset for evaluation.
Expand Down

0 comments on commit 4652b14

Please sign in to comment.