Giter VIP home page Giter VIP logo

claude-to-chatgpt-netlify's Introduction

claude-to-chatgpt-netlify

Star on GitHub Fork on GitHub Watch on GitHub

Version 0.0.1 License: MIT Built with Node.js

A Node.js Netlify Function based port of jtsang4/claude-to-chatgpt's cloudflare-worker.js. This project converts the API of Anthropic's Claude model to the OpenAI Chat API format.

Netlify Function calls offer slightly more resources than Cloudflare Workers and may be more performant in some use cases. However, Netlify Functions do not support streaming.

A PHP port, designed to deploy on DigitalOcean App Platform, is available samestrin/claude-to-chatgpt-digitalocean here.

Dependencies

  • Node.js: The script runs in a Node.js environment.
  • node-fetch: A Node.js module used for making HTTP requests to external APIs.

Features

  • API Compatibility: Enables Claude model integration by mimicking the OpenAI ChatGPT API structure.
  • Model Flexibility: Supports various configurations of Claude models including claude-instant-1 and claude-2.
  • Performance Optimization: Utilizes the enhanced capabilities of Netlify Functions for improved performance over alternatives like Cloudflare Workers.

Deploy to Netlify

Click this button to deploy the project to your Netlify account:

Deploy to Netlify

Endpoints

Chat Completion

Endpoint: /v1/chat/completions
Method: POST

Simulate ChatGPT-like interaction by sending a message to the Claude model.

Parameters

  • model: The OpenAI model (e.g., 'gpt-3.5-turbo') or Claude model (e.g.,'claude-instant-1') to use. (OpenAI models are automatically mapped to Claude models.)
  • messages: An array of message objects where each message has a role ('user' or 'assistant') and content.

Example Usage

Use a tool like Postman or curl to make a request:

curl -X POST http://localhost:[PORT]/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
    "model": "claude-instant-1",
    "messages": [
        {"role": "user", "content": "Hello, how are you?"}
    ]
}'

The server will process the request and return the model's response in JSON format.

Model Information

Endpoint: /v1/models
Method: GET

Retrieve information about the available models.

Example Usage

Use curl to make a request:

curl http://localhost:[PORT]/v1/models

The server will return a list of available models and their details in JSON format.

CORS Pre-flight Request

Endpoint: /
Method: OPTIONS

Handle pre-flight requests for CORS (Cross-Origin Resource Sharing). This endpoint provides necessary headers in response to pre-flight checks performed by browsers to ensure that the server accepts requests from allowed origins.

Example Usage

This is typically used by browsers automatically before sending actual requests, but you can manually test CORS settings using curl:

curl -X OPTIONS http://localhost:[PORT]/ \
-H "Access-Control-Request-Method: POST" \
-H "Origin: http://example.com"

The server responds with appropriate CORS headers such as Access-Control-Allow-Origin.

Testing Your Netlify Deployment Locally

Start your Netlify dev server using the command:

netlify dev

then use the following curl command to test your deployment:

curl -X POST http://localhost:8888/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_CLAUDE_API_KEY" \
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello, how are you?"}]}'

Options

This application can be configured with various options through environment variables:

  • CLAUDE_API_KEY: API key for accessing the Claude API.
  • CLAUDE_BASE_URL: URL endpoint for the Claude API; defaults to "https://api.anthropic.com" if not set.
  • CLAUDE_MAX_TOKENS: Maximum tokens that can be processed in a request; defaults to 100000 if not set.
  • CLAUDE_MAX_REQUEST_SIZE_BYTES: Maximum size of the request payload in bytes; defaults to 1048576 (1MB) if not set.

Contribute

Contributions to this project are welcome. Please fork the repository and submit a pull request with your changes or improvements.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Share

Twitter Facebook LinkedIn

claude-to-chatgpt-netlify's People

Contributors

samestrin avatar actions-user avatar

Watchers

 avatar

Forkers

k8scat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.