diff --git a/docs/deployment/fly_io.mdx b/docs/deployment/fly_io.mdx index 4cd5e1a3..ed899291 100644 --- a/docs/deployment/fly_io.mdx +++ b/docs/deployment/fly_io.mdx @@ -70,7 +70,7 @@ Feel free to edit the files as required. - `.env`: Contains environment variables for production - `.env.example`: Contains dummy environment variables (can ignore this file) - `embedchain.json`: Contains embedchain specific configuration for deployment (you don't need to configure this) -- `requirements.txt`: Contains python dependencies for your FastAPI application +- `requirements.txt`: Contains python dependencies for your application ## Step-3: Test app locally diff --git a/embedchain/cli.py b/embedchain/cli.py index f4d69163..199d43ee 100644 --- a/embedchain/cli.py +++ b/embedchain/cli.py @@ -8,6 +8,8 @@ import click import pkg_resources from rich.console import Console +from embedchain.telemetry.posthog import AnonymousTelemetry + console = Console() @@ -16,6 +18,26 @@ def cli(): pass +anonymous_telemetry = AnonymousTelemetry() + +def get_pkg_path_from_name(template: str): + try: + # Determine the installation location of the embedchain package + package_path = pkg_resources.resource_filename("embedchain", "") + except ImportError: + console.print("❌ [bold red]Failed to locate the 'embedchain' package. Is it installed?[/bold red]") + return + + # Construct the source path from the embedchain package + src_path = os.path.join(package_path, "deployment", template) + + if not os.path.exists(src_path): + console.print(f"❌ [bold red]Template '{template}' not found.[/bold red]") + return + + return src_path + + def setup_fly_io_app(extra_args): fly_launch_command = ["fly", "launch", "--region", "sjc", "--no-deploy"] + list(extra_args) try: @@ -49,20 +71,10 @@ def setup_modal_com_app(extra_args): @click.option("--template", default="fly.io", help="The template to use.") @click.argument("extra_args", nargs=-1, type=click.UNPROCESSED) def create(template, extra_args): - try: - # Determine the installation location of the embedchain package - package_path = pkg_resources.resource_filename("embedchain", "") - except ImportError: - console.print("❌ [bold red]Failed to locate the 'embedchain' package. Is it installed?[/bold red]") - return - - # Construct the source path from the embedchain package - src_path = os.path.join(package_path, "deployment", template) - - if not os.path.exists(src_path): - console.print(f"❌ [bold red]Template '{template}' not found.[/bold red]") - return - + anonymous_telemetry.capture( + event_name="ec_create", properties={"template_used": template} + ) + src_path = get_pkg_path_from_name(template) shutil.copytree(src_path, os.getcwd(), dirs_exist_ok=True) env_sample_path = os.path.join(src_path, ".env.example") if os.path.exists(env_sample_path): @@ -122,6 +134,9 @@ def dev(debug, host, port): embedchain_config = json.load(file) template = embedchain_config["provider"] + anonymous_telemetry.capture( + event_name="ec_dev", properties={"template_used": template} + ) if template == "fly.io": run_dev_fly_io(debug, host, port) elif template == "modal.com": @@ -207,6 +222,10 @@ def deploy(): with open("embedchain.json", "r") as file: embedchain_config = json.load(file) template = embedchain_config["provider"] + + anonymous_telemetry.capture( + event_name="ec_deploy", properties={"template_used": template} + ) if template == "fly.io": deploy_fly() elif template == "modal.com": diff --git a/embedchain/deployment/fly.io/app.py b/embedchain/deployment/fly.io/app.py index 659e9a9c..b129b789 100644 --- a/embedchain/deployment/fly.io/app.py +++ b/embedchain/deployment/fly.io/app.py @@ -2,6 +2,9 @@ from fastapi import FastAPI, responses from pydantic import BaseModel from embedchain import Pipeline +from dotenv import load_dotenv + +load_dotenv(".env") app = FastAPI(title="Embedchain FastAPI App") embedchain_app = Pipeline() diff --git a/embedchain/deployment/fly.io/requirements.txt b/embedchain/deployment/fly.io/requirements.txt index 41983577..3a768929 100644 --- a/embedchain/deployment/fly.io/requirements.txt +++ b/embedchain/deployment/fly.io/requirements.txt @@ -1,4 +1,4 @@ fastapi==0.104.0 uvicorn==0.23.2 -embedchain==0.1.34 +embedchain beautifulsoup4 \ No newline at end of file diff --git a/embedchain/deployment/modal.com/requirements.txt b/embedchain/deployment/modal.com/requirements.txt index 33dd01bc..69a3172a 100644 --- a/embedchain/deployment/modal.com/requirements.txt +++ b/embedchain/deployment/modal.com/requirements.txt @@ -1,4 +1,4 @@ modal==0.56.4329 fastapi==0.104.0 uvicorn==0.23.2 -embedchain==0.1.34 +embedchain diff --git a/embedchain/llm/openai.py b/embedchain/llm/openai.py index 5ee192d7..7ac6ccc7 100644 --- a/embedchain/llm/openai.py +++ b/embedchain/llm/openai.py @@ -33,14 +33,16 @@ class OpenAILlm(BaseLlm): if config.top_p: kwargs["model_kwargs"]["top_p"] = config.top_p if config.stream: - from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler + from langchain.callbacks.streaming_stdout import \ + StreamingStdOutCallbackHandler callbacks = config.callbacks if config.callbacks else [StreamingStdOutCallbackHandler()] chat = ChatOpenAI(**kwargs, streaming=config.stream, callbacks=callbacks) else: chat = ChatOpenAI(**kwargs) if self.functions is not None: - from langchain.chains.openai_functions import create_openai_fn_runnable + from langchain.chains.openai_functions import \ + create_openai_fn_runnable from langchain.prompts import ChatPromptTemplate structured_prompt = ChatPromptTemplate.from_messages(messages) diff --git a/examples/mistral-streamlit/app.py b/examples/mistral-streamlit/app.py index 65dd78a1..8c5ebd43 100644 --- a/examples/mistral-streamlit/app.py +++ b/examples/mistral-streamlit/app.py @@ -1,7 +1,9 @@ import os -from embedchain import Pipeline as App + import streamlit as st +from embedchain import Pipeline as App + with st.sidebar: huggingface_access_token = st.text_input("Hugging face Token", key="chatbot_api_key", type="password") "[Get Hugging Face Access Token](https://huggingface.co/settings/tokens)" diff --git a/pyproject.toml b/pyproject.toml index 92d047e7..c9f2887e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "embedchain" -version = "0.1.35" +version = "0.1.36" description = "Data platform for LLMs - Load, index, retrieve and sync any unstructured data" authors = [ "Taranjeet Singh ",