From 6f998f11577159cca92b0270d510d9e8479a4ea4 Mon Sep 17 00:00:00 2001 From: Alex Renoki Date: Sat, 5 Oct 2024 06:15:48 +0300 Subject: [PATCH 1/2] Added zep --- public/svgs/zep.png | Bin 0 -> 10841 bytes templates/compose/zep.yaml | 194 +++++++++++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 public/svgs/zep.png create mode 100644 templates/compose/zep.yaml diff --git a/public/svgs/zep.png b/public/svgs/zep.png new file mode 100644 index 0000000000000000000000000000000000000000..7d51b32dc078ed968b0483bbee646de5bbf7354f GIT binary patch literal 10841 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 /dev/tcp/127.0.0.1/5557' || exit 1" + interval: 10s + timeout: 5s + retries: 5 + start_period: 45s + zep: + image: ghcr.io/getzep/zep:latest + restart: always + depends_on: + postgres: + condition: service_healthy + nlp: + condition: service_healthy + environment: + - SERVICE_FQDN_ZEP_8000 + - ZEP_STORE_POSTGRES_DSN=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/postgres?sslmode=disable + - ZEP_NLP_SERVER_URL=http://nlp:5557 + - ZEP_EXTRACTORS_DOCUMENTS_EMBEDDINGS_SERVICE=${EXTRACTORS_DOCUMENTS_EMBEDDINGS_SERVICE:-openai} + - ZEP_EXTRACTORS_DOCUMENTS_EMBEDDINGS_DIMENSIONS=${EXTRACTORS_DOCUMENTS_EMBEDDINGS_DIMENSIONS:-1536} + - ZEP_EXTRACTORS_MESSAGES_EMBEDDINGS_SERVICE=${EXTRACTORS_MESSAGES_EMBEDDINGS_SERVICE:-openai} + - ZEP_EXTRACTORS_MESSAGES_EMBEDDINGS_DIMENSIONS=${EXTRACTORS_MESSAGES_EMBEDDINGS_DIMENSIONS:-1536} + - ZEP_EXTRACTORS_MESSAGES_SUMMARIZER_EMBEDDINGS_SERVICE=${EXTRACTORS_MESSAGES_SUMMARIZER_EMBEDDINGS_SERVICE:-openai} + - ZEP_EXTRACTORS_MESSAGES_SUMMARIZER_EMBEDDINGS_DIMENSIONS=${EXTRACTORS_MESSAGES_SUMMARIZER_EMBEDDINGS_DIMENSIONS:-1536} + - ZEP_OPENAI_API_KEY=${OPENAI_API_KEY} + - ZEP_AUTH_SECRET=${SERVICE_PASSWORD_AUTHSECRET} + - ZEP_SERVER_WEB_ENABLED=${ZEP_SERVER_WEB_ENABLED:-false} + volumes: + - type: bind + source: ./config.yaml + target: /app/config.yaml + content: | + llm: + # openai or anthropic + service: "openai" + # OpenAI: gpt-3.5-turbo, gpt-4, gpt-3.5-turbo-1106, gpt-3.5-turbo-16k, gpt-4-32k, gpt-4o-mini, gpt-4o-mini-2024-07-18; Anthropic: claude-instant-1 or claude-2 + model: "gpt-4o-mini" + ## OpenAI-specific settings + # Only used for Azure OpenAI API + azure_openai_endpoint: + # for Azure OpenAI API deployment, the model may be deployed with custom deployment names + # set the deployment names if you encounter in logs HTTP 404 errors: + # "The API deployment for this resource does not exist." + azure_openai: + # llm.model name is used as deployment name as reasonable default if not set + # assuming base model is deployed with deployment name matching model name + # llm_deployment: "gpt-4o-mini-customname" + # embeddings deployment is required when Zep is configured to use OpenAI embeddings + # embedding_deployment: "text-embedding-ada-002-customname" + # Use only with an alternate OpenAI-compatible API endpoint + llm_deployment: + embedding_deployment: + openai_endpoint: + openai_org_id: + nlp: + server_url: "http://localhost:5557" + memory: + message_window: 12 + extractors: + documents: + embeddings: + enabled: true + chunk_size: 1000 + dimensions: 384 + service: "local" + # dimensions: 1536 + # service: "openai" + messages: + summarizer: + enabled: true + entities: + enabled: true + embeddings: + enabled: true + dimensions: 384 + service: "local" + entities: + enabled: true + intent: + enabled: true + embeddings: + enabled: true + dimensions: 384 + service: "local" + # dimensions: 1536 + # service: "openai" + store: + type: "postgres" + postgres: + dsn: "postgres://postgres:postgres@localhost:5432/?sslmode=disable" + server: + # Specify the host to listen on. Defaults to 0.0.0.0 + host: 0.0.0.0 + port: 8000 + # Is the Web UI enabled? + # Warning: The Web UI is not secured by authentication and should not be enabled if + # Zep is exposed to the public internet. + web_enabled: true + # The maximum size of a request body, in bytes. Defaults to 5MB. + max_request_size: 5242880 + auth: + # Set to true to enable authentication + required: true + # Do not use this secret in production. The ZEP_AUTH_SECRET environment variable should be + # set to a cryptographically secure secret. See the Zep docs for details. + secret: "do-not-use-this-secret-in-production" + data: + # PurgeEvery is the period between hard deletes, in minutes. + # If set to 0 or undefined, hard deletes will not be performed. + purge_every: 60 + log: + level: "info" + opentelemetry: + enabled: false + # Custom Prompts Configuration + # Allows customization of extractor prompts. + custom_prompts: + summarizer_prompts: + # Anthropic Guidelines: + # - Use XML-style tags like as element identifiers. + # - Include {{.PrevSummary}} and {{.MessagesJoined}} as template variables. + # - Clearly explain model instructions, e.g., "Review content inside tags". + # - Provide a clear example within the prompt. + # + # Example format: + # anthropic: | + # + # + # + # + # {{.PrevSummary}} + # {{.MessagesJoined}} + # Response without preamble. + # + # If left empty, the default Anthropic summary prompt from zep/pkg/extractors/prompts.go will be used. + anthropic: | + + # OpenAI summarizer prompt configuration. + # Guidelines: + # - Include {{.PrevSummary}} and {{.MessagesJoined}} as template variables. + # - Provide a clear example within the prompt. + # + # Example format: + # openai: | + # + # Example: + # + # Current summary: {{.PrevSummary}} + # New lines of conversation: {{.MessagesJoined}} + # New summary:` + # + # If left empty, the default OpenAI summary prompt from zep/pkg/extractors/prompts.go will be used. + openai: | + healthcheck: + test: "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/8000' || exit 1" + interval: 5s + timeout: 10s + retries: 3 + start_period: 40s From 0ce030d863d1a7eac00b7e9049a49e8cadbcf119 Mon Sep 17 00:00:00 2001 From: "Alexander G." Date: Mon, 7 Oct 2024 11:25:37 +0300 Subject: [PATCH 2/2] Update zep.yaml --- templates/compose/zep.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/templates/compose/zep.yaml b/templates/compose/zep.yaml index d11110f4a..becaf94f0 100644 --- a/templates/compose/zep.yaml +++ b/templates/compose/zep.yaml @@ -4,8 +4,6 @@ # logo: svgs/zep.png # port: 8000 -version: "3" - volumes: pg_data: