Skip to content

Commit

Permalink
Merge pull request #399 from miurla/feat/migration-v0.3.0
Browse files Browse the repository at this point in the history
feat: Migrating from RSC to UI
  • Loading branch information
miurla authored Jan 15, 2025
2 parents 4eb2e80 + 3633dc9 commit 3dc6a87
Show file tree
Hide file tree
Showing 69 changed files with 1,803 additions and 2,187 deletions.
114 changes: 61 additions & 53 deletions .env.local.example
Original file line number Diff line number Diff line change
@@ -1,76 +1,84 @@
# Required
# The settings below are essential for the basic functionality of the system.
###############################################################################
# Required Configuration
# These settings are essential for the basic functionality of the system.
###############################################################################

# OpenAI API key retrieved here: https://platform.openai.com/api-keys
OPENAI_API_KEY=[YOUR_OPENAI_API_KEY]

# Tavily API Key retrieved here: https://app.tavily.com/home
TAVILY_API_KEY=[YOUR_TAVILY_API_KEY]
# Search Configuration
TAVILY_API_KEY=[YOUR_TAVILY_API_KEY] # Get your API key at: https://app.tavily.com/home

# Redis Configuration
USE_LOCAL_REDIS=false
LOCAL_REDIS_URL=redis://localhost:6379 # or redis://redis:6379 if you're using docker compose
###############################################################################
# Optional Features
# Enable these features by uncommenting and configuring the settings below
###############################################################################

# Upstash Redis URL and Token retrieved here: https://console.upstash.com/redis
UPSTASH_REDIS_REST_URL=[YOUR_UPSTASH_REDIS_REST_URL]
UPSTASH_REDIS_REST_TOKEN=[YOUR_UPSTASH_REDIS_REST_TOKEN]
#------------------------------------------------------------------------------
# Chat History Storage
# Enable persistent chat history across sessions
#------------------------------------------------------------------------------
# NEXT_PUBLIC_ENABLE_SAVE_CHAT_HISTORY=true # enable chat history storage

# SearXNG Configuration
SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080
SEARCH_API=tavily # use searxng, tavily or exa
SEARXNG_SECRET="" # generate a secret key e.g. openssl rand -base64 32
SEARXNG_PORT=8080 # default port
SEARXNG_BIND_ADDRESS=0.0.0.0 # default address
SEARXNG_IMAGE_PROXY=true # enable image proxy
SEARXNG_LIMITER=false # can be enabled to limit the number of requests per IP address
SEARXNG_DEFAULT_DEPTH=basic # Set to 'basic' or 'advanced', only affects SearXNG searches
SEARXNG_MAX_RESULTS=50 # Maximum number of results to return from SearXNG
SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia # Search engines to use
SEARXNG_TIME_RANGE=None # Time range for search results: day, week, month, year, or None (for all time)
SEARXNG_SAFESEARCH=0 # Safe search setting: 0 (off), 1 (moderate), 2 (strict)
# Redis Configuration (Required if NEXT_PUBLIC_ENABLE_SAVE_CHAT_HISTORY=true)
# Choose between local Redis or Upstash Redis
# OPTION 1: Local Redis
# USE_LOCAL_REDIS=false # use local Redis
# LOCAL_REDIS_URL=redis://localhost:6379 # local Redis URL (if USE_LOCAL_REDIS=true)

#NEXT_PUBLIC_BASE_URL=http://localhost:3000

# Optional
# The settings below can be used optionally as needed.
# OPTION 2: Upstash Redis (Recommended for production)
# UPSTASH_REDIS_REST_URL=[YOUR_UPSTASH_REDIS_REST_URL] # Upstash Redis REST URL (if USE_LOCAL_REDIS=false)
# UPSTASH_REDIS_REST_TOKEN=[YOUR_UPSTASH_REDIS_REST_TOKEN] # Upstash Redis REST Token (if USE_LOCAL_REDIS=false)

#------------------------------------------------------------------------------
# Additional AI Providers
# Uncomment and configure the API keys below to enable other AI providers.
# Each provider requires its own API key and configuration.

# Google Generative AI API key retrieved here: https://aistudio.google.com/app/apikey
# Enable alternative AI models by configuring these providers
#------------------------------------------------------------------------------
# Google Generative AI
# GOOGLE_GENERATIVE_AI_API_KEY=[YOUR_GOOGLE_GENERATIVE_AI_API_KEY]

# Anthropic API key retrieved here: https://console.anthropic.com/settings/keys
# Anthropic (Claude)
# ANTHROPIC_API_KEY=[YOUR_ANTHROPIC_API_KEY]

# Groq API key retrieved here: https://console.groq.com/keys
# Groq
# GROQ_API_KEY=[YOUR_GROQ_API_KEY]

# If you want to use Ollama, set the base URL here.
# Ollama (Local AI)
# OLLAMA_BASE_URL=http://localhost:11434

# Azure OpenAI API key retrieved here: https://oai.azure.com/resource/deployments/
# Azure OpenAI
# AZURE_API_KEY=
# The resource name is used in the assembled URL: https://{resourceName}.openai.azure.com/openai/deployments/{modelId}{path}.
# AZURE_RESOURCE_NAME=
# The deployment name is the name of the Azure OpenAI deployment you want to use.
# NEXT_PUBLIC_AZURE_DEPLOYMENT_NAME=


# OpenAI Compatible Model
# Note: Only models with tool-use capabilities can be used
# NEXT_PUBLIC_OPENAI_COMPATIBLE_MODEL=[YOUR_OPENAI_COMPATIBLE_MODEL]
# OPENAI_COMPATIBLE_API_KEY=[YOUR_OPENAI_COMPATIBLE_API_KEY]
# OPENAI_COMPATIBLE_API_BASE_URL=[YOUR_OPENAI_COMPATIBLE_API_BASE_URL]

# enable the share feature
# If you enable this feature, separate account management implementation is required.
# ENABLE_SHARE=true

# enable the video search tool
# Serper API Key retrieved here: https://serper.dev/api-key
# SERPER_API_KEY=[YOUR_SERPER_API_KEY]

# If you want to use Jina instead of Tavily for retrieve tool, enable the following variables.
# JINA_API_KEY=[YOUR_JINA_API_KEY]
# NEXT_PUBLIC_OPENAI_COMPATIBLE_MODEL=
# OPENAI_COMPATIBLE_API_KEY=
# OPENAI_COMPATIBLE_API_BASE_URL=

#------------------------------------------------------------------------------
# Alternative Search Providers
# Configure different search backends (default: Tavily)
#------------------------------------------------------------------------------
# SEARCH_API=searxng # Available options: tavily, searxng, exa

# SearXNG Configuration (Required if SEARCH_API=searxng)
# SEARXNG_API_URL=http://localhost:8080 # Replace with your local SearXNG API URL or docker http://searxng:8080
# SEARXNG_SECRET="" # generate a secret key e.g. openssl rand -base64 32
# SEARXNG_PORT=8080
# SEARXNG_BIND_ADDRESS=0.0.0.0
# SEARXNG_IMAGE_PROXY=true
# SEARXNG_LIMITER=false
# SEARXNG_DEFAULT_DEPTH=basic
# SEARXNG_MAX_RESULTS=50
# SEARXNG_ENGINES=google,bing,duckduckgo,wikipedia
# SEARXNG_TIME_RANGE=None
# SEARXNG_SAFESEARCH=0

#------------------------------------------------------------------------------
# Additional Features
# Enable extra functionality as needed
#------------------------------------------------------------------------------
# NEXT_PUBLIC_ENABLE_SHARE=true # Enable sharing of chat conversations
# SERPER_API_KEY=[YOUR_SERPER_API_KEY] # Enable video search capability
# JINA_API_KEY=[YOUR_JINA_API_KEY] # Alternative to Tavily for retrieve tool
14 changes: 7 additions & 7 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"cSpell.words": [
"openai",
"Tavily"
]
}
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"cSpell.words": ["openai", "Tavily"],
"editor.codeActionsOnSave": {
"source.organizeImports": "always"
}
}
64 changes: 64 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[INSERT CONTACT METHOD].
All complaints will be reviewed and investigated promptly and fairly.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

[homepage]: https://www.contributor-covenant.org
48 changes: 48 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Contributing to Morphic

Thank you for your interest in contributing to Morphic! This document provides guidelines and instructions for contributing.

## Code of Conduct

By participating in this project, you are expected to uphold our [Code of Conduct](CODE_OF_CONDUCT.md).

## How to Contribute

### Reporting Issues

- Check if the issue already exists in our [GitHub Issues](https://github.com/miurla/morphic/issues)
- Use the issue templates when creating a new issue
- Provide as much context as possible

### Pull Requests

1. Fork the repository
2. Create a new branch from `main`:
```bash
git checkout -b feat/your-feature-name
```
3. Make your changes
4. Commit your changes using conventional commits:
```bash
git commit -m "feat: add new feature"
```
5. Push to your fork
6. Open a Pull Request

### Commit Convention

We use conventional commits. Examples:

- `feat: add new feature`
- `fix: resolve issue with X`
- `docs: update README`
- `chore: update dependencies`
- `refactor: improve code structure`

### Development Setup

Follow the [Quickstart](README.md#-quickstart) guide in the README to set up your development environment.

## License

By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.
Loading

0 comments on commit 3dc6a87

Please sign in to comment.