Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danstarns/talk-to-graphql
Example using gqlpt to speak plain text to any GraphQL api with generated types
https://github.com/danstarns/talk-to-graphql
ai anthropic cli generation github-api graphql openai text to translate typegen typesafe typescript
Last synced: 15 days ago
JSON representation
Example using gqlpt to speak plain text to any GraphQL api with generated types
- Host: GitHub
- URL: https://github.com/danstarns/talk-to-graphql
- Owner: danstarns
- License: mit
- Created: 2024-09-11T01:05:04.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-10T05:05:03.000Z (about 1 month ago)
- Last Synced: 2024-10-10T16:41:56.026Z (about 1 month ago)
- Topics: ai, anthropic, cli, generation, github-api, graphql, openai, text, to, translate, typegen, typesafe, typescript
- Language: TypeScript
- Homepage: https://www.gqlpt.dev
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Talk to GraphQL with GQLPT
This repository demonstrates the usage of GQLPT (GraphQL Plain Text) to query a GraphQL API using natural language. It uses the GitHub GraphQL API as an example.
> You can swap between local and remote examples in the retrospective dir in src.
## Setup
1. Clone this repository:
```
git clone https://github.com/danstarns/talk-to-graphql
cd talk-to-graphql
```2. Install dependencies:
```
npm install
```3. Create a `.env` file in the root directory with the following content:
```
// For using the remote example
GQLPT_URL="https://api.github.com/graphql"
GQLPT_HEADERS='{"Authorization": "Bearer YOUR_GITHUB_PERSONAL_ACCESS_TOKEN"}'// Required for both local and remote examples
OPENAI_API_KEY="YOUR_OPENAI_API_KEY"
GQLPT_ADAPTER="openai"// Required for using RAG Vector example
NEO4J_URI="bolt://localhost:7687"
NEO4J_USER="neo4j"
NEO4J_PASSWORD="password"
```Replace `YOUR_GITHUB_PERSONAL_ACCESS_TOKEN` with your actual GitHub Personal Access Token and `YOUR_OPENAI_API_KEY` with your OpenAI API key.
## Usage
1. Generate types:
```
npm run generate:remote // or :local
```This command will generate TypeScript types based on the GraphQL schema.
2. Run the application:
```
npm run start:remote // or :local
```
This will execute the remote script, which demonstrates querying the GitHub GraphQL API using plain text.## What the Code Does
The main script (`remote.ts`) does the following:
1. Sets up a GQLPT client using the GitHub GraphQL API URL and your OpenAI API key.
2. Defines two functions:
- `getLatestGraphQLIssue()`: Retrieves the latest issue from the graphql/graphql-js repository.
- `getGraphQLStarCount()`: Fetches the star count of the graphql/graphql-js repository.
3. In the `main()` function, it calls both of these functions and logs the results.## Customization
Feel free to modify the plain text queries in the `getLatestGraphQLIssue()` and `getGraphQLStarCount()` functions to experiment with different queries to the GitHub GraphQL API.
## Troubleshooting
If you encounter any issues:
- Ensure all environment variables in the `.env` file are set correctly.
- Check that your GitHub Personal Access Token has the necessary permissions.
- Verify that your OpenAI API key is valid and has sufficient credits.For any other problems, please open an issue in this repository.
## License
[MIT License](LICENSE)