Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ecom-svc-reviewsense
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Bhargava Rellu
ecom-svc-reviewsense
Commits
54ef043f
Commit
54ef043f
authored
Apr 15, 2025
by
Mirza Mohammed Baig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Configured the API endpoint, token, namespace and all the other settings in the .env file.
parent
2a14caf6
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
57 additions
and
88 deletions
+57
-88
.env
.env
+16
-5
config.py
src/reviewsense_ecom/core/config.py
+0
-29
llm.py
src/reviewsense_ecom/llm/llm.py
+5
-1
mongo_db_config.py
src/reviewsense_ecom/mongo/mongo_db_config.py
+14
-4
retrieval.py
src/reviewsense_ecom/retriever/retrieval.py
+18
-9
FeatureExtractor.py
src/reviewsense_ecom/service/FeatureExtractor.py
+3
-2
retrieval.py
src/reviewsense_ecom/service/retrieval.py
+0
-37
review_adder.py
src/reviewsense_ecom/service/review_adder.py
+1
-1
No files found.
.env
View file @
54ef043f
ASTRA_DB_API_ENDPOINT="https://0c52512b-0c65-4e70-ac47-71edf5244a82-us-east-2.apps.astra.datastax.com"
ASTRA_DB_APPLICATION_TOKEN="AstraCS:EvXpFFafufegdQJvhqlYxmxt:ef86b5996013b12140b69254bd554d7e8e10eb5a7137859b9c432f92a5a3b65c"
ASTRA_DB_NAMESPACE="default_keyspace"
HF_TOKEN="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"
GROQ_API_KEY="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"
GROQ_API_KEY="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"
GROQ_MODEL_NAME="llama-3.3-70b-versatile"
MONGODB_URL=mongodb+srv://genai:nisum@123@productrater.hpbsn.mongodb.net/?retryWrites=true&w=majority&appName=productRater
MONGODB_PASSWORD=nisum@123
MONGODB_USERNAME=genai
MONGODB_CLUSTER=productrater.hpbsn.mongodb.net
MONGODB_APPNAME=productRater
# Default settings
EMBEDDING_MODEL="sentence-transformers/all-mpnet-base-v2"
HUGGING_FACE_INTERFACE_API="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"
HUGGING_FACE_MODEL="BAAI/bge-base-en-v1.5"
ASTRA_DB_API_END_POINT="https://9706ee0b-b3e8-4ee2-bb26-45e8a0db1586-us-east-2.apps.astra.datastax.com"
ASTRA_DB_TOKEN="AstraCS:OEbpcggZbUjOvRiesULZkTnf:9d215d8d32c2ffb09081212208e474f81a0bcdde45e7b683cd67f4a1a936a8bf"
ASTRA_DB_NAME_SPACE="default_keyspace"
src/reviewsense_ecom/core/config.py
deleted
100644 → 0
View file @
2a14caf6
from
functools
import
lru_cache
from
pydantic.v1
import
BaseSettings
class
Settings
(
BaseSettings
):
"""Application configuration settings"""
ASTRA_DB_API_ENDPOINT
:
str
=
"https://0c52512b-0c65-4e70-ac47-71edf5244a82-us-east-2.apps.astra.datastax.com"
ASTRA_DB_APPLICATION_TOKEN
:
str
=
"AstraCS:EvXpFFafufegdQJvhqlYxmxt:ef86b5996013b12140b69254bd554d7e8e10eb5a7137859b9c432f92a5a3b65c"
ASTRA_DB_NAMESPACE
:
str
=
"default_keyspace"
# Default settings
EMBEDDING_MODEL
:
str
=
"sentence-transformers/all-mpnet-base-v2"
class
Config
:
env_file
=
".env"
env_file_encoding
=
"utf-8"
extra
=
"allow"
# Allow extra fields
@
lru_cache
()
def
get_settings
():
"""
Cached settings retrieval to optimize performance
Returns:
Settings: Configured application settings
"""
return
Settings
()
src/reviewsense_ecom/llm/llm.py
View file @
54ef043f
from
functools
import
lru_cache
from
langchain_groq
import
ChatGroq
import
os
from
dotenv
import
load_dotenv
load_dotenv
()
groq_model_name
=
os
.
getenv
(
"GROQ_MODEL_NAME"
)
@
lru_cache
(
maxsize
=
1
)
# Cache only one instance (singleton behavior)
def
get_llm
(
groq_token
:
str
):
...
...
@@ -15,7 +19,7 @@ def get_llm(groq_token: str):
ChatGroq: A singleton instance of the ChatGroq LLM.
"""
return
ChatGroq
(
model_name
=
"llama-3.3-70b-versatile"
,
model_name
=
groq_model_name
,
temperature
=
1
,
groq_api_key
=
groq_token
# Pass the Groq token here
)
src/reviewsense_ecom/mongo/mongo_db_config.py
View file @
54ef043f
...
...
@@ -7,7 +7,19 @@ from src.reviewsense_ecom.model.FeatureSentiment import FeatureSentiment
from
src.reviewsense_ecom.model.Product
import
Product
from
src.reviewsense_ecom.model.ProductReview
import
ProductReview
from
src.reviewsense_ecom.service.review_adder
import
ReviewAdder
import
os
from
dotenv
import
load_dotenv
load_dotenv
()
mongo_db
=
os
.
getenv
(
"MONGODB_URL"
)
# Load environment variables
load_dotenv
()
# Read individual parts from .env
username
=
os
.
getenv
(
"MONGODB_USERNAME"
)
password
=
urllib
.
parse
.
quote_plus
(
os
.
getenv
(
"MONGODB_PASSWORD"
))
# escape special characters
cluster
=
os
.
getenv
(
"MONGODB_CLUSTER"
)
appname
=
os
.
getenv
(
"MONGODB_APPNAME"
)
# def get_db_connection(collection_name: str): #LOCAL DB
# client = MongoClient("mongodb://localhost:27017/") # Update with your MongoDB connection
...
...
@@ -16,10 +28,8 @@ from src.reviewsense_ecom.service.review_adder import ReviewAdder
def
get_db_connection
(
collection_name
:
str
):
# get_db_cloud_connection
password
=
"nisum@123"
escaped_password
=
urllib
.
parse
.
quote_plus
(
password
)
client
=
MongoClient
(
f
"mongodb+srv://genai:{escaped_password}@productrater.hpbsn.mongodb.net/?retryWrites=true&w=majority&appName=productRater"
)
# Update with your MongoDB connection
mongo_uri
=
f
"mongodb+srv://{username}:{password}@{cluster}/?retryWrites=true&w=majority&appName={appname}"
client
=
MongoClient
(
mongo_uri
)
db
=
client
[
"productRater"
]
# Change to your database name
return
db
[
collection_name
]
...
...
src/reviewsense_ecom/retriever/retrieval.py
View file @
54ef043f
# src/reviewsense/core/database.py
from
functools
import
lru_cache
from
dotenv
import
load_dotenv
import
os
from
langchain_
astradb
import
AstraDBVectorStore
from
langchain_
community.embeddings
import
HuggingFaceInferenceAPIEmbeddings
from
langchain_huggingface
import
HuggingFaceEmbeddings
from
langchain_astradb
import
AstraDBVectorStore
load_dotenv
()
huggingface_inference_api
=
os
.
getenv
(
"HUGGING_FACE_INTERFACE_API"
)
huggingface_model
=
os
.
getenv
(
"HUGGING_FACE_MODEL"
)
astra_db_api_end_point
=
os
.
getenv
(
"ASTRA_DB_API_END_POINT"
)
astra_db_token
=
os
.
getenv
(
"ASTRA_DB_TOKEN"
)
astra_db_name_space
=
os
.
getenv
(
"ASTRA_DB_NAME_SPACE"
)
@
lru_cache
(
maxsize
=
1
)
def
get_vector_store
(
collection_name
:
str
=
"feature
_reviews"
,
embedding_model
:
str
=
"sentence-transformers/all-mpnet-base-v2"
collection_name
:
str
=
"customer
_reviews"
,
embedding_model
:
str
=
"sentence-transformers/all-mpnet-base-v2"
):
"""
Create a singleton vector store instance
...
...
@@ -22,13 +31,13 @@ def get_vector_store(
"""
# Initialize embeddings
embeddings
=
HuggingFace
Embeddings
(
model_name
=
embedding
_model
)
embeddings
=
HuggingFace
InferenceAPIEmbeddings
(
api_key
=
huggingface_inference_api
,
model_name
=
huggingface
_model
)
# Create and return vector store
return
AstraDBVectorStore
(
collection_name
=
collection_name
,
embedding
=
embeddings
,
api_endpoint
=
"https://19b6fcda-3fe8-4585-a5f5-6a464a382426-westus3.apps.astra.datastax.com"
,
token
=
"AstraCS:UaZmElcIDkRHzUmktguKwrnd:197d3e825510580f5f97cc749b00a94b685d54a5f1d4a755b75440fe2c29329b"
,
namespace
=
"default_keyspace"
,
)
api_endpoint
=
astra_db_api_end_point
,
token
=
astra_db_token
,
namespace
=
astra_db_name_space
,
)
\ No newline at end of file
src/reviewsense_ecom/service/FeatureExtractor.py
View file @
54ef043f
from
typing
import
List
,
Dict
import
os
from
dotenv
import
load_dotenv
from
langchain.prompts
import
ChatPromptTemplate
from
langchain_core.output_parsers
import
JsonOutputParser
...
...
@@ -9,7 +10,7 @@ from src.reviewsense_ecom.llm.llm import get_llm
# Load environment variables from .env file
load_dotenv
()
groq_api_key
=
os
.
getenv
(
"GROQ_API_KEY"
)
class
FeatureReview
(
BaseModel
):
feature
:
str
...
...
@@ -24,7 +25,7 @@ class FeatureReviews(BaseModel):
class
FeatureExtractor
:
def
__init__
(
self
):
self
.
llm
=
get_llm
(
"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"
)
self
.
llm
=
get_llm
(
groq_api_key
)
self
.
parser
=
self
.
_create_reviews_parser
()
self
.
prompt
=
self
.
_create_extraction_prompt
()
...
...
src/reviewsense_ecom/service/retrieval.py
deleted
100644 → 0
View file @
2a14caf6
# src/reviewsense/core/database.py
from
functools
import
lru_cache
from
langchain_community.embeddings
import
HuggingFaceInferenceAPIEmbeddings
from
langchain_huggingface
import
HuggingFaceEmbeddings
from
langchain_astradb
import
AstraDBVectorStore
from
src.reviewsense_ecom.core.config
import
get_settings
@
lru_cache
(
maxsize
=
1
)
def
get_vector_store
(
collection_name
:
str
=
"customer_reviews"
,
embedding_model
:
str
=
"sentence-transformers/all-mpnet-base-v2"
):
"""
Create a singleton vector store instance
Args:
collection_name (str): Database collection name
embedding_model (str): Embedding model to use
Returns:
AstraDBVectorStore: Configured vector store instance
"""
settings
=
get_settings
()
# Initialize embeddings
embeddings
=
HuggingFaceInferenceAPIEmbeddings
(
api_key
=
"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"
,
model_name
=
"BAAI/bge-base-en-v1.5"
)
# Create and return vector store
return
AstraDBVectorStore
(
collection_name
=
collection_name
,
embedding
=
embeddings
,
api_endpoint
=
"https://9706ee0b-b3e8-4ee2-bb26-45e8a0db1586-us-east-2.apps.astra.datastax.com"
,
token
=
"AstraCS:OEbpcggZbUjOvRiesULZkTnf:9d215d8d32c2ffb09081212208e474f81a0bcdde45e7b683cd67f4a1a936a8bf"
,
namespace
=
"default_keyspace"
,
)
\ No newline at end of file
src/reviewsense_ecom/service/review_adder.py
View file @
54ef043f
# services/review_adder.py
from
langchain_community.docstore.document
import
Document
from
.retrieval
import
get_vector_store
from
src.reviewsense_ecom.retriever
.retrieval
import
get_vector_store
class
ReviewAdder
:
"""Class for adding reviews to the vector store"""
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment